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

Reply via email to