On Fri, 5 Aug 2005, Li shuxiong wrote: > I meet a problem in my usb system. > We designed a complicated usb device system. On this > board, we have total 6 hubs,and 16 usb devices. The > usb devcies are all USB 1.1 full speed devices. The > hub's upstream ports are 2.0 high speed. All these 16 > devices are video compressor. > > This board will connect to a Common Intel P4 PC > through an usb cable. PC has host controller and root > hub. > I designed the driver for these 16 video devices. > My problem, if I quit my application, stop my driver, > call my driver's release() function, then unplug the > usb cable, all the hubs and devices on my board can be > disconnected successfully by USB kernel. However if my > usb device is working, streaming video out to my host > PC by usb connection, I unplugged the usb cable which > means all hubs and devices on this board are gone(I > know this is rude), USB kernel try to disconnect all > the hubs and devices on my board, but somehow it hangs > there, and never go further. > I did some investigate: > The hang happened inside ehci-hcd.c's > Ehci_endpoint_disable() > The qh->state is always QH_STATE_UNLINK, the program > trapped into the endless loop > > ++++++++++++++++++++++++++++++++++++++++++++++++++ > > case QH_STATE_UNLINK: /* wait for hw to > finish? */ > > idle_timeout: > > spin_unlock_irqrestore (&ehci->lock, > flags); > > set_current_state (TASK_UNINTERRUPTIBLE); > > schedule_timeout (1); > > goto rescan; > > ++++++++++++++++++++++++++++++++++++++++++++++++ > > > > The end point which kernel go to disable are BULK > audio or BULK video. > > I really do not know why the unlink procedures did not > finished or did not made it and change the qh->state > back to idle. > > Any suggestion? > > > > My kernel version is 2.6.10. > > Eric Li
Try using 2.6.13-rc4. A few fixes have been added to the driver since 2.6.10 was released. If that doesn't work, post a message on the linux-usb-devel mailing list and CC: the maintainer for the ehci-hcd driver. Alan Stern ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ Linux-usb-users@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users