Ludwig Nussel wrote:
> Stefan Brüns wrote:
>> On Freitag, 4. September 2020 17:43:37 CEST Ludwig Nussel wrote:
>>> [...]
>>> usb_kbd_probe_dev() USB KBD: found set idle...
>>> usb_control_msg() usb_control_msg: request: 0xA, requesttype: 0x21,
>>> value 0xA00 index 0x0 length 0x0
>>> usb_kbd_probe_dev() USB KBD: enable interrupt pipe...
>>> Timeout poll on interrupt endpoint
>>> Failed to get keyboard state from device 1d6b:0104
>>
>> requesttype: 0x21 - Class specific request to interface
>> request: 0xA - Set_Idle
>> value: 0xA00 - 0xA * 4ms = 40ms report interval during idle, 0x0:
> applies to
>> all reports
>>
>> So according to the request, the OTG device should send report at regular
>> intervals even without state changes, but the keyboard poll code times
> out.
>
> The discussion also reminded me of a USB-PS2 adapter that also doesn't
> work in u-boot (bug#1167675). With your patch and LOG_DEBUG in
> common/usb{_kbd,}.c:¹
>
> usb_kbd_probe_dev() USB KBD: found interrupt EP: 0x81
> usb_kbd_probe_dev() USB KBD: set boot protocol
> usb_control_msg() usb_control_msg: request: 0xB, requesttype: 0x21,
> value 0x0 index 0x0 length 0x0
> usb_kbd_probe_dev() USB KBD: set idle interval...
> usb_control_msg() usb_control_msg: request: 0xA, requesttype: 0x21,
> value 0xA00 index 0x0 length 0x0
> usb_kbd_probe_dev() USB KBD: enable interrupt pipe...
> Timeout poll on interrupt endpoint
> Failed to get keyboard state from device 04d9:1400
>
> If that is the same problem then at least it's not Linux gadget code
> specific but also affects actual hardware devices.
lsusb -v for reference. So this one also only has one interface for the
keyboard with the subclass set. In contrast to the working keyboards
that have one interface with the boot flag and one without.
Bus 001 Device 004: ID 04d9:1400 Holtek Semiconductor, Inc. PS/2
keyboard + mouse controller
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x04d9 Holtek Semiconductor, Inc.
idProduct 0x1400 PS/2 keyboard + mouse controller
bcdDevice 1.43
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 59
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 65
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 157
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0000
(Bus Powered)
cu
Ludwig
--
(o_ Ludwig Nussel
//\
V_/_ http://www.suse.com/
SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer
HRB 36809 (AG Nürnberg)
--
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]