aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_display.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2014-08-09 14:10:21 -0400
committerBen Skeggs <bskeggs@redhat.com>2014-08-09 15:13:07 -0400
commit9c210f378f7cee5f1a5eabe5a78c5ec98251cb5b (patch)
tree32b9e3f4a3ec775180665ba9e4b39d8e68e190eb /drivers/gpu/drm/nouveau/nouveau_display.c
parentd01c3092f065810b9f6cd8cc9918713f48884f46 (diff)
drm/nouveau/core: remove NV_D0 family
The one place where it mattered has been replaced with a class check, which is more appropriate anyway. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_display.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_display.c57
1 files changed, 33 insertions, 24 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index ff43b41af2e1..6e9892c9f811 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -393,26 +393,16 @@ nouveau_display_fini(struct drm_device *dev)
393 disp->fini(dev); 393 disp->fini(dev);
394} 394}
395 395
396int 396static void
397nouveau_display_create(struct drm_device *dev) 397nouveau_display_create_properties(struct drm_device *dev)
398{ 398{
399 struct nouveau_drm *drm = nouveau_drm(dev); 399 struct nouveau_display *disp = nouveau_display(dev);
400 struct nouveau_device *device = nouveau_dev(dev); 400 int gen;
401 struct nouveau_display *disp;
402 int ret, gen;
403
404 disp = drm->display = kzalloc(sizeof(*disp), GFP_KERNEL);
405 if (!disp)
406 return -ENOMEM;
407
408 drm_mode_config_init(dev);
409 drm_mode_create_scaling_mode_property(dev);
410 drm_mode_create_dvi_i_properties(dev);
411 401
412 if (nv_device(drm->device)->card_type < NV_50) 402 if (nv_mclass(disp->core) < NV50_DISP_CLASS)
413 gen = 0; 403 gen = 0;
414 else 404 else
415 if (nv_device(drm->device)->card_type < NV_D0) 405 if (nv_mclass(disp->core) < NVD0_DISP_CLASS)
416 gen = 1; 406 gen = 1;
417 else 407 else
418 gen = 2; 408 gen = 2;
@@ -427,15 +417,33 @@ nouveau_display_create(struct drm_device *dev)
427 disp->underscan_vborder_property = 417 disp->underscan_vborder_property =
428 drm_property_create_range(dev, 0, "underscan vborder", 0, 128); 418 drm_property_create_range(dev, 0, "underscan vborder", 0, 128);
429 419
430 if (gen >= 1) { 420 if (gen < 1)
431 /* -90..+90 */ 421 return;
432 disp->vibrant_hue_property =
433 drm_property_create_range(dev, 0, "vibrant hue", 0, 180);
434 422
435 /* -100..+100 */ 423 /* -90..+90 */
436 disp->color_vibrance_property = 424 disp->vibrant_hue_property =
437 drm_property_create_range(dev, 0, "color vibrance", 0, 200); 425 drm_property_create_range(dev, 0, "vibrant hue", 0, 180);
438 } 426
427 /* -100..+100 */
428 disp->color_vibrance_property =
429 drm_property_create_range(dev, 0, "color vibrance", 0, 200);
430}
431
432int
433nouveau_display_create(struct drm_device *dev)
434{
435 struct nouveau_drm *drm = nouveau_drm(dev);
436 struct nouveau_device *device = nouveau_dev(dev);
437 struct nouveau_display *disp;
438 int ret;
439
440 disp = drm->display = kzalloc(sizeof(*disp), GFP_KERNEL);
441 if (!disp)
442 return -ENOMEM;
443
444 drm_mode_config_init(dev);
445 drm_mode_create_scaling_mode_property(dev);
446 drm_mode_create_dvi_i_properties(dev);
439 447
440 dev->mode_config.funcs = &nouveau_mode_config_funcs; 448 dev->mode_config.funcs = &nouveau_mode_config_funcs;
441 dev->mode_config.fb_base = nv_device_resource_start(device, 1); 449 dev->mode_config.fb_base = nv_device_resource_start(device, 1);
@@ -487,6 +495,7 @@ nouveau_display_create(struct drm_device *dev)
487 } 495 }
488 496
489 if (ret == 0) { 497 if (ret == 0) {
498 nouveau_display_create_properties(dev);
490 if (nv_mclass(disp->core) < NV50_DISP_CLASS) 499 if (nv_mclass(disp->core) < NV50_DISP_CLASS)
491 ret = nv04_display_create(dev); 500 ret = nv04_display_create(dev);
492 else 501 else