Re: [PATCH] drm/i915: Enable digital port hotplug on PCH systems

From: Keith Packard
Date: Tue Sep 20 2011 - 12:36:38 EST


On Tue, 20 Sep 2011 17:24:21 +0100, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote:
> On Tue, 20 Sep 2011 08:47:21 -0700, Keith Packard <keithp@xxxxxxxxxx> 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...

--
keith.packard@xxxxxxxxx

Attachment: pgp00000.pgp
Description: PGP signature