isochronous support broken?

Alistair John Strachan s0348365 at sms.ed.ac.uk
Sat Jan 7 12:00:03 EST 2006


On Saturday 07 January 2006 14:34, Duncan Sands wrote:
> Hi Alistair,
>
> > To see whether isoc support would help my 4MBit DSL cap, I attempted to
> > check out the CVS version of the driver and modprobed it with
> > enable_isoc=1
> >
> > I have a Via Epia M10000 which has a uhci USB 1.1 controller and an ehci
> > USB 2.0 controller. I've not had USB issues with the machine since I
> > bought it. Kernel is 2.6.15.
>
> is the modem plugged into the USB 1 or the USB 2 controller?  Is the uhci
> or ehci driver being used with it?

No idea. Both modules are loaded. I don't think the board's ehci chip is 
capable of translation, so probably just the uhci driver.

> > In bulk mode, the CVS driver works fine, however in isochronous mode, I
> > get the following errors to dmesg. The modem does not allow me to
> > establish a ppp connection over it, even though it synchronises
> > successfully. This suggests a driver bug.
>
> It does.  I presume that you built and inserted both the speedtch and
> usbatm modules from CVS, not just the speedtch module?

Of course. I did the following:

-	Checked out CVS;

-	Commented out calls to shutdown_atm_dev() in usbatm.c, as this function does
	not seem to exist in 2.6.15, and the calls are in failure/shutdown paths;

-	Replaced usbatm.ko and speedtch.ko with the CVS copies, and reloaded both.

> > usb 4-1.4: new full speed USB device using ehci_hcd and address 4
> > speedtch 4-1.4:1.0: usbatm_usb_probe: trying driver speedtch with
> > vendor=06b9, product=4061, ifnum  0
> > speedtch 4-1.4:1.0: speedtch_bind entered
> > speedtch 4-1.4:1.0: speedtch_bind: firmware not loaded
> > usb 4-1.4: reset full speed USB device using ehci_hcd and address 4
> > speedtch 4-1.4:1.0: usbatm_usb_probe: using 3200 byte buffer for channel
> > 0xd8258ea0
>
> This buffer size looks strange.  It should be a multiple of the maxpacket
> size for the isochronous endpoint.  What is in /proc/bus/usb/devices for
> the modem?

[alistair] 16:56 [~] cat /proc/bus/usb/devices

T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 6
B:  Alloc=  0/800 us ( 0%), #Int=  2, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.15 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=0000:00:10.3
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=256ms

T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 4
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0409 ProdID=0058 Rev= 1.00
S:  Manufacturer=NEC Corporation
S:  Product=USB2.0 Hub Controller
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

T:  Bus=04 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=06b9 ProdID=4061 Rev= 4.00
S:  Manufacturer=THOMSON
S:  Product=Speed Touch 330
S:  SerialNumber=0090D0CD5BE2
C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=speedtch
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=50ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=00 Prot=00 Driver=speedtch
I:  If#= 1 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=speedtch
E:  Ad=06(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=07(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=87(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:  If#= 1 Alt= 2 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=speedtch
E:  Ad=06(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=07(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=87(I) Atr=01(Isoc) MxPS= 640 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=speedtch
E:  Ad=06(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=07(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=87(I) Atr=01(Isoc) MxPS= 960 Ivl=1ms
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=speedtch
E:  Ad=05(O) Atr=02(Bulk) MxPS=   8 Ivl=0ms
E:  Ad=85(I) Atr=02(Bulk) MxPS=   8 Ivl=0ms

T:  Bus=03 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=64 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.15 uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:10.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=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=64 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.15 uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:10.1
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=255ms

T:  Bus=01 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=64 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.15 uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:10.0
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=255ms

> > speedtch 4-1.4:1.0: usbatm_usb_probe: using 3392 byte buffer for channel
> > 0xd8258ee8
> > speedtch 4-1.4:1.0: speedtch_find_firmware: looking for
> > speedtch-1.bin.4.00 speedtch 4-1.4:1.0: speedtch_find_firmware: looking
> > for speedtch-1.bin.4 speedtch 4-1.4:1.0: speedtch_find_firmware: looking
> > for speedtch-1.bin speedtch 4-1.4:1.0: found stage 1 firmware
> > speedtch-1.bin
> > speedtch 4-1.4:1.0: speedtch_find_firmware: looking for
> > speedtch-2.bin.4.00 speedtch 4-1.4:1.0: speedtch_find_firmware: looking
> > for speedtch-2.bin.4 speedtch 4-1.4:1.0: speedtch_find_firmware: looking
> > for speedtch-2.bin speedtch 4-1.4:1.0: found stage 2 firmware
> > speedtch-2.bin
> > speedtch 4-1.4:1.0: speedtch_upload_firmware entered
> > speedtch 4-1.4:1.0: speedtch_upload_firmware: BLOCK1 uploaded (935 bytes)
> > speedtch 4-1.4:1.0: speedtch_upload_firmware: BLOCK2 downloaded (511
> > bytes) speedtch 4-1.4:1.0: speedtch_upload_firmware: BLOCK3 uploaded
> > (775545 bytes) speedtch 4-1.4:1.0: speedtch_upload_firmware: BLOCK4
> > downloaded (511 bytes) ATM dev 3: speedtch_atm_start entered
> > ATM dev 3: speedtch_start_synchro entered
> > ATM dev 3: speedtch_start_synchro: modem prodded. 2 bytes returned: 00 00
> > /usr/src/speedtouch/usbatm.c: usbatm_get_instance
> > printk: 77 messages suppressed.
> > ATM dev 3: usbatm_submit_urb: urb 0xd70ada40 submission failed (-28)!
>
> -ENOSPC         This request would overcommit the usb bandwidth reserved
>                 for periodic transfers (interrupt, isochronous).
>
> Interesting.  What kernel version is this (I noticed some bandwidth changes
> going into 2.6.15)?  Do you have other iso devices connected at the same
> time?

No other USB devices are connected. However, the modem is connected through a 
hub.

> > ATM dev 3: usbatm_submit_urb: urb 0xd70adbc0 submission failed (-28)!
> > ATM dev 3: usbatm_submit_urb: urb 0xd70ad980 submission failed (-28)!
> > ATM dev 3: usbatm_submit_urb: urb 0xd70ad8c0 submission failed (-28)!
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
>
> -EAGAIN         a) specified ISO start frame too early
>                 b) (using ISO-ASAP) too much scheduled for the future
>                    wait some time and try again.
>
> (We are using ISO-ASAP).  Also seems like a bandwidth problem.
>
> > ATM dev 3: speedtch_check_status: line state 0x10
> > ATM dev 3: ADSL line is synchronising
> > printk: 83 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > ATM dev 3: speedtch_check_status: line state 0x20
> > ATM dev 3: ADSL line is up (6752 kb/s down | 576 kb/s up)
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > syslog-ng[3299]: STATS: dropped 0
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > pppd[7528]: Plugin pppoatm.so loaded.
> > pppd[7528]: PPPoATM plugin_init
> > pppd[7528]: PPPoATM setdevname_pppoatm - SUCCESS:0.38
> > pppd[7529]: pppd 2.4.3 started by root, uid 0
> > ATM dev 0: usbatm_atm_open: vpi 0, vci 38
> > ATM dev 0: usbatm_atm_open: disconnected!
> > pppd[7529]: connect(0.38): No such device
> > pppd[7529]: Exit.
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
> > printk: 299 messages suppressed.
> > ATM dev 3: usbatm_rx_process: status -11 in frame 0!
>
> I will have to think about this (and read up on bandwidth allocation).
> Thanks for testing, it looks like you found something serious!

No problem. I will be able to test any changes you make incrementally.

-- 
Cheers,
Alistair.

'No sense being pessimistic, it probably wouldn't work anyway.'
Third year Computer Science undergraduate.
1F2 55 South Clerk Street, Edinburgh, UK.



More information about the Usbatm mailing list