On Sat, 28 Apr 2007, Mike Nuss wrote:
> > This has nothing to do with polling or bInterval. The host controller is
> > supposed to generate an interrupt at the start of each frame (once per
> > millisecond) provided the appropriate IRQ-enable flag is set. INTR_SF ==
> > INTeRrupt at Start of Frame. These are the interrupts which apparently
> > don't occur -- although your debugging may uncover other problems.
>
> So it seems like if the host controller were not generating INTR_SF at
> all, the host wouldn't get data from any of the attached devices.
No, I don't think that's right. The data transfers work more or less
independently from the Start Of Frame interrupts, because each time a
transfer completes the host controller generates another IRQ -- or at
least, it's supposed to. The SOF interrupts are needed pretty much only
for unlinking URBs, which is why you see problems in the endpoint_disable
routine (since part of disabling an endpoint is to unlink any outstanding
URBs queued for that endpoint).
> The
> behavior I'm seeing is that one or more devices' read queues will 'lock
> up' (and the problem doesn't become critical until the device is removed
> and hcd_endpoint_disable is called) but the rest keep working.
It sounds like there's something seriously wrong with the host controller
hardware, and I don't mean just the SOF stuff. When the problem occurs
you might be able to get some useful information from the OHCI debugging
files in
/sys/class/usb_host/usb_hostN/
where N is the bus number of the failing controller. (Note: these files
are present only if you set CONFIG_USB_DEBUG when building the kernel.)
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/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel