diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2013-01-31 09:04:48 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-02-20 16:00:45 +1000 |
commit | 21a5ace0bfb737d65e6d345ccf3d63fdee141f98 (patch) | |
tree | ce6b693711f07da1ce6d661ee1074fa334ab77d5 | |
parent | 51fa0253fbc5cdf26b85f620bf1a1034e2eda868 (diff) | |
download | blackbird-op-linux-21a5ace0bfb737d65e6d345ccf3d63fdee141f98.tar.gz blackbird-op-linux-21a5ace0bfb737d65e6d345ccf3d63fdee141f98.zip |
drm/nouveau/disp/nv04: implement a base display object class
Will be used for upcoming vblank event interfaces.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/nv04.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/include/core/class.h | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nv04_display.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nv04_display.h | 1 |
4 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nv04.c b/drivers/gpu/drm/nouveau/core/engine/disp/nv04.c index 1c919f2af89f..6eaf7257be77 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/nv04.c +++ b/drivers/gpu/drm/nouveau/core/engine/disp/nv04.c @@ -23,6 +23,7 @@ */ #include <engine/disp.h> +#include <core/class.h> struct nv04_disp_priv { struct nouveau_disp base; @@ -30,6 +31,7 @@ struct nv04_disp_priv { static struct nouveau_oclass nv04_disp_sclass[] = { + { NV04_DISP_CLASS, &nouveau_object_ofuncs }, {}, }; diff --git a/drivers/gpu/drm/nouveau/core/include/core/class.h b/drivers/gpu/drm/nouveau/core/include/core/class.h index 47c4b3a5bd3a..994a28059605 100644 --- a/drivers/gpu/drm/nouveau/core/include/core/class.h +++ b/drivers/gpu/drm/nouveau/core/include/core/class.h @@ -154,6 +154,14 @@ struct nve0_channel_ind_class { u32 engine; }; +/* 0046: NV04_DISP + */ + +#define NV04_DISP_CLASS 0x00000046 + +struct nv04_display_class { +}; + /* 5070: NV50_DISP * 8270: NV84_DISP * 8370: NVA0_DISP diff --git a/drivers/gpu/drm/nouveau/nv04_display.c b/drivers/gpu/drm/nouveau/nv04_display.c index 2cd6fb8c548e..edc31560b848 100644 --- a/drivers/gpu/drm/nouveau/nv04_display.c +++ b/drivers/gpu/drm/nouveau/nv04_display.c @@ -22,6 +22,9 @@ * Author: Ben Skeggs */ +#include <core/object.h> +#include <core/class.h> + #include <drm/drmP.h> #include <drm/drm_crtc_helper.h> @@ -71,6 +74,11 @@ nv04_display_create(struct drm_device *dev) 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); if (nv_two_heads(dev)) nv04_crtc_create(dev, 1); diff --git a/drivers/gpu/drm/nouveau/nv04_display.h b/drivers/gpu/drm/nouveau/nv04_display.h index 45322802e37d..a0a031dad13f 100644 --- a/drivers/gpu/drm/nouveau/nv04_display.h +++ b/drivers/gpu/drm/nouveau/nv04_display.h @@ -80,6 +80,7 @@ struct nv04_display { struct nv04_mode_state saved_reg; uint32_t saved_vga_font[4][16384]; uint32_t dac_users[4]; + struct nouveau_object *core; }; static inline struct nv04_display * |