On Fri, 27 Apr 2007, Mike Nuss wrote: > > Look at ohci-hcd.c:ohci_endpoint_disable(). There's a > "switch(ed->state)" > > line; see what it does in the ED_UNLINK case. It retries for up to > 1000 > > ms, waiting for ed->state to change to ED_IDLE. That's where the "IRQ > > INTR_SF lossage" message comes from, if ed->state never changes. > > I have indeed looked in there; it was originally where I thought the > problem was coming from. It's interesting that you say it should retry > for up to 1000 ms. schedule_timeout_uninterruptible(1) sleeps for one > kernel tick, correct? And the limit is decreased by one each time > through the loop. So for smaller values of HZ, it would retry for > longer. Was this the intended behavior?
You're right; for some reason I was thinking that the argument to schedule_timeout_interruptible() was in milliseconds, not jiffies. I don't know the intended behavior because I didn't write the code. In principle one would think that retrying for 10 ms or even less would be sufficient, since the SOF interrupt is supposed to occur every millisecond. > Of course. Which reminds me - there's a comment in ohci-pci.c: > > /* Check for Compaq's ZFMicro chipset, which needs short > * delays before control or bulk queues get re-activated > * in finish_unlinks() > */ > This is the chipset I'm using (and the quirk is enabled). Is it possible > there's also an issue with interrupt queues handling? I don't know what > the issue was that led to the creation of the quirk, but it seems like > it's in the same ballpark. Certainly it's possible. I don't know what led to the creation of the ZFMicro quirk either, but Dave does. > I think it's pretty clear there's an underlying hardware issue, but > maybe there is a workaround. I added the additional debug code you > suggested to get a better idea of what finish_unlinks() is doing (or not > doing). And the results are... ? Alan Stern ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel