[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120411090318.121a6d6b@jbarnes-desktop>
Date: Wed, 11 Apr 2012 09:03:18 -0700
From: Jesse Barnes <jbarnes@...tuousgeek.org>
To: Michel Dänzer <michel@...nzer.net>
Cc: Jiri Slaby <jslaby@...e.cz>, LKML <linux-kernel@...r.kernel.org>,
Jiri Slaby <jirislaby@...il.com>,
dri-devel@...ts.freedesktop.org
Subject: Re: i915_driver_irq_handler: irq 42: nobody cared
On Wed, 11 Apr 2012 08:29:22 +0200
Michel Dänzer <michel@...nzer.net> wrote:
> On Die, 2012-04-10 at 11:34 -0700, Jesse Barnes wrote:
> > On Tue, 10 Apr 2012 20:11:29 +0200
> > Jiri Slaby <jslaby@...e.cz> wrote:
> >
> > > On 04/10/2012 06:26 PM, Jesse Barnes wrote:
> > > > So port hotplug is always reporting that port C has a hotplug
> > > > interrupt though... If you write 0x3 back to it does the interrupt
> > > > stop?
> > >
> > > I'm not sure I got it right. This doesn't help:
> > > --- a/drivers/gpu/drm/i915/i915_irq.c
> > > +++ b/drivers/gpu/drm/i915/i915_irq.c
> > > @@ -1416,6 +1416,17 @@ static irqreturn_t
> > > i915_driver_irq_handler(DRM_IRQ_ARGS)
> > > iir = new_iir;
> > > }
> > >
> > > + if (ret == IRQ_NONE) {
> > > + u32 hp = I915_READ(PORT_HOTPLUG_STAT);
> > > + if (hp) {
> > > + I915_WRITE(PORT_HOTPLUG_STAT, hp);
> > > + I915_READ(PORT_HOTPLUG_STAT);
> > > + }
> > > +
> > > + if (printk_ratelimit())
> > > + printk(KERN_DEBUG "%s: %.8x\n", __func__, hp);
> > > +
> > > + }
> > >
> > > return ret;
> > > }
> >
> > Yeah that looks right, you still get 0x300?
>
> You said 'If you write 0x3 back' above, but this code writes 0x300.
> Which is right?
0x300 is right, the bits are status bits with write 1 to clear
semantics. But it looks like this one is just stuck high (probably
because port C isn't actually wired up fully).
--
Jesse Barnes, Intel Open Source Technology Center
Download attachment "signature.asc" of type "application/pgp-signature" (837 bytes)
Powered by blists - more mailing lists