[PATCH 0/6] Minor USB fixes and xHCI driver

Sebastian Hesselbarth sebastian.hesselbarth at gmail.com
Thu Jul 24 06:28:40 PDT 2014


This patch set adds initial support for xHCI host controllers either
as platform_device or PCI attached device. Compared to EHCI, the
xHCI added even more SW stuff around the host controller interface
we have to deal with. From a topology point-of-view each xHCI HC
represents two virtual Root Hubs, one for USB 3.0 and one for USB
2.0 with TT.

The xHCI driver currently only supports virtual USB 2.0 ports of the
xHCI controller. If a USB 3.0 device is used, it has to be connected
with a USB 2.0 cable, i.e. no SuperSpeed cable. Also, I haven't been
able to test any USB 1.1 devices, yet. Anyway, I plan to have a look
at both USB 1.1 and USB 3.0 but still I consider the driver in a
quite good shape to be released.

I successfully tested the driver on Marvell Armada 370 Mirabox
(PCI xHCI) with USB 2.0 thumbdrives and a USB 3.0 docking station
using above cable workaround.

The first three patches of this series are fixes not directly
related with xHCI driver itself and can be picked independent of
the last two patches.

Patch 1 fixes a missing list_del for removed usb devices, Patch 2
introduces dev_count to separate usb device indexing from detected
number of devices. Patch 3 imports min3() from Linux and makes
EHCI HCD use it.

Patch 4 introduces mentioned xHCI HCD and Root Hub driver, also
it provides platform_device registration for xHCI IP. Patch 5
adds a PCI device driver for xHCI controllers.

Sebastian

Sebastian Hesselbarth (6):
  USB: Fix stale usb devices in usb_device_list
  USB: Count detected USB devices independent of dev_index
  USB: EHCI: use min3 from Linux
  include: import {lower,upper}_32_bits helpers
  USB: host: add xHCI HCD, Hub, and platform driver
  USB: host: add xHCI PCI driver

 drivers/usb/core/usb.c      |    6 +-
 drivers/usb/host/Kconfig    |   18 +
 drivers/usb/host/Makefile   |    2 +
 drivers/usb/host/ehci-hcd.c |   12 +-
 drivers/usb/host/xhci-hcd.c | 1251 +++++++++++++++++++++++++++++++++++++++++
 drivers/usb/host/xhci-hub.c |  699 +++++++++++++++++++++++
 drivers/usb/host/xhci-pci.c |   45 ++
 drivers/usb/host/xhci.h     | 1284 +++++++++++++++++++++++++++++++++++++++++++
 include/common.h            |   16 +
 include/linux/kernel.h      |   18 +
 include/usb/xhci.h          |   33 ++
 11 files changed, 3372 insertions(+), 12 deletions(-)
 create mode 100644 drivers/usb/host/xhci-hcd.c
 create mode 100644 drivers/usb/host/xhci-hub.c
 create mode 100644 drivers/usb/host/xhci-pci.c
 create mode 100644 drivers/usb/host/xhci.h
 create mode 100644 include/usb/xhci.h

---
To: Sascha Hauer <s.hauer at pengutronix.de>
Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Cc: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
Cc: barebox at lists.infradead.org
-- 
2.0.0




More information about the barebox mailing list