[alsa-devel] Fwd: Support for Roland VG-99 (working code, but could use help)

Pete Leigh pete.leigh at gmail.com
Sat Oct 20 04:21:42 CEST 2012


Hi,

On 19 October 2012 23:24, Pete Leigh <pete.leigh at gmail.com> wrote:

> If I take the working config, and disable CONFIG_USB_EHCI_TT_NEWSCHED,
> recompile, make install, reboot, then I get the familiar  "cannot
> submit urb 0, error -28: not enough bandwidth" error, and trying to
> record off the UA-25 in audacity freezes audacity. If I then re-enable
> it, recompile, make install, reboot, then I don't see the error, and
> recording off the UA-25 works normally in audacity.

Just a bit more info on how this is happening in ehci-sched.c (with
the ...NEWSCHED config unset),

It is hitting the Q_TYPE_QH case in tt_no_collision().

In there, (mask & uf_mask) evaluates to true, and thus 0 is returned
to sitd_slot_ok() which in turn returns 0 to iso_stream_schedule().

It goes around this loop 3 times before giving the -ENOSPC error in
iso_stream_schedule().

I'm seeing this from some debug printks I inserted:

[   52.135325] knowsnogap: mask was: 1124206081, uf_mask is: 61444,
mask is now: 1128465927
[   52.135328] returning 0 in tt_no_collision (4) frame: 0,
ehci->periodic_size 1024,  period 1
[   52.135329] returning 0 in sitd slot ok
[   52.135330] knowsnogap: mask was: 1124206081, uf_mask is: 30722,
mask is now: 1128465927
[   52.135330] returning 0 in tt_no_collision (4) frame: 0,
ehci->periodic_size 1024,  period 1
[   52.135331] returning 0 in sitd slot ok
[   52.135331] knowsnogap: mask was: 1124206081, uf_mask is: 15361,
mask is now: 1128465927
[   52.135332] returning 0 in tt_no_collision (4) frame: 0,
ehci->periodic_size 1024,  period 1
[   52.135333] returning 0 in sitd slot ok
[   52.135334] no room: iso resched full ffff8802158b3300 (now 899 max 9091)
[   52.135336] ALSA sound/usb/endpoint.c:877 cannot submit urb 0,
error -28: not enough bandwidth

The "knowsnogap" message  is from just before the break; in the
Q_TYPE_QH case, showing the value of uf_mask and mask before and after
 "mask |= mask >> 8" is done

(I would have put these in hex.. I thought they'd be small! :)

the "returning 0 in tt_no_collision" are printed just before the
return 0, showing the values at that time.

Hope this is somehow useful..

Cheers,

- Pete.


More information about the Alsa-devel mailing list