[U-Boot] [PATCH 00/14] usb: xhci: Add interrupt transfer support and full speed device support

Bin Meng bmeng.cn at gmail.com
Mon Sep 18 13:40:36 UTC 2017


This adds the missing interrupt transfer support to xHCI driver, so
that devices like USB keyboard that uses interrupt transfer when
CONFIG_SYS_USB_EVENT_POLL is defined can work.

This also adds full speed device support. Unlike low/high/super speed
devices, full speed device may report its endpoint 0 max packet size
as 8/16/32/64. xHCI driver guesses 64 for the first attempt to get the
initial 8 bytes device descriptor, and later adjusts the context for
endpoint 0.

This series also made several updates to xHCI driver to conform with
the spec.

This series is available at u-boot-x86/xhci-working for testing.


Bin Meng (14):
  dm: usb: Fix broken usb_stop()
  dm: usb: Remove no longer needed blk_unbind_all()
  usb: xhci: Don't assume LS/FS devices are always behind a HS hub
  usb: Handle audio extension endpoint descriptor in usb_parse_config()
  usb: xhci: Add interrupt transfer support
  usb: Only get 64 bytes device descriptor for full speed devices
  usb: Read device descriptor after device is addressed for xHCI
  usb: xhci: Fix max packet size for full speed device endpoint 0
  usb: hub: Clear port reset before usb_hub_port_connect_change()
  usb: hub: Clear BH reset status change for a 3.0 hub
  usb: xhci: Honor endpoint's interval
  usb: xhci: Program max burst size for endpoint
  usb: xhci: Set 'Error Count' to 0 for isoch endpoints
  usb: xhci: Set 'Average TRB Length' to 8 for control endpoints

 common/usb.c                  |  45 +++++---
 common/usb_hub.c              |  16 ++-
 drivers/usb/host/usb-uclass.c |  19 +++-
 drivers/usb/host/xhci-mem.c   |  24 +++-
 drivers/usb/host/xhci.c       | 249 ++++++++++++++++++++++++++++++++++++++++--
 drivers/usb/host/xhci.h       |   5 +-
 include/linux/usb/ch9.h       |  20 ++++
 7 files changed, 336 insertions(+), 42 deletions(-)

-- 
2.9.2



More information about the U-Boot mailing list