summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nouveau_state.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-07-04 10:47:19 +1000
committerBen Skeggs <bskeggs@redhat.com>2011-09-20 16:05:04 +1000
commit048a88595a66526f68636b51b1cdb5842bc0f28c (patch)
treeb1d1378c1d6b87c9ab5687f355630697a2a3874a /drivers/gpu/drm/nouveau/nouveau_state.c
parent2e9733ff7d4f1c7185bea16041f532d6142ca40a (diff)
downloadlinux-048a88595a66526f68636b51b1cdb5842bc0f28c.tar.gz
drm/nouveau: make general drm modesetting init common
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_state.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_state.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
index 07691c2eceac..2d7a4ed60142 100644
--- a/drivers/gpu/drm/nouveau/nouveau_state.c
+++ b/drivers/gpu/drm/nouveau/nouveau_state.c
@@ -657,6 +657,26 @@ nouveau_card_init(struct drm_device *dev)
goto out_engine;
}
+ /* initialise general modesetting */
+ drm_mode_config_init(dev);
+ drm_mode_create_scaling_mode_property(dev);
+ drm_mode_create_dithering_property(dev);
+ dev->mode_config.funcs = (void *)&nouveau_mode_config_funcs;
+ dev->mode_config.fb_base = pci_resource_start(dev->pdev, 1);
+ dev->mode_config.min_width = 0;
+ dev->mode_config.min_height = 0;
+ if (dev_priv->card_type < NV_10) {
+ dev->mode_config.max_width = 2048;
+ dev->mode_config.max_height = 2048;
+ } else
+ if (dev_priv->card_type < NV_50) {
+ dev->mode_config.max_width = 4096;
+ dev->mode_config.max_height = 4096;
+ } else {
+ dev->mode_config.max_width = 8192;
+ dev->mode_config.max_height = 8192;
+ }
+
ret = engine->display.create(dev);
if (ret)
goto out_fifo;
@@ -747,6 +767,7 @@ static void nouveau_card_takedown(struct drm_device *dev)
}
engine->display.destroy(dev);
+ drm_mode_config_cleanup(dev);
if (!dev_priv->noaccel) {
engine->fifo.takedown(dev);