Apparently, when using usb-ohci with an interrupt endpoint and you
disconnect the device physically, the interrupt callback is called one
more time before the _disconnect() function is called.
Using a UHCI driver, the 'state' field of the callback is set to -ENOENT.
However, with usb-ohci, this is set to -110 (I think that's -ETIMEDOUT).
I think this should be -ENOENT. At the very least the UHCI and OHCI
drivers should show the same behavior.
Below is a short trace -- you can see the callback is called before the
disconnect function is called. I reported this a while back, but there
was some confusion as to the exact scenario in use. The scenario shown is
this: A device with an interrupt endpoint (which is being used) has been
physically disconnected from a hub attached to an OHCI controller. At the
time, usb-ohci and usb-storage were loaded, but the device was sitting
idle.
Could somebody please fix this, one way or the other?
USB Mass Storage device found at 3
USB Mass Storage support registered.
usb-storage: USB IRQ recieved for device on host 1
usb-storage: -- IRQ data length is 0
usb-storage: -- IRQ state is -110
usb-storage: -- Interrupt Status 0x0
usb-storage: ERROR: Unwanted interrupt received!
usb.c: USB disconnect on device 3
usb-storage: storage_disconnect() called
usb-storage: -- releasing irq handle
usb-storage: -- usb_release_irq() returned 0
Matt Dharm
--
Matthew Dharm Home: [EMAIL PROTECTED]
Engineer, Qualcomm, Inc. Work: [EMAIL PROTECTED]
I could always suspend a few hundred accounts and watch what happens.
-- Tanya
User Friendly, 7/31/1998
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]