drm/i915: Don't register HDMI connectors for eDP ports on VLV/CHV
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 9 Jan 2015 12:21:14 +0000 (14:21 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 12 Jan 2015 23:45:31 +0000 (00:45 +0100)
If we determine that a specific port is eDP, don't register the HDMI
connector/encoder for it. The reason being that we want to disable
HPD interrupts for eDP ports when the display is off, but the presence
of the extra HDMI connector would demand the HPD interrupt to remain
enabled all the time.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 78a199e5b54266ea385d9cc31691965917775263..ece397b691a17463c82eb30d37119ec664c6e327 100644 (file)
@@ -12393,14 +12393,16 @@ static void intel_setup_outputs(struct drm_device *dev)
                 * eDP ports. Consult the VBT as well as DP_DETECTED to
                 * detect eDP ports.
                 */
-               if (I915_READ(VLV_DISPLAY_BASE + GEN4_HDMIB) & SDVO_DETECTED)
+               if (I915_READ(VLV_DISPLAY_BASE + GEN4_HDMIB) & SDVO_DETECTED &&
+                   !intel_dp_is_edp(dev, PORT_B))
                        intel_hdmi_init(dev, VLV_DISPLAY_BASE + GEN4_HDMIB,
                                        PORT_B);
                if (I915_READ(VLV_DISPLAY_BASE + DP_B) & DP_DETECTED ||
                    intel_dp_is_edp(dev, PORT_B))
                        intel_dp_init(dev, VLV_DISPLAY_BASE + DP_B, PORT_B);
 
-               if (I915_READ(VLV_DISPLAY_BASE + GEN4_HDMIC) & SDVO_DETECTED)
+               if (I915_READ(VLV_DISPLAY_BASE + GEN4_HDMIC) & SDVO_DETECTED &&
+                   !intel_dp_is_edp(dev, PORT_C))
                        intel_hdmi_init(dev, VLV_DISPLAY_BASE + GEN4_HDMIC,
                                        PORT_C);
                if (I915_READ(VLV_DISPLAY_BASE + DP_C) & DP_DETECTED ||