> > 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