Re: Modifying USB Audio gadget driver

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

 



Great! That fixes it. Thanks.

Windows is not able to install the driver though. These are the USB
descriptors that I see from the host-side:

Device Descriptor:
bcdUSB:             0x0200
bDeviceClass:         0x00
bDeviceSubClass:      0x00
bDeviceProtocol:      0x00
bMaxPacketSize0:      0x40 (64)
idVendor:           0x1D6B
idProduct:          0x0101
bcdDevice:          0x0316
iManufacturer:        0x01
0x0409: "Linux 3.2.0 with musb-hdrc"
iProduct:             0x02
0x0409: "Linux USB Audio Gadget"
iSerialNumber:        0x00
bNumConfigurations:   0x01

ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed:     High
Device Address:       0x1B
Open Pipes:              0

Configuration Descriptor:
wTotalLength:       0x0095
bNumInterfaces:       0x03
bConfigurationValue:  0x01
iConfiguration:       0x00
bmAttributes:         0xC0 (Bus Powered Self Powered )
MaxPower:             0x01 (2 Ma)

Interface Descriptor:
bInterfaceNumber:     0x00
bAlternateSetting:    0x00
bNumEndpoints:        0x00
bInterfaceClass:      0x01 (Audio)
bInterfaceSubClass:   0x01 (Audio Control)
bInterfaceProtocol:   0x00
iInterface:           0x00

Audio Control Interface Header Descriptor:
bLength:              0x0A
bDescriptorType:      0x24
bDescriptorSubtype:   0x01
bcdADC:             0x0100
wTotalLength:       0x0028
bInCollection:        0x02
baInterfaceNr[1]:     0x01
baInterfaceNr[2]:     0x02

Audio Control Input Terminal Descriptor:
bLength:              0x0C
bDescriptorType:      0x24
bDescriptorSubtype:   0x02
bTerminalID:          0x02
wTerminalType:      0x0201 (Microphone)
bAssocTerminal:       0x00
bNrChannels:          0x02
wChannelConfig:     0x0003
iChannelNames:        0x00
iTerminal:            0x07

Audio Control Output Terminal Descriptor:
bLength:              0x09
bDescriptorType:      0x24
bDescriptorSubtype:   0x03
bTerminalID:          0x01
wTerminalType:      0x0301 (Speaker)
bAssocTerminal:       0x03
bSoruceID:            0x03
iTerminal:            0x09

Interface Descriptor:
bInterfaceNumber:     0x01
bAlternateSetting:    0x00
bNumEndpoints:        0x00
bInterfaceClass:      0x01 (Audio)
bInterfaceSubClass:   0x02 (Audio Streaming)
bInterfaceProtocol:   0x00
iInterface:           0x0B
0x0409: "Playback Inactive"

Interface Descriptor:
bInterfaceNumber:     0x01
bAlternateSetting:    0x01
bNumEndpoints:        0x01
bInterfaceClass:      0x01 (Audio)
bInterfaceSubClass:   0x02 (Audio Streaming)
bInterfaceProtocol:   0x00
iInterface:           0x0C
0x0409: "Playback Active"

Audio Streaming Class Specific Interface Descriptor:
bLength:              0x07
bDescriptorType:      0x24
bDescriptorSubtype:   0x01
bTerminalLink:        0x01
bDelay:               0x01
wFormatTag:         0x0001 (PCM)

Audio Streaming Format Type Descriptor:
bLength:              0x0B
bDescriptorType:      0x24
bDescriptorSubtype:   0x02
bFormatType:          0x01
bNrChannels:          0x00
bSubframeSize:        0x02
bBitResolution:       0x10
bSamFreqType:         0x01
tSamFreq[1]:      0x00BB80 (48000 Hz)

Endpoint Descriptor:
bEndpointAddress:     0x01  OUT
Transfer Type: Isochronous
wMaxPacketSize:     0x00C8 (200)
bInterval:            0x04

Audio Streaming Class Specific Audio Data Endpoint Descriptor:
bLength:              0x07
bDescriptorType:      0x25
bDescriptorSubtype:   0x01
bmAttributes:         0x00
bLockDelayUnits:      0x00
wLockDelay:         0x0000

Interface Descriptor:
bInterfaceNumber:     0x02
bAlternateSetting:    0x00
bNumEndpoints:        0x00
bInterfaceClass:      0x01 (Audio)
bInterfaceSubClass:   0x02 (Audio Streaming)
bInterfaceProtocol:   0x00
iInterface:           0x0D
0x0409: "Capture Inactive"

Interface Descriptor:
bInterfaceNumber:     0x02
bAlternateSetting:    0x01
bNumEndpoints:        0x01
bInterfaceClass:      0x01 (Audio)
bInterfaceSubClass:   0x02 (Audio Streaming)
bInterfaceProtocol:   0x00
iInterface:           0x0E
0x0409: "Capture Active"

Audio Streaming Class Specific Interface Descriptor:
bLength:              0x07
bDescriptorType:      0x24
bDescriptorSubtype:   0x01
bTerminalLink:        0x02
bDelay:               0x01
wFormatTag:         0x0001 (PCM)

Audio Streaming Format Type Descriptor:
bLength:              0x0B
bDescriptorType:      0x24
bDescriptorSubtype:   0x02
bFormatType:          0x01
bNrChannels:          0x00
bSubframeSize:        0x02
bBitResolution:       0x10
bSamFreqType:         0x01
tSamFreq[1]:      0x00BB80 (48000 Hz)

Endpoint Descriptor:
bEndpointAddress:     0x81  IN
Transfer Type: Isochronous
wMaxPacketSize:     0x00C8 (200)
bInterval:            0x04

Audio Streaming Class Specific Audio Data Endpoint Descriptor:
bLength:              0x07
bDescriptorType:      0x25
bDescriptorSubtype:   0x01
bmAttributes:         0x00
bLockDelayUnits:      0x00
wLockDelay:         0x0000

What could I possibly be missing?

On Wed, Dec 3, 2014 at 4:08 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Wed, 3 Dec 2014, Priya S wrote:
>
>> Thank you.
>>
>> I've created 2 endpoints. I've defined the endpoint descriptors in the
>> driver. The IN bEndpointAddress = 0x80 and the OUT endpoint has
>> bEndpointAddress = 0x00. These values are being modified in
>> epautoconf.c to 0x81 and 0x01.
>>
>> On the Windows host though, I still see that the gadget's endpoint
>> addresses are 0x80 and 0x00.
>>
>> Where else could these values be overwritten?
>
> They aren't getting overwritten -- in fact, they aren't getting to the
> host at all!
>
> The values 0x80 and 0x00 refer to endpoint 0, which is always present
> on every USB device.  You're trying to create endpoints 1-IN and 1-OUT,
> which should have addresses 0x81 and 0x01.
>
> Alan Stern
>
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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

  Powered by Linux