Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rpi-5.15.y drivers/usb/gadget uac2 not working in windows -> device cannot be started (error 10) #4587

Open
JFreyberger opened this issue Sep 17, 2021 · 6 comments

Comments

@JFreyberger
Copy link

JFreyberger commented Sep 17, 2021

Hi all,

I've seen that there have been changes on UAC2 support for running the RPI as an audio usb gadget. I know that there have been problems in former versions and windows didn't properly connect, so you had to use UAC1. Now with the new feedback endpoint this should work, but I still have problems when compiling the latest rpi-5.15.y kernel on my RPI4. Windows detects it correct as UAC2 audio device but still says in device manager the device cannot be started (error 10). Does this work for anybody? Do I miss something when compiling the kernel? I've added the output of USB Device Tree Viewer below.

Thanks and best regards,
Johannes

@pelwell
Copy link
Contributor

pelwell commented Sep 17, 2021

5.15 isn't finished yet so this isn't a high priority, but if you have a guide to how to configure the Pi to replicate your setup that would increase the chances of it getting looked at (and possibly help somebody more familiar with the topic spot an error).

@JFreyberger
Copy link
Author

The problem should be easy to reproduce. Compile the current 5.15 kernel and activate the g_audio module in /boot/cmdline.txt as discussed here:

https://www.audiosciencereview.com/forum/index.php?threads/raspberry-pi-as-usb-to-i2s-adapter.8567/

After compiling and booting with the new kernel connect your Raspberry to a standard W10 PC via USB. The device manager will detect the new audio device but will not start it with error 10 (error: The specified range could not be found in the range list)

I found some hints on the W10 UAC2 requirements here:

https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/usb-2-0-audio-drivers?source=docs

@JFreyberger
Copy link
Author

