On Fri, Nov 22, 2013 at 04:47:10PM +0530, Bhavik Kothari wrote: > Hi, > > I have been working on USB3.0 device driver and wanted to support > USB3.0 HID (keyboard). > > To support HID Keyboard device, I have made below Interface descriptor: > > Interface Descriptor with alternate settings 0: > > bLength = 0x9; > bDescriptorType = 0x4 (USB_DT_INTERFACE); > > bInterfaceNumber = 0x0; > bAlternateSetting = 0x0; > bNumEndpoints = 0x0; > bInterfaceClass = (0x3) USB_CLASS_HID; > bInterfaceSubClass = 0x0; > bInterfaceProtocol = 0x1 (keyboard); > iInterface = 0x0; > > Interface Descriptor with alternate settings 1 along with Super > speed endpoints: > > bLength = 0x9; > bDescriptorType = 0x4 (USB_DT_INTERFACE); > > bInterfaceNumber = 0x0; > bAlternateSetting = 0x1; > bNumEndpoints = 0x2; (One for EP IN Interrupt and other for > EP OUT Interrupt) > bInterfaceClass = (0x3) USB_CLASS_HID; > bInterfaceSubClass = 0x0; > bInterfaceProtocol = 0x1 (keyboard); > iInterface = 0x0; > > However, when xHCI does set_config at that time Interface zero and > alternate setting is zero, it never does set_interface with > interface zero and alternate setting one, hence host does not detect > HID device. > > So, would you please assist me that what I have to do, so host does > set interface with alternate setting one. It's up to a userspace program to switch to the alternate interface, right? The OS can't just "know" to do that without some type of interaction from you. Have you run your device under the USB verification test suite for Windows? I suggest you do that first, to ensure the firmware is working properly before worrying about how Linux is handling the device. thanks, greg k-h -- 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