[PATCH v3] console: usb: kbd: Limit poll frequency to improve performance

Filip Žaludek filip.zaludek at oracle.com
Wed Jan 18 17:01:12 CET 2023



Hi Michal,

  thanks for testing! Do you consider keyboard as working once it is detected without
'usb_kbd usb_kbd: Timeout poll on interrupt endpoint', or judging from subsequent
typing? Note that issue is reproducible only in about 20% of reboots.
For me I can always enter 'U-Boot>' shell, but then keyboard usually does not work.
And yes, resetting the usb controller with pressing a key afterwards will
finally break the keyboard. ('usb reset' typed from keyboard)
If you are Prague located I am ready to demonstrate what I am talking about.

  Simon's keyboard detection is somewhat interfered by 'SanDisk USB Extreme Pro' detection,
printed complaints but keyboard still works..
'usb_kbd usb_kbd: Timeout poll on interrupt endpoint' and 'Failed to get keyboard state from device 0c40:8000'
Btw. why from 0c40:8000 (ELMCU 2.4GHz receiver) when wired keyboard is 046d:c31c (Logitech Keyboard K120)?

  What is supposed scenario for RPi3/u-boot/grub usb keyboard equipped users wanting to boot non-default?
Enter 'U-Boot>' shell to detect keyboard; type boot; select desired grub entry..?


Reverting either from the two makes it non issue for me:
'dwc2: use the nonblock argument in submit_int_msg'
commit 9dcab2c4d2cb50ab1864c818b82a72393c160236

'console: usb: kbd: Limit poll frequency to improve performance'
commit 96991e652f541323a03c5b7e075d54a117091618


What will be attitude on this, should we try to bring workaround preserving both patches?



Regards,
Filip






On 1/17/23 19:46, Michal Suchánek wrote:
> Hello,
> 
> On Sat, Dec 17, 2022 at 01:49:47PM +0100, Filip Žaludek wrote:
>>
>>
>> Hello,
>>   change seems to be unfriendly to RPi3B+, it allows to enter 'U-Boot>' shell but usb keyboard
>> does not respond. Keyboard is detected by 'usb info' in v2023.01-rc3, not in v2022.10.
>> When reverted, usb keyboard works as expected.
>>
>> Anybody sitting front of RPi3B+ care to confirm?
> 
> For me an USB keyboard connected to a Raspberry Pi 3B+ is only detected
> when something is typed during the probe.
> 
> The message
> 
> usb_kbd usb_kbd: Timeout poll on interrupt endpoint
> 
> is a sign of nothing typed on the keyboard and then it does not work.
> 
> It is limitation of the dwc2 hardware with hardwired USB hub.
> 
> Same on both v2022.10 & v2023.01 rpiarm64 and rpi_3 configs.
> 
> Thanks
> 
> Michal
> 
>>
>>
>> Regards,
>> Filip
>>
>>
>>
>>
>>
>> Patch:
>> https://urldefense.com/v3/__https://github.com/u-boot/u-boot/commit/96991e652f541323a03c5b7e075d54a117091618__;!!ACWV5N9M2RV99hQ!J3bR4ePIrYCcbqK8Zd5qG9y4yP6W_sNqMV0BhlIJqrwImk8KRkbMK8K5tzXHZU3BZ3ai6k7v25WDUCtgOBMVk8o$
>>
>>
>> Debug:
>> USB KBD: found interrupt EP: 0x81
>> USB KBD: set boot protocol
>> dwc2_submit_control_msg: dev='usb at 7e980000', udev=000000003af4be00,
>> udev->dev='usb_kbd', portnr=3
>> USB KBD: set idle interval...
>> dwc2_submit_control_msg: dev='usb at 7e980000', udev=000000003af4be00,
>> udev->dev='usb_kbd', portnr=3
>> USB KBD: enable interrupt pipe...
>> usb_kbd usb_kbd: Timeout poll on interrupt endpoint
>>
>>
>> Tested:
>> SW: v2022.10 & v2023.01-rc3 compiled from sources as 'rpiarm64'
>> HW: USB 1.1 and 2.0 keyboards, RPi3B+
>> JeOS:
>> https://urldefense.com/v3/__http://download.opensuse.org/ports/aarch64/tumbleweed/appliances/openSUSE-Tumbleweed-ARM-JeOS-raspberrypi.aarch64-2022.10.11-Snapshot20221112.raw.xz__;!!ACWV5N9M2RV99hQ!J3bR4ePIrYCcbqK8Zd5qG9y4yP6W_sNqMV0BhlIJqrwImk8KRkbMK8K5tzXHZU3BZ3ai6k7v25WDUCtgKPUw0V8$
>> (u-boot-rpiarm64-2022.10-1.1.aarch64)
>>
>>


More information about the U-Boot mailing list