I already did some experiments with using the same endpoint ID for the feedback and the data endpoint which I think is required when looking into the USB 2.0 spec (p272: "A feedback endpoint (explicit or implicit) needs to be associated with one (or more) isochronous data endpoints to which it provides feedback service. The association is based on endpoint number matching. A feedback endpoint always has the opposite direction from the data endpoint(s) it services." But this didn't help. Then I did some changes on bInterval and wMaxPacketSize for the feedback endpoint. But also without luck so far ...

@JFreyberger
Copy link
Author

After changing the samplerate to 44100 and doing some other modifications the device windows manager doesn't show any errors but there are no audio endpoints created in windows. My USB descriptor now looks like this:

`
=========================== USB Port1 ===========================

Connection Status : 0x01 (Device is connected)
Port Chain : 2-4-1-1

  ========================== Summary =========================

Vendor ID : 0x1D6B (The Linux Foundation)
Product ID : 0x0101
USB version : 2.00
Port maximum Speed : High-Speed
Device maximum Speed : High-Speed
Device Connection Speed : High-Speed
Self Powered : yes
Demanded Current : 0 mA
Used Endpoints : 2

  ======================== USB Device ========================

    +++++++++++++++++ Device Information ++++++++++++++++++

Device Description : USB-Verbundgerät
Device Path : \?\USB#VID_1D6B&PID_0101#7&319e6f71&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name : \Device\USBPDO-15
Device ID : USB\VID_1D6B&PID_0101\7&319E6F71&0&1
Hardware IDs : USB\VID_1D6B&PID_0101&REV_0515 USB\VID_1D6B&PID_0101
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0013 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.19041.488 Date: 2020-11-06)
Driver Inf : C:\WINDOWS\inf\usb.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : usbccgp
Enumerator : USB
Location Info : Port_#0001.Hub_#0010
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(4)#USB(1)#USB(1), ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS04)#USB(1)#USB(1)
Container ID : {311b6f03-12d1-11ec-9a8b-001b21d47700}
Manufacturer Info : (Standard-USB-Hostcontroller)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 1
HcDisableSelectiveSuspend: 0
EnableSelectiveSuspend : 0
SelectiveSuspendEnabled : 0
EnhancedPowerMgmtEnabled : 0
IdleInWorkingState : 0
WakeFromSleepState : 0
Power State : D0 (supported: D0, D2, D3, wake from D0, wake from D2)
Child Device 1 : Source/Sink (USB Audio 2.0)
Device Path 1 : \?\USB#VID_1D6B&PID_0101&MI_00#8&1583d6b2&1&0000#{dda54a40-1e4c-11d1-a050-405705c10000}\msft_topo (STATIC_KSCATEGORY_TOPOLOGY)
Device Path 2 : \?\USB#VID_1D6B&PID_0101&MI_00#8&1583d6b2&1&0000#{eb115ffc-10c8-4964-831d-6dcb02e6f23f}\msft_wave (STATIC_KSCATEGORY_REALTIME)
Device Path 3 : \?\USB#VID_1D6B&PID_0101&MI_00#8&1583d6b2&1&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\msft_wave (AM_KSCATEGORY_CAPTURE)
Device Path 4 : \?\USB#VID_1D6B&PID_0101&MI_00#8&1583d6b2&1&0000#{65e8773e-8f56-11d0-a3b9-00a0c9223196}\msft_wave (AM_KSCATEGORY_RENDER)
Device Path 5 : \?\USB#VID_1D6B&PID_0101&MI_00#8&1583d6b2&1&0000#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\msft_wave (AM_KSCATEGORY_AUDIO)
Device Path 6 : \?\USB#VID_1D6B&PID_0101&MI_00#8&1583d6b2&1&0000#{dda54a40-1e4c-11d1-a050-405705c10000}\msft_topo (STATIC_KSCATEGORY_TOPOLOGY)
Kernel Name : -
Device ID : USB\VID_1D6B&PID_0101&MI_00\8&1583D6B2&1&0000
Class : MEDIA
Driver KeyName : {4d36e96c-e325-11ce-bfc1-08002be10318}\0011 (GUID_DEVCLASS_MEDIA)
Service : usbaudio2
Location : 0000.0014.0000.004.001.001.000.000.000
LocationPaths : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(4)#USB(1)#USB(1)#USBMI(0) PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(4)#USB(1)#USB(1)#USB(1) ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS04)#USB(1)#USB(1)#USBMI(0) ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS04)#USB(1)#USB(1)#USB(1)

    +++++++++++++++++ Registry USB Flags +++++++++++++++++

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\1D6B01010515
osvc : REG_BINARY 00 00

    ---------------- Connection Information ---------------

Connection Index : 0x01 (Port 1)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x13 (19)
Is Hub : 0x00 (no)
Device Bus Speed : 0x02 (High-Speed)
Number Of Open Pipes : 0x01 (1 pipe to data endpoints)
Pipe[0] : EndpointID=1 Direction=IN ScheduleOffset=0 Type=Interrupt
Data (HexDump) : 01 00 00 00 12 01 00 02 EF 02 01 40 6B 1D 01 01 ...........@k...
15 05 01 02 00 01 01 02 00 13 00 01 00 00 00 01 ................
00 00 00 07 05 81 03 06 00 01 00 00 00 00 ..............

    --------------- Connection Information V2 -------------

Connection Index : 0x01 (1)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0)
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
Data (HexDump) : 01 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 ................

---------------------- Device Descriptor ----------------------

bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0xEF (Miscellaneous)
bDeviceSubClass : 0x02
bDeviceProtocol : 0x01 (IAD - Interface Association Descriptor)
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x1D6B (The Linux Foundation)
idProduct : 0x0101
bcdDevice : 0x0515
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : "Linux 5.15.0-rc1-v7l-R3layPI+ with fe980000.usb"
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : "Linux USB Audio Gadget"
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 00 02 EF 02 01 40 6B 1D 01 01 15 05 01 02 .......@k.......
00 01 ..

------------------ Configuration Descriptor -------------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x010D (269 bytes)
bNumInterfaces : 0x03 (3 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x00 (0 mA)
Data (HexDump) : 09 02 0D 01 03 01 00 C0 00 08 0B 00 03 01 01 20 ...............
04 09 04 00 00 01 01 01 20 05 09 24 01 00 02 08 ........ ..$....
77 00 00 08 24 0A 08 01 01 00 06 08 24 0A 07 01 w...$.......$...
01 00 07 11 24 02 01 01 01 00 07 02 03 00 00 00 ....$...........
00 00 00 08 12 24 06 05 01 0F 00 00 00 00 00 00 .....$..........
00 00 00 00 00 0D 11 24 02 02 00 02 00 08 02 03 .......$........
00 00 00 00 00 00 09 12 24 06 06 02 0F 00 00 00 ........$.......
00 00 00 00 00 00 00 00 0C 0C 24 03 04 01 01 00 ..........$.....
06 08 00 00 0A 0C 24 03 03 00 03 00 05 07 00 00 ......$.........
0B 07 05 81 03 06 00 01 09 04 01 00 00 01 02 20 ...............
0E 09 04 01 01 02 01 02 20 0F 10 24 01 01 00 01 ........ ..$....
01 00 00 00 02 03 00 00 00 00 06 24 02 01 02 10 ...........$....
07 05 01 05 BC 00 01 08 25 01 00 00 00 00 00 07 ........%.......
05 82 11 04 00 01 09 04 02 00 00 01 02 20 10 09 ............. ..
04 02 01 01 01 02 20 11 10 24 01 04 00 01 01 00 ...... ..$......
00 00 02 03 00 00 00 00 06 24 02 01 02 10 07 05 .........$......
83 05 B4 00 01 08 25 01 00 00 00 00 00 ......%......

    ------------------- IAD Descriptor --------------------

bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B
bFirstInterface : 0x00
bInterfaceCount : 0x03
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x01 (Audio Control)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x04 (String Descriptor 4)
Language 0x0409 : "Source/Sink"
Data (HexDump) : 08 0B 00 03 01 01 20 04 ...... .

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x05 (String Descriptor 5)
Language 0x0409 : "Topology Control"
Data (HexDump) : 09 04 00 00 01 01 01 20 05 ....... .

    ---- Audio Control Interface Header Descriptor 2.0 ----

bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x08 (I/O box)
wTotalLength : 0x0077 (119 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
Data (HexDump) : 09 24 01 00 02 08 77 00 00 .$....w..

    --- Audio Control Clock Source Unit Descriptor 2.0 ----

bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x08
bmAttributes : 0x01
D1..0: Clock Type : 0x01
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x01
D1..0: Clock Frequency : 0x01 (read only)
D3..2: Clock Validity : 0x00 (not present)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x06 (String Descriptor 6)
Language 0x0409 : "44100Hz"
Data (HexDump) : 08 24 0A 08 01 01 00 06 .$......

    --- Audio Control Clock Source Unit Descriptor 2.0 ----

bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x07
bmAttributes : 0x01
D1..0: Clock Type : 0x01
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x01
D1..0: Clock Frequency : 0x01 (read only)
D3..2: Clock Validity : 0x00 (not present)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x07 (String Descriptor 7)
Language 0x0409 : "44100Hz"
Data (HexDump) : 08 24 0A 07 01 01 00 07 .$......

    ----- Audio Control Input Terminal Descriptor 2.0 -----

bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x01
wTerminalType : 0x0101 (USB streaming)
bAssocTerminal : 0x00
bCSourceID : 0x07 (7)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x08 (String Descriptor 8)
Language 0x0409 : "USBH Out"
Data (HexDump) : 11 24 02 01 01 01 00 07 02 03 00 00 00 00 00 00 .$..............
08 .

    ------ Audio Control Feature Unit Descriptor 2.0 ------

bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x05 (5)
bSourceID : 0x01 (1)
bmaControls[0] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x0D (String Descriptor 13)
Language 0x0409 : "Playback Volume"
Data (HexDump) : 12 24 06 05 01 0F 00 00 00 00 00 00 00 00 00 00 .$..............
00 0D ..

    ----- Audio Control Input Terminal Descriptor 2.0 -----

bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x02
wTerminalType : 0x0200 (Input Undefined)
bAssocTerminal : 0x00
bCSourceID : 0x08 (8)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x09 (String Descriptor 9)
Language 0x0409 : "USBD Out"
Data (HexDump) : 11 24 02 02 00 02 00 08 02 03 00 00 00 00 00 00 .$..............
09 .

    ------ Audio Control Feature Unit Descriptor 2.0 ------

bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x06 (6)
bSourceID : 0x02 (2)
bmaControls[0] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x0C (String Descriptor 12)
Language 0x0409 : "Capture Volume"
Data (HexDump) : 12 24 06 06 02 0F 00 00 00 00 00 00 00 00 00 00 .$..............
00 0C ..

    ----- Audio Control Output Terminal Descriptor 2.0 ----

bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x04
wTerminalType : 0x0101 (USB streaming)
bAssocTerminal : 0x00 (0)
bSourceID : 0x06 (6)
bCSourceID : 0x08 (8)
iTerminal : 0x0A (String Descriptor 10)
Language 0x0409 : "USBH In"
Data (HexDump) : 0C 24 03 04 01 01 00 06 08 00 00 0A .$..........

    ----- Audio Control Output Terminal Descriptor 2.0 ----

bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x03
wTerminalType : 0x0300 (Output Undefined)
bAssocTerminal : 0x00 (0)
bSourceID : 0x05 (5)
bCSourceID : 0x07 (7)
iTerminal : 0x0B (String Descriptor 11)
Language 0x0409 : "USBD In"
Data (HexDump) : 0C 24 03 03 00 03 00 05 07 00 00 0B .$..........

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0006
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x06 (6 bytes per packet)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 81 03 06 00 01 .......

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x0E (String Descriptor 14)
Language 0x0409 : "Playback Inactive"
Data (HexDump) : 09 04 01 00 00 01 02 20 0E ....... .

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x0F (String Descriptor 15)
Language 0x0409 : "Playback Active"
Data (HexDump) : 09 04 01 01 02 01 02 20 0F ....... .

    ------ Audio Streaming Interface Descriptor 2.0 -------

bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x01 (1)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
Data (HexDump) : 10 24 01 01 00 01 01 00 00 00 02 03 00 00 00 00 .$..............

    ----- Audio Streaming Format Type Descriptor 2.0 ------

bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x02 (2 bytes)
bBitResolution : 0x10 (16 bits)
Data (HexDump) : 06 24 02 01 02 10 .$....

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x00BC
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0xBC (188 bytes per packet)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 01 05 BC 00 01 .......

    ----------- Audio Data Endpoint Descriptor ------------

bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0000
Data (HexDump) : 08 25 01 00 00 00 00 00 .%......

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 82 11 04 00 01 .......

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x10 (String Descriptor 16)
Language 0x0409 : "Capture Inactive"
Data (HexDump) : 09 04 02 00 00 01 02 20 10 ....... .

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x01
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x11 (String Descriptor 17)
Language 0x0409 : "Capture Active"
Data (HexDump) : 09 04 02 01 01 01 02 20 11 ....... .

    ------ Audio Streaming Interface Descriptor 2.0 -------

bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x04 (4)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
Data (HexDump) : 10 24 01 04 00 01 01 00 00 00 02 03 00 00 00 00 .$..............

    ----- Audio Streaming Format Type Descriptor 2.0 ------

bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x02 (2 bytes)
bBitResolution : 0x10 (16 bits)
Data (HexDump) : 06 24 02 01 02 10 .$....

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x83 (Direction=IN EndpointID=3)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x00B4
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0xB4 (180 bytes per packet)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 83 05 B4 00 01 .......

    ----------- Audio Data Endpoint Descriptor ------------

bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0000
Data (HexDump) : 08 25 01 00 00 00 00 00 .%......

----------------- Device Qualifier Descriptor -----------------

bLength : 0x0A (10 bytes)
bDescriptorType : 0x06 (Device_qualifier Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0xEF (Miscellaneous)
bDeviceSubClass : 0x02
bDeviceProtocol : 0x01 (IAD - Interface Association Descriptor)
bMaxPacketSize0 : 0x40 (64 Bytes)
bNumConfigurations : 0x01 (1 other-speed configuration)
bReserved : 0x00
Data (HexDump) : 0A 06 00 02 EF 02 01 40 01 00 .......@..

------------ Other Speed Configuration Descriptor -------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x07 (Other_speed_configuration Descriptor)
wTotalLength : 0x010D (269 bytes)
bNumInterfaces : 0x03 (3 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x00 (0 mA)
Data (HexDump) : 09 07 0D 01 03 01 00 C0 00 08 0B 00 03 01 01 20 ...............
04 09 04 00 00 01 01 01 20 05 09 24 01 00 02 08 ........ ..$....
77 00 00 08 24 0A 08 01 01 00 06 08 24 0A 07 01 w...$.......$...
01 00 07 11 24 02 01 01 01 00 07 02 03 00 00 00 ....$...........
00 00 00 08 12 24 06 05 01 0F 00 00 00 00 00 00 .....$..........
00 00 00 00 00 0D 11 24 02 02 00 02 00 08 02 03 .......$........
00 00 00 00 00 00 09 12 24 06 06 02 0F 00 00 00 ........$.......
00 00 00 00 00 00 00 00 0C 0C 24 03 04 01 01 00 ..........$.....
06 08 00 00 0A 0C 24 03 03 00 03 00 05 07 00 00 ......$.........
0B 07 05 81 03 06 00 01 09 04 01 00 00 01 02 20 ...............
0E 09 04 01 01 02 01 02 20 0F 10 24 01 01 00 01 ........ ..$....
01 00 00 00 02 03 00 00 00 00 06 24 02 01 02 10 ...........$....
07 05 01 05 BC 00 01 08 25 01 00 00 00 00 00 07 ........%.......
05 82 11 03 00 01 09 04 02 00 00 01 02 20 10 09 ............. ..
04 02 01 01 01 02 20 11 10 24 01 04 00 01 01 00 ...... ..$......
00 00 02 03 00 00 00 00 06 24 02 01 02 10 07 05 .........$......
83 05 B4 00 01 08 25 01 00 00 00 00 00 ......%......

    ------------------- IAD Descriptor --------------------

bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B
bFirstInterface : 0x00
bInterfaceCount : 0x03
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x01 (Audio Control)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x04 (String Descriptor 4)
Language 0x0409 : "Source/Sink"
Data (HexDump) : 08 0B 00 03 01 01 20 04 ...... .

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x05 (String Descriptor 5)
Language 0x0409 : "Topology Control"
Data (HexDump) : 09 04 00 00 01 01 01 20 05 ....... .

    ---- Audio Control Interface Header Descriptor 2.0 ----

bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x08 (I/O box)
wTotalLength : 0x0077 (119 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
Data (HexDump) : 09 24 01 00 02 08 77 00 00 .$....w..

    --- Audio Control Clock Source Unit Descriptor 2.0 ----

bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x08
bmAttributes : 0x01
D1..0: Clock Type : 0x01
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x01
D1..0: Clock Frequency : 0x01 (read only)
D3..2: Clock Validity : 0x00 (not present)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x06 (String Descriptor 6)
Language 0x0409 : "44100Hz"
Data (HexDump) : 08 24 0A 08 01 01 00 06 .$......

    --- Audio Control Clock Source Unit Descriptor 2.0 ----

bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x07
bmAttributes : 0x01
D1..0: Clock Type : 0x01
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x01
D1..0: Clock Frequency : 0x01 (read only)
D3..2: Clock Validity : 0x00 (not present)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x07 (String Descriptor 7)
Language 0x0409 : "44100Hz"
Data (HexDump) : 08 24 0A 07 01 01 00 07 .$......

    ----- Audio Control Input Terminal Descriptor 2.0 -----

bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x01
wTerminalType : 0x0101 (USB streaming)
bAssocTerminal : 0x00
bCSourceID : 0x07 (7)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x08 (String Descriptor 8)
Language 0x0409 : "USBH Out"
Data (HexDump) : 11 24 02 01 01 01 00 07 02 03 00 00 00 00 00 00 .$..............
08 .

    ------ Audio Control Feature Unit Descriptor 2.0 ------

bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x05 (5)
bSourceID : 0x01 (1)
bmaControls[0] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x0D (String Descriptor 13)
Language 0x0409 : "Playback Volume"
Data (HexDump) : 12 24 06 05 01 0F 00 00 00 00 00 00 00 00 00 00 .$..............
00 0D ..

    ----- Audio Control Input Terminal Descriptor 2.0 -----

bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x02
wTerminalType : 0x0200 (Input Undefined)
bAssocTerminal : 0x00
bCSourceID : 0x08 (8)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x09 (String Descriptor 9)
Language 0x0409 : "USBD Out"
Data (HexDump) : 11 24 02 02 00 02 00 08 02 03 00 00 00 00 00 00 .$..............
09 .

    ------ Audio Control Feature Unit Descriptor 2.0 ------

bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x06 (6)
bSourceID : 0x02 (2)
bmaControls[0] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x00, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x0C (String Descriptor 12)
Language 0x0409 : "Capture Volume"
Data (HexDump) : 12 24 06 06 02 0F 00 00 00 00 00 00 00 00 00 00 .$..............
00 0C ..

    ----- Audio Control Output Terminal Descriptor 2.0 ----

bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x04
wTerminalType : 0x0101 (USB streaming)
bAssocTerminal : 0x00 (0)
bSourceID : 0x06 (6)
bCSourceID : 0x08 (8)
iTerminal : 0x0A (String Descriptor 10)
Language 0x0409 : "USBH In"
Data (HexDump) : 0C 24 03 04 01 01 00 06 08 00 00 0A .$..........

    ----- Audio Control Output Terminal Descriptor 2.0 ----

bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x03
wTerminalType : 0x0300 (Output Undefined)
bAssocTerminal : 0x00 (0)
bSourceID : 0x05 (5)
bCSourceID : 0x07 (7)
iTerminal : 0x0B (String Descriptor 11)
Language 0x0409 : "USBD In"
Data (HexDump) : 0C 24 03 03 00 03 00 05 07 00 00 0B .$..........

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0006
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x06 (6 bytes per packet)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 81 03 06 00 01 .......

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x0E (String Descriptor 14)
Language 0x0409 : "Playback Inactive"
Data (HexDump) : 09 04 01 00 00 01 02 20 0E ....... .

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x0F (String Descriptor 15)
Language 0x0409 : "Playback Active"
Data (HexDump) : 09 04 01 01 02 01 02 20 0F ....... .

    ------ Audio Streaming Interface Descriptor 2.0 -------

bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x01 (1)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
Data (HexDump) : 10 24 01 01 00 01 01 00 00 00 02 03 00 00 00 00 .$..............

    ----- Audio Streaming Format Type Descriptor 2.0 ------

bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x02 (2 bytes)
bBitResolution : 0x10 (16 bits)
Data (HexDump) : 06 24 02 01 02 10 .$....

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x00BC
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0xBC (188 bytes per packet)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 01 05 BC 00 01 .......

    ----------- Audio Data Endpoint Descriptor ------------

bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0000
Data (HexDump) : 08 25 01 00 00 00 00 00 .%......

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0003
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x03 (3 bytes per packet)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 82 11 03 00 01 .......

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x10 (String Descriptor 16)
Language 0x0409 : "Capture Inactive"
Data (HexDump) : 09 04 02 00 00 01 02 20 10 ....... .

    ---------------- Interface Descriptor -----------------

bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02
bAlternateSetting : 0x01
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x11 (String Descriptor 17)
Language 0x0409 : "Capture Active"
Data (HexDump) : 09 04 02 01 01 01 02 20 11 ....... .

    ------ Audio Streaming Interface Descriptor 2.0 -------

bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x04 (4)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
Data (HexDump) : 10 24 01 04 00 01 01 00 00 00 02 03 00 00 00 00 .$..............

    ----- Audio Streaming Format Type Descriptor 2.0 ------

bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x02 (2 bytes)
bBitResolution : 0x10 (16 bits)
Data (HexDump) : 06 24 02 01 02 10 .$....

    ----------------- Endpoint Descriptor -----------------

bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x83 (Direction=IN EndpointID=3)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x00B4
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0xB4 (180 bytes per packet)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 83 05 B4 00 01 .......

    ----------- Audio Data Endpoint Descriptor ------------

bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0000
Data (HexDump) : 08 25 01 00 00 00 00 00 .%......

  -------------------- String Descriptors -------------------
         ------ String Descriptor 0 ------

bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
Data (HexDump) : 04 03 09 04 ....
------ String Descriptor 1 ------
bLength : 0x60 (96 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Linux 5.15.0-rc1-v7l-R3layPI+ with fe980000.usb"
Data (HexDump) : 60 03 4C 00 69 00 6E 00 75 00 78 00 20 00 35 00 .L.i.n.u.x. .5. 2E 00 31 00 35 00 2E 00 30 00 2D 00 72 00 63 00 ..1.5...0.-.r.c. 31 00 2D 00 76 00 37 00 6C 00 2D 00 52 00 33 00 1.-.v.7.l.-.R.3. 6C 00 61 00 79 00 50 00 49 00 2B 00 20 00 77 00 l.a.y.P.I.+. .w. 69 00 74 00 68 00 20 00 66 00 65 00 39 00 38 00 i.t.h. .f.e.9.8. 30 00 30 00 30 00 30 00 2E 00 75 00 73 00 62 00 0.0.0.0...u.s.b. ------ String Descriptor 2 ------ bLength : 0x2E (46 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Linux USB Audio Gadget" Data (HexDump) : 2E 03 4C 00 69 00 6E 00 75 00 78 00 20 00 55 00 ..L.i.n.u.x. .U. 53 00 42 00 20 00 41 00 75 00 64 00 69 00 6F 00 S.B. .A.u.d.i.o. 20 00 47 00 61 00 64 00 67 00 65 00 74 00 .G.a.d.g.e.t. ------ String Descriptor 4 ------ bLength : 0x18 (24 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Source/Sink" Data (HexDump) : 18 03 53 00 6F 00 75 00 72 00 63 00 65 00 2F 00 ..S.o.u.r.c.e./. 53 00 69 00 6E 00 6B 00 S.i.n.k. ------ String Descriptor 5 ------ bLength : 0x22 (34 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Topology Control" Data (HexDump) : 22 03 54 00 6F 00 70 00 6F 00 6C 00 6F 00 67 00 ".T.o.p.o.l.o.g. 79 00 20 00 43 00 6F 00 6E 00 74 00 72 00 6F 00 y. .C.o.n.t.r.o. 6C 00 l. ------ String Descriptor 6 ------ bLength : 0x10 (16 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "44100Hz" Data (HexDump) : 10 03 34 00 34 00 31 00 30 00 30 00 48 00 7A 00 ..4.4.1.0.0.H.z. ------ String Descriptor 7 ------ bLength : 0x10 (16 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "44100Hz" Data (HexDump) : 10 03 34 00 34 00 31 00 30 00 30 00 48 00 7A 00 ..4.4.1.0.0.H.z. ------ String Descriptor 8 ------ bLength : 0x12 (18 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "USBH Out" Data (HexDump) : 12 03 55 00 53 00 42 00 48 00 20 00 4F 00 75 00 ..U.S.B.H. .O.u. 74 00 t. ------ String Descriptor 9 ------ bLength : 0x12 (18 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "USBD Out" Data (HexDump) : 12 03 55 00 53 00 42 00 44 00 20 00 4F 00 75 00 ..U.S.B.D. .O.u. 74 00 t. ------ String Descriptor 10 ------ bLength : 0x10 (16 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "USBH In" Data (HexDump) : 10 03 55 00 53 00 42 00 48 00 20 00 49 00 6E 00 ..U.S.B.H. .I.n. ------ String Descriptor 11 ------ bLength : 0x10 (16 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "USBD In" Data (HexDump) : 10 03 55 00 53 00 42 00 44 00 20 00 49 00 6E 00 ..U.S.B.D. .I.n. ------ String Descriptor 12 ------ bLength : 0x1E (30 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Capture Volume" Data (HexDump) : 1E 03 43 00 61 00 70 00 74 00 75 00 72 00 65 00 ..C.a.p.t.u.r.e. 20 00 56 00 6F 00 6C 00 75 00 6D 00 65 00 .V.o.l.u.m.e. ------ String Descriptor 13 ------ bLength : 0x20 (32 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Playback Volume" Data (HexDump) : 20 03 50 00 6C 00 61 00 79 00 62 00 61 00 63 00 .P.l.a.y.b.a.c. 6B 00 20 00 56 00 6F 00 6C 00 75 00 6D 00 65 00 k. .V.o.l.u.m.e. ------ String Descriptor 14 ------ bLength : 0x24 (36 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Playback Inactive" Data (HexDump) : 24 03 50 00 6C 00 61 00 79 00 62 00 61 00 63 00 $.P.l.a.y.b.a.c. 6B 00 20 00 49 00 6E 00 61 00 63 00 74 00 69 00 k. .I.n.a.c.t.i. 76 00 65 00 v.e. ------ String Descriptor 15 ------ bLength : 0x20 (32 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Playback Active" Data (HexDump) : 20 03 50 00 6C 00 61 00 79 00 62 00 61 00 63 00 .P.l.a.y.b.a.c. 6B 00 20 00 41 00 63 00 74 00 69 00 76 00 65 00 k. .A.c.t.i.v.e. ------ String Descriptor 16 ------ bLength : 0x22 (34 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Capture Inactive" Data (HexDump) : 22 03 43 00 61 00 70 00 74 00 75 00 72 00 65 00 ".C.a.p.t.u.r.e. 20 00 49 00 6E 00 61 00 63 00 74 00 69 00 76 00 .I.n.a.c.t.i.v. 65 00 e. ------ String Descriptor 17 ------ bLength : 0x1E (30 bytes) bDescriptorType : 0x03 (String Descriptor) Language 0x0409 : "Capture Active" Data (HexDump) : 1E 03 43 00 61 00 70 00 74 00 75 00 72 00 65 00 ..C.a.p.t.u.r.e. 20 00 41 00 63 00 74 00 69 00 76 00 65 00 .A.c.t.i.v.e.

@JFreyberger
Copy link
Author

After several tests I found out that windows seems to be a little picky about the wTerminalType. After I changed these from UAC_OUTPUT_TERMINAL_UNDEFINED to UAC_OUTPUT_TERMINAL_SPEAKER and from UAC_INPUT_TERMINAL_UNDEFINED to UAC_INPUT_TERMINAL_MICROPHONE it started to work.

@pelwell
Copy link
Contributor

pelwell commented Sep 24, 2021

drivers/usb/gadget/function/f_uac2.c, which I think you are referring to, is an unmodified upstream file. If you think there is a problem with it then you'll have to report it to the maintainers.

fengguang pushed a commit to 0day-ci/linux that referenced this issue Jan 31, 2022
Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Jan 31, 2022
Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 13, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 13, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 13, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 13, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 13, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 13, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
imaami pushed a commit to imaami/linux that referenced this issue Feb 13, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 14, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Whissi pushed a commit to Whissi/linux-stable that referenced this issue Feb 16, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Whissi pushed a commit to Whissi/linux-stable that referenced this issue Feb 16, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
github-actions bot pushed a commit to sirdarckcat/linux-1 that referenced this issue Feb 16, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 16, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 16, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 16, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this issue Feb 16, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
woodsts pushed a commit to woodsts/linux-stable that referenced this issue Feb 16, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
psndna88 pushed a commit to psndna88/AGNi-xanmod_x86-64 that referenced this issue Feb 20, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
psndna88 pushed a commit to psndna88/AGNi-xanmod_x86-64 that referenced this issue Feb 20, 2022
commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
hygoni pushed a commit to hygoni/linux that referenced this issue Mar 6, 2022
Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
jpuhlman pushed a commit to MontaVista-OpenSourceTechnology/linux-mvista that referenced this issue Mar 15, 2022
Source: Kernel.org
MR: 116433
Type: Integration
Disposition: Backport from git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable linu5.4.y
ChangeID: f297b6109cbe303b3c842a266d87e138a28bdad1
Description:

commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
AlexGhiti pushed a commit to AlexGhiti/riscv-linux that referenced this issue Apr 1, 2022
BugLink: https://bugs.launchpad.net/bugs/1963889

commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
tuxedo-bot pushed a commit to tuxedocomputers/linux that referenced this issue Apr 21, 2022
BugLink: https://bugs.launchpad.net/bugs/1967439

commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
thekubajx29 pushed a commit to thekubajx29/ws-bionic that referenced this issue Apr 25, 2022
BugLink: https://bugs.launchpad.net/bugs/1966118

commit 5432184107cd0013761bdfa6cb6079527ef87b95 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
it-is-a-robot pushed a commit to openeuler-mirror/kernel that referenced this issue May 20, 2022
stable inclusion
from stable-v5.10.101
commit e9f9b877eb0ee6df626ac067ad428fdd689514f3
bugzilla: https://gitee.com/openeuler/kernel/issues/I5669Z

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e9f9b877eb0ee6df626ac067ad428fdd689514f3

--------------------------------

commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Yu Liao <liaoyu15@huawei.com>
Reviewed-by: Wei Li <liwei391@huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
it-is-a-robot pushed a commit to openeuler-mirror/kernel that referenced this issue May 20, 2022
stable inclusion
from stable-v5.10.101
commit e9f9b877eb0ee6df626ac067ad428fdd689514f3
bugzilla: https://gitee.com/openeuler/kernel/issues/I5669Z

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e9f9b877eb0ee6df626ac067ad428fdd689514f3

--------------------------------

commit 5432184 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Yu Liao <liaoyu15@huawei.com>
Reviewed-by: Wei Li <liwei391@huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
Dheeraj3031A pushed a commit to Dheeraj3031A/kernel_oplus_RMX3461 that referenced this issue Jan 31, 2024
commit 5432184107cd0013761bdfa6cb6079527ef87b95 upstream.

Several users have reported that their Win10 does not enumerate UAC2
gadget with the existing wTerminalType set to
UAC_INPUT_TERMINAL_UNDEFINED/UAC_INPUT_TERMINAL_UNDEFINED, e.g.
raspberrypi/linux#4587 (comment).
While the constant is officially defined by the USB terminal types
document, e.g. XMOS firmware for UAC2 (commonly used for Win10) defines
no undefined output terminal type in its usbaudio20.h header.

Therefore wTerminalType of EP-IN is set to
UAC_INPUT_TERMINAL_MICROPHONE and wTerminalType of EP-OUT to
UAC_OUTPUT_TERMINAL_SPEAKER for the UAC2 gadget.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220131071813.7433-1-pavel.hofman@ivitera.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants