Issue when using simultaneously usb audio device microphone and speaker through xhci driver

Hi All,
I find the similar issue in TX1 dev board.

The usb device has those interfaces:


/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/5p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/7p, 480M
        |__ Port 6: Dev 4, If 0, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 6: Dev 4, If 1, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 6: Dev 4, If 2, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 6: Dev 4, If 3, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

Playing pipeline is:


gst-launch-1.0 audiotestsrc ! audio/x-raw,format=S16LE,layout=interleaved,rate=48000,channels=2 ! audioconvert ! audio/x-raw,format=S24LE,layout=interleaved,rate=48000,channels=2 ! alsasink device=front:2 sync=0 async=0

Recording pipeline is:


gst-launch-1.0 alsasrc device=front:2 ! capsfilter caps=audio/x-raw,format=S24LE,layout=interleaved,rate=48000,channels=2 ! wavenc ! filesink location=file.wav sync=0 async=0

The recording pipeline can generate audio bytes properly but the speaker produce noise when I start both the two pipeline.
This issue happened in L4T r28.3.2 but was fixed in L4T r28.4.
This issue could be fixed if I copy the file “/lib/firmware/tegra21x_xusb_firmware” of L4T r28.4 to L4T r28.3.2.
So I think maybe this issue in TK1 can be fixed by upgrading the xusb firmware.
Could Nvidia look what has changed in these two versions of tx1 xusb Firmware? Could these changes be applied to TK1?

You probably should move that question to the TX1 forum:
https://forums.developer.nvidia.com/c/agx-autonomous-machines/jetson-embedded-systems/jetson-tx1/80

The TK1 was quite different and is the 32-bit world which never went beyond the R21.x releases. Everything in R28.x+ is the 64-bit world and a lot of significant changes were made.

Hi linuxdev,
The reason I did not post to the TX1 forum is because TX1 already has a solution (by upgrading to l4t r28.4) but TK1 currently has no solution.
Hi linuxdev,
I know that TK1 is completely different from TX1. But I think TX1 can solve this problem by upgrading XUSB firmware.
Nvidia may be able to solve this problem in TK1 in the same way.
In addition, I found that TX1 under l4t r32.2 does not have this problem even if it is replaced with r28.3 xusb firmware.
So I think there may be a chance to solve this problem by modifying the driver.

Unfortunately the 32-bit platforms are no longer actively developed. About the only thing which might be developed on a TK1 would be a security patch. A driver update on the TK1 seems unlikely, and so you might want to consider using one of the 64-bit platforms.

@FrankPCP what L4T version are you using?

Hi mike_nv,
I have tested this on l4t r21.8 and r21.5. They both have this issue.

Any news about this issue?