diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-07-04 10:47:19 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-09-20 16:05:04 +1000 |
commit | 048a88595a66526f68636b51b1cdb5842bc0f28c (patch) | |
tree | b1d1378c1d6b87c9ab5687f355630697a2a3874a /drivers/gpu/drm/nouveau/nouveau_state.c | |
parent | 2e9733ff7d4f1c7185bea16041f532d6142ca40a (diff) | |
download | linux-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.c | 21 |
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); |