Skip to contentSkip to conversation

drm/i915: Make sure PORT_HOTPLUG_EN is written

PATCH In review Egbert Eich 3 participants 3 messages Jul 26, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm/i915: Make sure PORT_HOTPLUG_EN is written

Add posting read to make sure PORT_HOTPLUG_EN is written in i915_hpd_irq_setup().

---
 drivers/gpu/drm/i915/i915_irq.c | 1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/i915/i915_irq.c +1 -0
index 1f3a971..a38372b 100644
@@ -2805,6 +2805,7 @@ static void i915_hpd_irq_setup(struct drm_device *dev)
 
 		/* Ignore TV since it's buggy */
 		I915_WRITE(PORT_HOTPLUG_EN, hotplug_en);
+		POSTING_READ(PORT_HOTPLUG_EN);
 	}
 }
 
Signature · 1 line
1.8.1.4
#1 lore raw
Quoted 2 lines · Egbert Eich

Add posting read to make sure PORT_HOTPLUG_EN is written in i915_hpd_irq_setup().

It's not vital that the write be flushed here. On the deferred reenable path a further delay in rearming is not significant, and inside the irq handler (for disabling) the write will be flushed.

In terms of the patch itself, you would also need to fixup ibx_hpd_irq_setup as well.
-Chris

Signature · 1 line
Chris Wilson, Intel Open Source Technology Centre
#2 lore raw
Quoted 11 lines · Chris Wilson
Quoted 2 lines · Egbert Eich

Add posting read to make sure PORT_HOTPLUG_EN is written in i915_hpd_irq_setup().

It's not vital that the write be flushed here. On the deferred reenable path a further delay in rearming is not significant, and inside the irq handler (for disabling) the write will be flushed.

In terms of the patch itself, you would also need to fixup ibx_hpd_irq_setup as well.
-Chris

We can probably drop this patch. It was one try figuring why HPD interrupts are still seeen on pins which have been disabled. It turned out that the root cause was a mixup in the mapping of pins to enable bits due to incorrect documentation.

Cheers,
Egbert.