mbox series

[RFC,v3,0/6] Improve USB Keyboard support for rpi3/rpi4

Message ID 20200701030239.179114-1-jason.wessel@windriver.com
Headers show
Series Improve USB Keyboard support for rpi3/rpi4 | expand

Message

Jason Wessel July 1, 2020, 3:02 a.m. UTC
At this point all the USB keyboards I had laying around now work
and I can USB boot the rpi3 and rpi4, so perhaps this series can
move beyond the RFC stage.  More testing will occur over the next
week or so. 

v3:
  - Add in patch 6
  - Finally got the GearHead keyboard + mouse composite USB device working

v2: 
  - Minor cleanups to patches 1-3 based on prior review
  - Patch 4 & 5 are new to fix various xhchi crashes
    while having additional devices plugged in along with
    booting off the usb port.  The nonblocking mode turned
    out to be somewhat complex.

v1:

For testing this patch series, I did apply the USB patches for the
rpi4 board which had not been merged yet.  Once the rpi4 USB changes
are eventually merged the keyboard delay issues will show up and I
imagine this issue is already a problem for other boards. This series
does not depend on rpi4 patches as the changes are in the core USB
functions.

I performed tests with a number of usb modules attached including 
storage, ethernet, serial, wifi, keyboard, and
mouse without any issues.

----------------------------------------------------------------
Jason Wessel (6):
      xhci: Add polling support for USB keyboards
      usb_kbd: Do not fail the keyboard if it does not have an interrupt pending
      common/usb.c: Work around keyboard reporting "USB device not accepting new address"
      xhci-ring.c: Add the poll_pend state to properly abort transactions
      xhci-ring: Fix crash when issuing "usb reset"
      usb.c: Add a retry in the usb_prepare_device()

 common/usb.c                 |  18 +++++++++---
 common/usb_kbd.c             |   4 ++-
 drivers/usb/host/xhci-ring.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
 drivers/usb/host/xhci.c      |  11 ++++----
 include/usb/xhci.h           |   5 ++--
 5 files changed, 122 insertions(+), 39 deletions(-)