Well, here is the patch I am using. Quite simple, really... (2.6.11 kernel):

--- a/drivers/usb/host/ohci-hcd.c 2005-04-13 16:10:34.000000000 -0400
+++ b/drivers/usb/host/ohci-hcd.c 2005-04-13 16:10:50.000000000 -0400
@@ -693,13 +693,16 @@


/* we can eliminate a (slow) ohci_readl()
if _only_ WDH caused this irq */
+#ifndef CONFIG_SA1111
if ((ohci->hcca->done_head != 0)
&& ! (hc32_to_cpup (ohci, &ohci->hcca->done_head)
& 0x01)) {
ints = OHCI_INTR_WDH;


/* cardbus/... hardware gone before remove() */
- } else if ((ints = ohci_readl (ohci, &regs->intrstatus)) == ~(u32)0) {
+ } else
+#endif
+ if ((ints = ohci_readl (ohci, &regs->intrstatus)) == ~(u32)0) {
disable (ohci);
ohci_dbg (ohci, "device removed!\n");
return IRQ_HANDLED;


Just curious: with the exception of PXA27x and possibly iPaq who else is using ohci?
My guess is that PXA27x host controller is just an SA1111 clone put on that chip so it is reasonable to assume it broken. I will know soon. We are getting our new PXA270-based boards in a few weeks.




On Apr 13, 2005, at 4:02 PM, David Brownell wrote:

On Tuesday 12 April 2005 3:18 pm, Jaroslav Flidr wrote:
For those who are interested and still using SA1111-based architecture
(e.g. ziti): the ohci-recommended way of handling the WDH interrupt -
reading the done_head pointer and testing its LSB without reading the
interrupt status register must not be used. It appears that the SA1111
host controller never sets that bit ...

The fix is obvious. Either always read the interrupt status register or
always clear the SF bit in it.

Or better yet, always read it iff the controller's an SA-1111. No point
in slowing down the IRQ paths by needless chip accesses on other cpus.
It'd be reasonable to define a new quirk flag for "WDH_BROKEN"; I think
it may not only be an SA1111 iseue.


Got patch?  :)

- Dave





------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to