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