On Tue, 2005-02-08 at 15:32, Alan Stern wrote: > A few details would help, such as the contents of /proc/bus/usb/devices > and a system log with CONFIG_USB_DEBUG turned on.
I'd better get busy building a custom kernel! I can provide a listing of the contents of /proc/bus/usb/devices right now though: T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.10-1.9_FC2 uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1f.2 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 1 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.10-1.9_FC2 ohci_hcd S: Product=OHCI Host Controller S: SerialNumber=0000:02:0a.1 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.10-1.9_FC2 ohci_hcd S: Product=OHCI Host Controller S: SerialNumber=0000:02:0a.0 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 3 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.10-1.9_FC2 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:02:0a.2 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=15c0 ProdID=0001 Rev= 1.00 S: Manufacturer=XL Imaging S: Product=USB2.0 PC Camera C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=400mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=xli_2M E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms > Are you certain that it isn't your driver that gets wedged, rather than > the rest of the USB subsystem? Can you provide log messages showing the > system getting into a state where your driver has successfully submitted > an URB but the endpoint is not being polled? > > Alan Stern I'm pretty certain, yes. I will do a run with some special debugging to be sure. I have done this before, but probably not since Christmas. The state-machine that assembles the URBs into an image-buffer is the same no matter what resolution or mode the camera runs in. It's working fine with 1600x1200x1 or 800x600x2 pictures, mysteriously can't seem to handle 800x600x1. The odd thing is that it sometimes manages as many as 5 or 6 frames from the camera in that mode before wedging. You'd think it would work all the time or never. The driver registers 8 URBs with the underlying USB layer, and receives callbacks from each one, using its state machine to decide where to transfer the contents. The contents (obviously) consists of 32K chunks of data, the image being terminated by a <32K URB. Each URB is given back to the underlying layer as soon as its contents is transferred. It all works fine when all the underlying bulk packets are 512 bytes, so it seems... I'll follow up tomorrow with the other debug info that you request. Steve ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel