[RFC] usb_scan_device() only considers first interface
Heinrich Schuchardt
xypron.glpk at gmx.de
Mon Apr 5 01:04:07 CEST 2021
Hello Marek,
I have a USB HID device with two interfaces:
2: Human Interface, USB Revision 1.0
- WCH.CN 7
Serial To HID 12345678
- Class: (from Interface) Human Interface
- PacketSize: 8 Configurations: 1
- Vendor: 0x1a86 Product 0xe026 Version 55.0
Configuration: 1
- Interfaces: 2 Bus Powered Remote Wakeup 100mA
Interface: 0
- Alternate Setting 0, Endpoints: 2
- Class Human Interface, Subclass: None
- Endpoint 2 In Interrupt MaxPacket 8 Interval 1ms
- Endpoint 2 Out Interrupt MaxPacket 8 Interval 1ms
Interface: 1
- Alternate Setting 0, Endpoints: 1
- Class Human Interface, Subclass: Boot Keyboard
- Endpoint 1 In Interrupt MaxPacket 8 Interval 1ms
Linux correctly detects the HID keyboard and receives key strokes.
U-Boot's usb_scan_device() does not detect that this is a boot keyboard
because it only tries to match interface 0 and not interface 1.
Shouldn't it iterate over all interfaces to find a matching driver?
Further work in common/usb_kbd.c will be needed to actually use interface 1.
Best regards
Heinrich
More information about the U-Boot
mailing list