aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 31c3732b7a69..dce1abfa6496 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1452,6 +1452,7 @@ static int intel_connector_clones(struct drm_device *dev, int type_mask)
1452 1452
1453static void intel_setup_outputs(struct drm_device *dev) 1453static void intel_setup_outputs(struct drm_device *dev)
1454{ 1454{
1455 struct drm_i915_private *dev_priv = dev->dev_private;
1455 struct drm_connector *connector; 1456 struct drm_connector *connector;
1456 1457
1457 intel_crt_init(dev); 1458 intel_crt_init(dev);
@@ -1463,13 +1464,16 @@ static void intel_setup_outputs(struct drm_device *dev)
1463 if (IS_I9XX(dev)) { 1464 if (IS_I9XX(dev)) {
1464 int found; 1465 int found;
1465 1466
1466 found = intel_sdvo_init(dev, SDVOB); 1467 if (I915_READ(SDVOB) & SDVO_DETECTED) {
1467 if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) 1468 found = intel_sdvo_init(dev, SDVOB);
1468 intel_hdmi_init(dev, SDVOB); 1469 if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
1469 1470 intel_hdmi_init(dev, SDVOB);
1470 found = intel_sdvo_init(dev, SDVOC); 1471 }
1471 if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) 1472 if (!IS_G4X(dev) || (I915_READ(SDVOB) & SDVO_DETECTED)) {
1472 intel_hdmi_init(dev, SDVOC); 1473 found = intel_sdvo_init(dev, SDVOC);
1474 if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
1475 intel_hdmi_init(dev, SDVOC);
1476 }
1473 } else 1477 } else
1474 intel_dvo_init(dev); 1478 intel_dvo_init(dev);
1475 1479