提交 725e30ad 编写于 作者: E Eric Anholt 提交者: Dave Airlie

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: NDave Airlie <airlied@linux.ie>
上级 e806b495
...@@ -1452,6 +1452,7 @@ static int intel_connector_clones(struct drm_device *dev, int type_mask) ...@@ -1452,6 +1452,7 @@ static int intel_connector_clones(struct drm_device *dev, int type_mask)
static void intel_setup_outputs(struct drm_device *dev) static void intel_setup_outputs(struct drm_device *dev)
{ {
struct drm_i915_private *dev_priv = dev->dev_private;
struct drm_connector *connector; struct drm_connector *connector;
intel_crt_init(dev); intel_crt_init(dev);
...@@ -1463,13 +1464,16 @@ static void intel_setup_outputs(struct drm_device *dev) ...@@ -1463,13 +1464,16 @@ static void intel_setup_outputs(struct drm_device *dev)
if (IS_I9XX(dev)) { if (IS_I9XX(dev)) {
int found; int found;
if (I915_READ(SDVOB) & SDVO_DETECTED) {
found = intel_sdvo_init(dev, SDVOB); found = intel_sdvo_init(dev, SDVOB);
if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
intel_hdmi_init(dev, SDVOB); intel_hdmi_init(dev, SDVOB);
}
if (!IS_G4X(dev) || (I915_READ(SDVOB) & SDVO_DETECTED)) {
found = intel_sdvo_init(dev, SDVOC); found = intel_sdvo_init(dev, SDVOC);
if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
intel_hdmi_init(dev, SDVOC); intel_hdmi_init(dev, SDVOC);
}
} else } else
intel_dvo_init(dev); intel_dvo_init(dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册