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 am not entirely certain about the change to the common/usb.c which
is why this is an RFC. I am not sure if there would be other side
effects to other USB drivers. I did test with a number of usb modules
attached including storage, ethernet, serial, wifi, keyboard, and
mouse without any issues.
----------------------------------------------------------------
Jason Wessel (5):
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"
common/usb.c | 9 +++---
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, 113 insertions(+), 39 deletions(-)