[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4F848F88.7060009@suse.cz>
Date: Tue, 10 Apr 2012 21:52:40 +0200
From: Jiri Slaby <jslaby@...e.cz>
To: Jesse Barnes <jbarnes@...tuousgeek.org>
CC: Chris Wilson <chris@...is-wilson.co.uk>,
Jiri Slaby <jirislaby@...il.com>,
LKML <linux-kernel@...r.kernel.org>,
dri-devel@...ts.freedesktop.org, daniel@...ll.ch
Subject: Re: i915_driver_irq_handler: irq 42: nobody cared
On 04/10/2012 08:34 PM, 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?
Yes.
> You could try masking hotplug interrupts altogether.
This doesn't help:
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2049,7 +2051,7 @@ static int i915_driver_irq_postinstall(struct
drm_device *dev)
I915_WRITE(IER, enable_mask);
POSTING_READ(IER);
- if (I915_HAS_HOTPLUG(dev)) {
+ if (0 && I915_HAS_HOTPLUG(dev)) {
u32 hotplug_en = I915_READ(PORT_HOTPLUG_EN);
/* Note HDMI and DP share bits */
> Also, just to sanity check things, can you look at the output of
> "lspci -s 02.0 -vvv -xxx" and see if the "INTx" field is + or -?
> If it's +, then the interrupt is definitely coming from an un-acked
> IRQ source on the gfx device. If it's INTx-, it means something in
> one of the upper MSI layers isn't getting handled right.
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
I tried 3.2 and 3.3. Although the spurious interrupts were always
there, they occurred with frequency lower by a magnitude (15 vs. 300
after X starts). So I bisected that and it lead to a commit which
fixes bad tiling for me:
http://cgit.freedesktop.org/~ickle/linux-2.6/commit/?h=for-jiri&id=79710e6ccabdac80c65cd13b944695ecc3e42a9d
thanks,
--
js
suse labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists