From: Damien Lespiau <[email protected]>

CPT+ PCHs have different bit definition to read the HPD live status. I
don't have an ILK with digital ports handy, which is why this patch is
separate from the CPT+ implementation. If the docs don't lie, it should
all be fine though.

Signed-off-by: Damien Lespiau <[email protected]>
---
 drivers/gpu/drm/i915/intel_display.c | 44 +++++++++++++++++++++++-------------
 1 file changed, 28 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 21fedf7..10759ea 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1006,22 +1006,34 @@ bool ibx_digital_port_connected(struct drm_i915_private 
*dev_priv,
 {
        u32 bit;
 
-       /* XXX: IBX has different SDEISR bits */
-       if (HAS_PCH_IBX(dev_priv->dev))
-               return true;
-
-       switch(port->port) {
-       case PORT_B:
-               bit = SDE_PORTB_HOTPLUG_CPT;
-               break;
-       case PORT_C:
-               bit = SDE_PORTC_HOTPLUG_CPT;
-               break;
-       case PORT_D:
-               bit = SDE_PORTD_HOTPLUG_CPT;
-               break;
-       default:
-               return true;
+       if (HAS_PCH_IBX(dev_priv->dev)) {
+               switch(port->port) {
+               case PORT_B:
+                       bit = SDE_PORTB_HOTPLUG;
+                       break;
+               case PORT_C:
+                       bit = SDE_PORTC_HOTPLUG;
+                       break;
+               case PORT_D:
+                       bit = SDE_PORTD_HOTPLUG;
+                       break;
+               default:
+                       return true;
+               }
+       } else {
+               switch(port->port) {
+               case PORT_B:
+                       bit = SDE_PORTB_HOTPLUG_CPT;
+                       break;
+               case PORT_C:
+                       bit = SDE_PORTC_HOTPLUG_CPT;
+                       break;
+               case PORT_D:
+                       bit = SDE_PORTD_HOTPLUG_CPT;
+                       break;
+               default:
+                       return true;
+               }
        }
 
        return I915_READ(SDEISR) & bit;
-- 
1.7.11.7

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to