Re: [PATCH 0/8] USB Audio Gadget part 2: Feedback endpoint, Volume/Mute support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ruslan,

thanks for all your efforts to make the USB Audio Gadget work in Win10 using
UAC2. Meanwhile I managed to apply and compile your previous modifications
and now my Raspberry PI shows up in the Windows Device Manager as a valid
UAC2 audio device. Unfortunately it still doesn't work to transfer any audio
as it seems the audio endpoints or the topology is not working. I checked it
with some tools and found one providing some information on the USB part
(it's called UVCview.exe and is part of the Windows Driver Kit). Here's the
output which I hope can give some hints on the problems still existing in
this driver:

          ---===>Device Information<===---
English product name: "Linux USB Audio Gadget"

ConnectionStatus:                  
Current Config Value:              0x01  -> Device Bus Speed: High
Device Address:                    0x0F
Open Pipes:                           0
*!*ERROR:  No open pipes!

          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0xEF  -> This is a Multi-interface
Function Code Device
bDeviceSubClass:                   0x02  -> This is the Common Class Sub
Class
bDeviceProtocol:                   0x01  -> This is the Interface
Association Descriptor protocol
bMaxPacketSize0:                   0x40 = (64) Bytes
idVendor:                        0x1D6B = The Linux Foundation
idProduct:                       0x0101
bcdDevice:                       0x0510
iManufacturer:                     0x01
     English (United States)  "Linux 5.10.17-v7l-R3LAY_TEST+ with
fe980000.usb"
iProduct:                          0x02
     English (United States)  "Linux USB Audio Gadget"
iSerialNumber:                     0x00
bNumConfigurations:                0x01

          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x00E2  -> Validated
bNumInterfaces:                    0x03
bConfigurationValue:               0x01
iConfiguration:                    0x00
bmAttributes:                      0xC0  -> Bus Powered
MaxPower:                          0x01 =   2 mA

          ===>IAD Descriptor<===
bLength:                           0x08
bDescriptorType:                   0x0B
bFirstInterface:                   0x00
bInterfaceCount:                   0x03
bFunctionClass:                    0x01  -> Audio Interface Class
bFunctionSubClass:                 0x00
*!*CAUTION:    This appears to be an invalid bFunctionSubClass
bFunctionProtocol:                 0x20
iFunction:                         0x04
     English (United States)  "R3lay PI"

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x01  -> Audio Control Interface SubClass
bInterfaceProtocol:                0x20
CAUTION:  This may be an invalid bInterfaceProtocol
iInterface:                        0x05
     English (United States)  "Topology Control"

          ===>Audio Control Interface Header Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x24
bDescriptorSubtype:                0x01
bcdADC:                          0x0200
wTotalLength:                    0x5308
bInCollection:                     0x00

          ===>Descriptor Hex Dump<===
bLength:                           0x08
bDescriptorType:                   0x24
08 24 0A 06 01 01 00 06 

          ===>Descriptor Hex Dump<===
bLength:                           0x08
bDescriptorType:                   0x24
08 24 0A 05 01 01 00 07 

          ===>Descriptor Hex Dump<===
bLength:                           0x11
bDescriptorType:                   0x24
11 24 02 01 01 01 00 05 02 03 00 00 00 00 03 00 
08 

          ===>Descriptor Hex Dump<===
bLength:                           0x11
bDescriptorType:                   0x24
11 24 02 02 00 02 00 06 02 03 00 00 00 00 03 00 
09 

          ===>Descriptor Hex Dump<===
bLength:                           0x0C
bDescriptorType:                   0x24
0C 24 03 04 01 01 00 02 06 03 00 0A 

          ===>Descriptor Hex Dump<===
bLength:                           0x0C
bDescriptorType:                   0x24
0C 24 03 03 00 03 00 01 05 03 00 0B 

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x01
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface
SubClass
bInterfaceProtocol:                0x20
CAUTION:  This may be an invalid bInterfaceProtocol
iInterface:                        0x0C
     English (United States)  "Playback Inactive"

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x01
bAlternateSetting:                 0x01
bNumEndpoints:                     0x02
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface
SubClass
bInterfaceProtocol:                0x20
CAUTION:  This may be an invalid bInterfaceProtocol
iInterface:                        0x0D
     English (United States)  "Playback Active"

          ===>Descriptor Hex Dump<===
bLength:                           0x10
bDescriptorType:                   0x24
10 24 01 01 00 01 01 00 00 00 02 03 00 00 00 00 

          ===>Audio Streaming Format Type Descriptor<===
bLength:                           0x06
bDescriptorType:                   0x24
bDescriptorSubtype:                0x02
bFormatType:                       0x01
bNrChannels:                       0x02
bSubframeSize:                     0x10
bBitResolution:                    0x07
bSamFreqType:                      0x05
tSamFreq[1]:                   0x380501 (3671297 Hz)
tSamFreq[2]:                   0x080401 (525313 Hz)
tSamFreq[3]:                   0x000125 (293 Hz)
tSamFreq[4]:                   0x000000 (0 Hz)
tSamFreq[5]:                   0x050700 (329472 Hz)

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x01  -> Direction: OUT - EndpointID: 1
bmAttributes:                      0x05  -> Isochronous Transfer Type
                   Synchronization Type = Asynchronous
Bulk Transfer Type
wMaxPacketSize:                  0x0138 = 1 transactions per microframe,
0x138 max bytes
bInterval:                         0x04

          ===>Descriptor Hex Dump<===
bLength:                           0x08
bDescriptorType:                   0x25
08 25 01 00 00 00 00 00 

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x11  -> Isochronous Transfer Type
                   Synchronization Type = No Synchronization
Bulk Transfer Type
wMaxPacketSize:                  0x0004 = 1 transactions per microframe,
0x04 max bytes
bInterval:                         0x04

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x02
bAlternateSetting:                 0x00
bNumEndpoints:                     0x00
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface
SubClass
bInterfaceProtocol:                0x20
CAUTION:  This may be an invalid bInterfaceProtocol
iInterface:                        0x0E
     English (United States)  "Capture Inactive"

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x02
bAlternateSetting:                 0x01
bNumEndpoints:                     0x01
bInterfaceClass:                   0x01  -> Audio Interface Class
bInterfaceSubClass:                0x02  -> Audio Streaming Interface
SubClass
bInterfaceProtocol:                0x20
CAUTION:  This may be an invalid bInterfaceProtocol
iInterface:                        0x0F
     English (United States)  "Capture Active"

          ===>Descriptor Hex Dump<===
bLength:                           0x10
bDescriptorType:                   0x24
10 24 01 04 00 01 01 00 00 00 02 03 00 00 00 00 

          ===>Audio Streaming Format Type Descriptor<===
bLength:                           0x06
bDescriptorType:                   0x24
bDescriptorSubtype:                0x02
bFormatType:                       0x01
bNrChannels:                       0x02
bSubframeSize:                     0x10
bBitResolution:                    0x07
bSamFreqType:                      0x05
tSamFreq[1]:                   0xC40582 (12846466 Hz)
tSamFreq[2]:                   0x080400 (525312 Hz)
tSamFreq[3]:                   0x000125 (293 Hz)
tSamFreq[4]:                   0x000000 (0 Hz)
tSamFreq[5]:                   0x000000 (0 Hz)

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x82  -> Direction: IN - EndpointID: 2
bmAttributes:                      0x05  -> Isochronous Transfer Type
                   Synchronization Type = Asynchronous
Bulk Transfer Type
wMaxPacketSize:                  0x00C4 = 1 transactions per microframe,
0xC4 max bytes
bInterval:                         0x04

          ===>Descriptor Hex Dump<===
bLength:                           0x08
bDescriptorType:                   0x25
08 25 01 00 00 00 00 00




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux