On Sat, Dec 09, 2006 at 04:03:48PM -0500, Alan Stern wrote:
> >  but that did not help:
> > 
> > http://userweb.kernel.org/~brodo/dmesg-autosuspend.txt
> > 
> > The "offending" IRQ status seems to be 2008; as INTR_MASK does neither
> > include STS_FLR nor STS_RECL (if I got the math correctly), IRQ_NONE is
> > returned.
> 
> Yes, that's right.  In fact the controller isn't supposed to send an IRQ
> when only those two bits are on.  I suspect the STS_FLR bit is somehow
> getting set in the intr_enable register (don't ask me how -- there doesn't
> seem to be any code that could do it).  Can you modify the patch to print
> out the value of that register as well as the value of the status 
> register?

done (with only ehci-hcd being the only IRQ 10 user).

case A) usb-storage device connected to "left" USB port:

The flip occurs on or after IRQ status 8028

http://userweb.kernel.org/~brodo/dmesg-autosuspend-3.txt


case B) snd-usb-audio device connected to "right" USB port:

The flip occurs on or after IRQ status 0004.

http://userweb.kernel.org/~brodo/dmesg-autosuspend-2.txt
(unfortunately, without extended USB debug messages)


Thanks,
        Dominik


PS: the patch I used:

--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -569,10 +569,22 @@ static irqreturn_t ehci_irq (struct usb_
        struct ehci_hcd         *ehci = hcd_to_ehci (hcd);
        u32                     status;
        int                     bh;
+       u32                     temp;
 
        spin_lock (&ehci->lock);
 
        status = readl (&ehci->regs->status);
+       temp = readl (&ehci->regs->intr_enable);
+
+       {
+               static int cnt;
+
+               if (cnt < 200) {
+                       ++cnt;
+                       ehci_info(ehci, "IRQ status %x, intr_enable %x\n",
+                                 status, temp);
+               }
+       }
 
        /* e.g. cardbus physical eject */
        if (status == ~(u32) 0) {

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to