On Tue, 20 Sep 2011 17:24:21 +0100, Chris Wilson chris@chris-wilson.co.uk wrote:
On Tue, 20 Sep 2011 08:47:21 -0700, Keith Packard keithp@keithp.com wrote:
We were relying on the BIOS to set these bits, which doesn't always happen.
Do we need to clear IRQ bits on uninstall, for example to prevent "Interrupt 19: no one cared!" or is that due to a different cause?
Probably a good plan, but of course that's separate from turning on the hotplug hardware in the PCH. Something like:
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index c22823b..adeab2a 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -2044,6 +2044,10 @@ static void ironlake_irq_uninstall(struct drm_device *dev) I915_WRITE(GTIMR, 0xffffffff); I915_WRITE(GTIER, 0x0); I915_WRITE(GTIIR, I915_READ(GTIIR)); + + I915_WRITE(SDEIMR, 0xffffffff); + I915_WRITE(SDEIER, 0x0); + I915_WRITE(SDEIIR, I915_READ(SDEIIR)); }
static void i915_driver_irq_uninstall(struct drm_device * dev)
More of a general question really. The patch itself looks good and matches against the spec afaics.
I was amused to learn that the BIOS on my machine actually turns on the hotplug hardware for no good reason, so things 'worked' without this code on many machines. I wonder how many DP/DVI/HDMI machines aren't actually doing hotplug today...