On Fri, 3 Jun 2005, Stuart MacDonald wrote: > Why doesn't queueing work?
Sorry, I don't know. :-( My knowledge of the 2.4 uhci driver is limited to the extent that it resembles the 2.6 uhci-hcd driver. I've never seriously considered trying to maintain or improve it. > Rhetorical mostly, :-) but if you happen to have an answer, I'm > willing to make a patch. > > The only guess I was able to come up with is that there's a race > between uhci_submit_urb() and its callees uhci_submit_bulk() & > uhci_append_queued_urb() and uhci_interrupt() and its callees that > causes the "Chain of QHs and TDs" to be such that the hardware thinks > the chain is done, but that the driver things the chain is running. > > I did see that uhci_interrupt() stops entering ie interrupts have > stopped being generated, but not due to lockup since the system was > fine, and I could reload my driver and have it communicate again. I don't even know whether there's a flagrant error in the code or a subtle race. However, there is one possibility... Older Intel UHCI hardware (the PIIX3 Neptune chipset) has an erratum that causes the controller sometimes to update a completed TD's status but not update the QH's element pointer. As a result the controller remains stuck on the completed TD and never advances to the next one. Could that be happening to you? You can find out by building the driver with CONFIG_USB_DEBUG turned on and loading it with modprobe uhci debug=3 Then the file under /proc/driver/uhci/ corresponding to the controller in use will contain debugging information showing the current state of the schedule. If you examine that while the queue is stopped you'll be able to see exactly what's wrong. Of course this particular erratum would also affect transfers that don't use bulk queuing... > Please don't spend any time on this on my behalf; I've already worked > around it. Okay, I won't. Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel