diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 18 |
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 | ||
1453 | static void intel_setup_outputs(struct drm_device *dev) | 1453 | static 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 | ||