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

Simon Glass sjg at chromium.org
Wed Feb 8 19:28:20 CET 2023


Hi Filip,

On Wed, 18 Jan 2023 at 09:03, Filip Žaludek <filip.zaludek at oracle.com> wrote:
>
>
>
> 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?

(please try to avoid top-posting)

You can use a USB quirk to handle this.

Marek do you have any thoughts here?

Regards,
Simon



>
>
>
> 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