> From: Alan Stern [mailto:[EMAIL PROTECTED]
> 
> Please configure your email client to wrap lines after 75 columns or
so.

Sorry about that.

> 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?
 
> 
> > It seems like that this point, we know the device is long gone, so
there
> > should be some way to force the issue.
> 
> What matters isn't the device -- it's the USB host controller's
internal
> state.

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.

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).

Thanks,
Mike

-------------------------------------------------------------------------
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

Reply via email to