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