[U-Boot] [PATCH v2] usb: kbd: Fix key repeat not always using

Marek Vasut marex at denx.de
Tue May 19 19:56:22 CEST 2015


On Wednesday, May 13, 2015 at 02:47:51 PM, Hans de Goede wrote:
> The usb-kbd key repeat code assumes that reports get repeated every 40 ms,
> this is never true when using CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP, and
> does not always works for CONFIG_SYS_USB_EVENT_POLL and
> CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE since not all usb keyboards honor
> the usb_set_idle() command.
> 
> For CONFIG_SYS_USB_EVENT_POLL we must use usb_set_idle() since we do a
> blocking wait for the hid report, so if we do not tell the keyboard to send
> a hid report every 40ms even if nothing changes then we will block u-boot
> for 1s (the default u-boot usb interrupt packet timeout). Note that in this
> case on keyboards which do not support usb_set_idle() we loose and we
> actually get 1s latencies on other u-boot activities.
> 
> For the other poll-methods this commit stops using usb_set_idle() and
> instead repeats the last received hid-report every 40 ms as long as no new
> hid-report is received. This fixes key-repeat not working at all with
> CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP and fixes it not working with
> keyboards which do not implement usb_set_idle() when using
> CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE.
> 
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>

Hi, this broke a couple of machines, quoting Tom. I'm dropping it for now.

NAK.  This introduces various breakage:
12: Merge branch 'master' of git://git.denx.de/u-boot-usb
       arm:  +   VCMA9 beagle_x15 at91rm9200ek_ram peach-pi snow smdk5250 
am43xx_evm dr
a7xx_evm_uart3 k2l_evm am43xx_evm_qspiboot smdk5420 dra7xx_evm smdk2410 
at91rm9200ek dr
a7xx_evm_qspiboot k2hk_evm k2e_evm peach-pit
   powerpc:  +   PIP405 MIP405
The powerpc board breakage is the same as some of the ARM ones so fix it
once and they'll come along.

Best regards,
Marek Vasut


More information about the U-Boot mailing list