Commit 21a5ace0 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/disp/nv04: implement a base display object class

Will be used for upcoming vblank event interfaces.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 51fa0253
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
*/ */
#include <engine/disp.h> #include <engine/disp.h>
#include <core/class.h>
struct nv04_disp_priv { struct nv04_disp_priv {
struct nouveau_disp base; struct nouveau_disp base;
...@@ -30,6 +31,7 @@ struct nv04_disp_priv { ...@@ -30,6 +31,7 @@ struct nv04_disp_priv {
static struct nouveau_oclass static struct nouveau_oclass
nv04_disp_sclass[] = { nv04_disp_sclass[] = {
{ NV04_DISP_CLASS, &nouveau_object_ofuncs },
{}, {},
}; };
......
...@@ -154,6 +154,14 @@ struct nve0_channel_ind_class { ...@@ -154,6 +154,14 @@ struct nve0_channel_ind_class {
u32 engine; u32 engine;
}; };
/* 0046: NV04_DISP
*/
#define NV04_DISP_CLASS 0x00000046
struct nv04_display_class {
};
/* 5070: NV50_DISP /* 5070: NV50_DISP
* 8270: NV84_DISP * 8270: NV84_DISP
* 8370: NVA0_DISP * 8370: NVA0_DISP
......
...@@ -22,6 +22,9 @@ ...@@ -22,6 +22,9 @@
* Author: Ben Skeggs * Author: Ben Skeggs
*/ */
#include <core/object.h>
#include <core/class.h>
#include <drm/drmP.h> #include <drm/drmP.h>
#include <drm/drm_crtc_helper.h> #include <drm/drm_crtc_helper.h>
...@@ -71,6 +74,11 @@ nv04_display_create(struct drm_device *dev) ...@@ -71,6 +74,11 @@ nv04_display_create(struct drm_device *dev)
nouveau_hw_save_vga_fonts(dev, 1); nouveau_hw_save_vga_fonts(dev, 1);
ret = nouveau_object_new(nv_object(drm), NVDRM_DEVICE, 0xd1500000,
NV04_DISP_CLASS, NULL, 0, &disp->core);
if (ret)
return ret;
nv04_crtc_create(dev, 0); nv04_crtc_create(dev, 0);
if (nv_two_heads(dev)) if (nv_two_heads(dev))
nv04_crtc_create(dev, 1); nv04_crtc_create(dev, 1);
......
...@@ -80,6 +80,7 @@ struct nv04_display { ...@@ -80,6 +80,7 @@ struct nv04_display {
struct nv04_mode_state saved_reg; struct nv04_mode_state saved_reg;
uint32_t saved_vga_font[4][16384]; uint32_t saved_vga_font[4][16384];
uint32_t dac_users[4]; uint32_t dac_users[4];
struct nouveau_object *core;
}; };
static inline struct nv04_display * static inline struct nv04_display *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment