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