linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Johannes Freyberger" <Johannes@Freyberger.de>
To: <ruslan.bilovol@gmail.com>
Cc: <balbi@kernel.org>, <corbet@lwn.net>,
	<gregkh@linuxfoundation.org>, <gschmottlach@gmail.com>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-usb@vger.kernel.org>
Subject: Re: [PATCH 0/8] USB Audio Gadget part 2: Feedback endpoint, Volume/Mute support
Date: Mon, 1 Mar 2021 17:49:16 +0100	[thread overview]
Message-ID: <002f01d70eba$d1b365a0$751a30e0$@Freyberger.de> (raw)

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


             reply	other threads:[~2021-03-01 16:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-01 16:49 Johannes Freyberger [this message]
2021-03-01 21:34 ` [PATCH 0/8] USB Audio Gadget part 2: Feedback endpoint, Volume/Mute support Ruslan Bilovol
2021-03-01 22:11   ` AW: " Johannes Freyberger
  -- strict thread matches above, loose matches on Subject: below --
2021-03-01 13:05 Ruslan Bilovol
2021-03-23 11:56 ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='002f01d70eba$d1b365a0$751a30e0$@Freyberger.de' \
    --to=johannes@freyberger.de \
    --cc=balbi@kernel.org \
    --cc=corbet@lwn.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=gschmottlach@gmail.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=ruslan.bilovol@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).