> > As I said, it now reports ENOSPC errors if there are low-speed
> > devices or significant isochronous transfers on the bus.  
> 
> It's quite possible that those are genuine errors.  That is, the 
> requested bandwidth may be more than the bus can provide.

Possible. This modem runs 1007 byte ISO IN and 32 byte INT IN.
OHCI scheduler accepts a further 48 byte ISO stream, but rejects
192 byte ISO and low-speed stuff.

Anyway, this wasn't my point, because...

> > And as I suspected, 3.14 happily lets me run this modem and a
> > low-speed keyboard and a 192kB/s audio stream, all at the same time
> > and with no errors whatsoever :) Only it takes pppd a few minutes
> > to even establish the ppp session.  
> 
> I don't think there were any significant changes to the bandwidth
> allocation routines in ohci-hcd between those kernel releases, but
> perhaps there were.

I think *we* made a change to bandwidth allocation, namely, we killed a
bug which bypasses bandwidth allocation :)

If ed_schedule fails and leaves the ed in OPER state, the next time
somebody tries to use this endpoint, ohci_urb_enqueue skips the whole
block which normally calls ed_schedule. Only by some dark magic, which
I don't comprehend, the buffers end up being submitted to the hardware.

Something like that is visible in the log I posted yesterday: ueagle
driver resubmits this failing urb like crazy but *only once* the branch
'if (ed->state==ED_IDLE)' is taken and ed_schedule() called. Despite
this, however, the modem starts to work once I disconnect other stuff.


The outputs you asked for, in case I'm wrong:

T:  Bus=05 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 25 Spd=12   MxCh= 0
D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1110 ProdID=9031 Rev=20.0b
S:  Product=ADSL-USB Modem
S:  SerialNumber=00604C8D86AA
C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=400mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=07 Prot=00 Driver=ueagle-atm
E:  Ad=84(I) Atr=03(Int.) MxPS=  32 Ivl=1ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:  If#= 2 Alt= 0 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:  If#= 2 Alt= 1 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=88(I) Atr=01(Isoc) MxPS= 159 Ivl=1ms
I:  If#= 2 Alt= 2 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=88(I) Atr=01(Isoc) MxPS= 265 Ivl=1ms
I:  If#= 2 Alt= 3 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=88(I) Atr=01(Isoc) MxPS= 424 Ivl=1ms
I:  If#= 2 Alt= 4 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=88(I) Atr=01(Isoc) MxPS= 530 Ivl=1ms
I:  If#= 2 Alt= 5 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=88(I) Atr=01(Isoc) MxPS= 636 Ivl=1ms
I:  If#= 2 Alt= 6 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=88(I) Atr=01(Isoc) MxPS= 795 Ivl=1ms
I:  If#= 2 Alt= 7 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=88(I) Atr=01(Isoc) MxPS= 901 Ivl=1ms
I:* If#= 2 Alt= 8 #EPs= 1 Cls=0a(data ) Sub=00 Prot=00 Driver=ueagle-atm
E:  Ad=88(I) Atr=01(Isoc) MxPS=1007 Ivl=1ms

T:  Bus=05 Lev=01 Prnt=01 Port=04 Cnt=02 Dev#= 21 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=1130 ProdID=f211 Rev= 2.04
S:  Product=USB  AUDIO  
C:* #Ifs= 5 Cfg#= 1 Atr=80 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:* If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 1 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E:  Ad=01(O) Atr=09(Isoc) MxPS= 192 Ivl=1ms
I:  If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:* If#= 2 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E:  Ad=83(I) Atr=09(Isoc) MxPS=  48 Ivl=1ms
I:* If#= 3 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:* If#= 4 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
E:  Ad=84(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

size = 32
 0 [873]: ed1/ffff8800df82d230 (fs dev25 ep4in-int qlen 1 max 32 00201219) 
ed1/ffff8800df82d150 (fs dev25 ep8in-iso qlen 11 max 1007 03ef9419) 
ed1/ffff8800df82d000 (fs dev21 ep3in-iso qlen 12 max 48 00309195)
 1 [889]: ed8/ffff8800df82d380 (fs dev21 ep2in-int qlen 1 max 8 00081115) 
ed1/ffff8800df82d230
 2 [889]: ed8/ffff8800df82d2a0 (fs dev21 ep4in-int qlen 1 max 8 00081215) 
ed1/ffff8800df82d230
 3 [873]: ed1/ffff8800df82d230
 4 [873]: ed1/ffff8800df82d230
 5 [873]: ed1/ffff8800df82d230
 6 [873]: ed1/ffff8800df82d230
 7 [873]: ed1/ffff8800df82d230
 8 [873]: ed1/ffff8800df82d230
 9 [889]: ed8/ffff8800df82d380
10 [889]: ed8/ffff8800df82d2a0
11 [873]: ed1/ffff8800df82d230
12 [873]: ed1/ffff8800df82d230
13 [873]: ed1/ffff8800df82d230
14 [873]: ed1/ffff8800df82d230
15 [873]: ed1/ffff8800df82d230
16 [873]: ed1/ffff8800df82d230
17 [889]: ed8/ffff8800df82d380
18 [889]: ed8/ffff8800df82d2a0
19 [873]: ed1/ffff8800df82d230
20 [873]: ed1/ffff8800df82d230
21 [873]: ed1/ffff8800df82d230
22 [873]: ed1/ffff8800df82d230
23 [873]: ed1/ffff8800df82d230
24 [873]: ed1/ffff8800df82d230
25 [889]: ed8/ffff8800df82d380
26 [889]: ed8/ffff8800df82d2a0
27 [873]: ed1/ffff8800df82d230
28 [873]: ed1/ffff8800df82d230
29 [873]: ed1/ffff8800df82d230
30 [873]: ed1/ffff8800df82d230
31 [873]: ed1/ffff8800df82d230
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to