The laptop has kernel 6.1.14 (Fedora 37)
I looked into the error message and found a patch description saying
that the error: (cannot submit urb 0, error -90: internal error) can
happen when a audio device's channel number does not match its data
endpoint, leading to failure at the host driver.
https://github.com/DerRomtester/android_kernel_oneplus_msm8974/commit/2ef9cf0c9181e9472fa0be7885541e91189ecd5d
It seems like the f_uac1 gadget might not be syncing the channel number
value with the data endpoint.
Noah
On 3/10/23 01:51, Ruslan Bilovol wrote:
On Wed, Mar 8, 2023 at 11:24 PM Noah Causin <n0manletter@xxxxxxxxx> wrote:
Hi Ruslan,
I can't seem to get the f_uac1 to work with more than 2 channels. I'm
able to setup f_uac2 with 8 channels.
I've tried a 5.1 and 7.1 setup (c_chmask=63 or 255, c_srate=44100,
c_ssize=2) but I get a urb 0 error on the connected Linux laptop and the
gnome sound-test freezes when testing a channel, no errors on the gadget
device. My usb controller is a DWC3 on a RockPro64 board.
usb 3-2: USB disconnect, device number 9
usb 3-2: new high-speed USB device number 10 using xhci_hcd
usb 3-2: New USB device found, idVendor=1d6b, idProduct=0104, bcdDevice=
1.00
usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-2: Product: audioproduct
usb 3-2: Manufacturer: audiomanufacturer
usb 3-2: SerialNumber: audioserial
usb 3-2: cannot submit urb 0, error -90: internal error
Hmmm.. I also can reproduce this issue, it seems that's some bug in the
host USB audio driver. At least I see that it tries to send packets with size
bigger than the endpoint's max packet size.
I reproduced it on my Debian laptop with (kernel v6.1) and can't reproduce
on older Ubuntu with kernel v5.4.
BTW Noah what is the kernel version on your laptop where you see
this issue?
Thanks,
Ruslan