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, 12 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 30d89111f559..82d1b91bdfa6 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5111,19 +5111,26 @@ static void intel_setup_outputs(struct drm_device *dev)
5111{ 5111{
5112 struct drm_i915_private *dev_priv = dev->dev_private; 5112 struct drm_i915_private *dev_priv = dev->dev_private;
5113 struct drm_encoder *encoder; 5113 struct drm_encoder *encoder;
5114 bool dpd_is_edp = false;
5114 5115
5115 intel_crt_init(dev);
5116
5117 /* Set up integrated LVDS */
5118 if (IS_MOBILE(dev) && !IS_I830(dev)) 5116 if (IS_MOBILE(dev) && !IS_I830(dev))
5119 intel_lvds_init(dev); 5117 intel_lvds_init(dev);
5120 5118
5121 if (HAS_PCH_SPLIT(dev)) { 5119 if (HAS_PCH_SPLIT(dev)) {
5122 int found; 5120 dpd_is_edp = intel_dpd_is_edp(dev);
5123 5121
5124 if (IS_MOBILE(dev) && (I915_READ(DP_A) & DP_DETECTED)) 5122 if (IS_MOBILE(dev) && (I915_READ(DP_A) & DP_DETECTED))
5125 intel_dp_init(dev, DP_A); 5123 intel_dp_init(dev, DP_A);
5126 5124
5125 if (dpd_is_edp && (I915_READ(PCH_DP_D) & DP_DETECTED))
5126 intel_dp_init(dev, PCH_DP_D);
5127 }
5128
5129 intel_crt_init(dev);
5130
5131 if (HAS_PCH_SPLIT(dev)) {
5132 int found;
5133
5127 if (I915_READ(HDMIB) & PORT_DETECTED) { 5134 if (I915_READ(HDMIB) & PORT_DETECTED) {
5128 /* PCH SDVOB multiplex with HDMIB */ 5135 /* PCH SDVOB multiplex with HDMIB */
5129 found = intel_sdvo_init(dev, PCH_SDVOB); 5136 found = intel_sdvo_init(dev, PCH_SDVOB);
@@ -5142,7 +5149,7 @@ static void intel_setup_outputs(struct drm_device *dev)
5142 if (I915_READ(PCH_DP_C) & DP_DETECTED) 5149 if (I915_READ(PCH_DP_C) & DP_DETECTED)
5143 intel_dp_init(dev, PCH_DP_C); 5150 intel_dp_init(dev, PCH_DP_C);
5144 5151
5145 if (I915_READ(PCH_DP_D) & DP_DETECTED) 5152 if (!dpd_is_edp && (I915_READ(PCH_DP_D) & DP_DETECTED))
5146 intel_dp_init(dev, PCH_DP_D); 5153 intel_dp_init(dev, PCH_DP_D);
5147 5154
5148 } else if (SUPPORTS_DIGITAL_OUTPUTS(dev)) { 5155 } else if (SUPPORTS_DIGITAL_OUTPUTS(dev)) {