Re: question on spurious interrupts
Alan Stern <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 20 Sep 2007, Oliver Neukum wrote:
> Hi,
>
> regarding this comment from ehci_irq:
>
> #ifdef EHCI_VERBOSE_DEBUG
> /* unrequested/ignored: Frame List Rollover */
> dbg_status (ehci, "irq", status);
> #endif
>
> How are we supposed to get there if this code comes first:
>
> status &= INTR_MASK;
> if (!status) { /* irq sharing? */
> spin_unlock(&ehci->lock);
> return IRQ_NONE;
> }
>
> Which chipset occur unrequested interrupts with? Shouldn't they
> be acknowledged and IRQ_HANDLED be returned?
I get the impression the code should look like this:
if (!status) { /* irq sharing? */
spin_unlock(&ehci->lock);
return IRQ_NONE;
}
#ifdef EHCI_VERBOSE_DEBUG
/* unrequested/ignored: Frame List Rollover */
dbg_status (ehci, "irq", status);
#endif
/* clear (just) interrupts */
status &= INTR_MASK;
ehci_writel(ehci, status, &ehci->regs->status);
ehci_readl(ehci, &ehci->regs->command); /* unblock posted write */
bh = 0;
Alan Stern
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel