aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 1204d26b50db..67d06fd29d8c 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -751,6 +751,7 @@ static void intel_crtc_mode_set(struct drm_crtc *crtc,
751 is_lvds = true; 751 is_lvds = true;
752 break; 752 break;
753 case INTEL_OUTPUT_SDVO: 753 case INTEL_OUTPUT_SDVO:
754 case INTEL_OUTPUT_HDMI:
754 is_sdvo = true; 755 is_sdvo = true;
755 break; 756 break;
756 case INTEL_OUTPUT_DVO: 757 case INTEL_OUTPUT_DVO:
@@ -1443,8 +1444,15 @@ static void intel_setup_outputs(struct drm_device *dev)
1443 intel_lvds_init(dev); 1444 intel_lvds_init(dev);
1444 1445
1445 if (IS_I9XX(dev)) { 1446 if (IS_I9XX(dev)) {
1446 intel_sdvo_init(dev, SDVOB); 1447 int found;
1447 intel_sdvo_init(dev, SDVOC); 1448
1449 found = intel_sdvo_init(dev, SDVOB);
1450 if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
1451 intel_hdmi_init(dev, SDVOB);
1452
1453 found = intel_sdvo_init(dev, SDVOC);
1454 if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
1455 intel_hdmi_init(dev, SDVOC);
1448 } else 1456 } else
1449 intel_dvo_init(dev); 1457 intel_dvo_init(dev);
1450 1458
@@ -1458,6 +1466,11 @@ static void intel_setup_outputs(struct drm_device *dev)
1458 1466
1459 /* valid crtcs */ 1467 /* valid crtcs */
1460 switch(intel_output->type) { 1468 switch(intel_output->type) {
1469 case INTEL_OUTPUT_HDMI:
1470 crtc_mask = ((1 << 0)|
1471 (1 << 1));
1472 clone_mask = ((1 << INTEL_OUTPUT_HDMI));
1473 break;
1461 case INTEL_OUTPUT_DVO: 1474 case INTEL_OUTPUT_DVO:
1462 case INTEL_OUTPUT_SDVO: 1475 case INTEL_OUTPUT_SDVO:
1463 crtc_mask = ((1 << 0)| 1476 crtc_mask = ((1 << 0)|