aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2009-01-22 16:01:02 -0500
committerDave Airlie <airlied@linux.ie>2009-02-08 06:37:45 -0500
commit725e30ad6601d7fe443d9215d6331758a9d7e0c8 (patch)
tree47bb72a0d8d53515ae56c9904c1d2e043aaef9a3 /drivers
parente806b4957412bf472d826bd8cc571da041248799 (diff)
drm/i915: Skip SDVO/HDMI init when the chipset tells us it's not present.
This saves startup time from probing SDVO, and saves setting up HDMI outputs on G4X devices that don't have them. Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers')
-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