[RFC v2 00/22] USB 3.0 hub support & xHCI split roothub for 2.6.38

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is the second version of the patchset to add support for USB 3.0
hubs, and make the xHCI roothub act like an external USB 3.0 hub by
registering two roothubs: a USB 2.0 hub and a USB 3.0 hub.

Most of the code that changes USB core behavior is in patches 1-3 and
6-11.  Patch one is only slightly updated from last time, with the
addition of using DeviceRemovable instead of bitmap.  Patch three is
unchanged from the last RFC.

The real meat of the changes to the USB core are in patches 8-11.  I
would especially like some feedback on patch 11 (USB: Set usb_hcd->state
and flags for shared roothubs).

Changes from the last RFC include:

 - introduce a new host controller flag, HCD_SHARED, to indicate a host
   wants to have the USB core allocate a shared roothub.

 - introduce a new variable in usb_hcd, bcdUSB, that indicates what
   speed the roothub operates at.  This originally mirrors
   usb_hcd->driver->flags & HCD_MASK, but this field is writable, and
   can be changed after the second roothub is allocated.

 - introduce a new variable in usb_hcd, primary_hcd, that indicates
   which host controller is the primary HCD.  The primary HCD is the
   roothub that is allocated first.

 - Support for bus and PCI suspend of shared roothubs.

 - Some removal of the translation of USB 3.0 port status into USB 2.0
   port status.  I was able to get rid of USB_PORT_STAT_SUPER_SPEED, but
   I haven't had time to look at getting rid of the port power
   translation.  There isn't any other translations in the core.

 - Disabling USB 3.0 hub auto-suspend, since the mechanisms to do device
   suspend are slightly different for USB 3.0 devices, and we don't have
   support for that.

The patchset is stable, and everything seems to work just as well as it
did before the xHCI roothub was split (with the bonus of USB 3.0 hub
support, of course).  Andiry, I would really appreciate it if you could
run this patchset on your machine that keeps the power session active
across suspend.


John Youn (1):
  USB 3.0 Hub Changes

Sarah Sharp (21):
  USB: Clear "warm" port reset change.
  usb: Make USB 3.0 roothub have a SS EP comp descriptor.
  xhci: Always use usb_hcd in URB instead of converting xhci_hcd.
  xhci: Change hcd_priv into a pointer.
  usb: Make usb_hcd_pci_probe labels more descriptive.
  usb: Refactor irq enabling out of usb_add_hcd()
  usb: Change usb_hcd->bandwidth_mutex to a pointer.
  usb: Store bus type in usb_hcd, not in driver flags.
  usb: Make core allocate resources per PCI-device.
  USB: Set usb_hcd->state and flags for shared roothubs.
  xhci: Index with a port array instead of PORTSC addresses.
  xhci: Refactor bus suspend state into a struct.
  xhci: Change xhci_find_slot_id_by_port() API.
  xhci: Register second xHCI roothub.
  xhci: Return a USB 3.0 hub descriptor for USB3 roothub.
  xhci: Limit roothub ports to 15 USB3 & 31 USB2 ports.
  xhci: Make roothub functions deal with device removal.
  xhci: Fix re-init on power loss after resume.
  xhci: Fixes for suspend/resume of shared HCDs.
  USB: Remove bogus USB_PORT_STAT_SUPER_SPEED symbol.
  usb: Disable auto-suspend for USB 3.0 hubs.

 drivers/staging/usbip/vhci_hcd.c |    4 +-
 drivers/usb/core/hcd-pci.c       |   93 ++++++++--
 drivers/usb/core/hcd.c           |  181 ++++++++++++++-----
 drivers/usb/core/hub.c           |  131 ++++++++++----
 drivers/usb/core/message.c       |   22 ++--
 drivers/usb/gadget/dummy_hcd.c   |    4 +-
 drivers/usb/host/ehci-hub.c      |    4 +-
 drivers/usb/host/imx21-hcd.c     |    4 +-
 drivers/usb/host/isp116x-hcd.c   |    4 +-
 drivers/usb/host/isp1362-hcd.c   |    4 +-
 drivers/usb/host/isp1760-hcd.c   |    4 +-
 drivers/usb/host/ohci-hub.c      |   11 +-
 drivers/usb/host/oxu210hp-hcd.c  |    4 +-
 drivers/usb/host/r8a66597-hcd.c  |    5 +-
 drivers/usb/host/sl811-hcd.c     |    4 +-
 drivers/usb/host/u132-hcd.c      |   11 +-
 drivers/usb/host/xhci-hub.c      |  363 +++++++++++++++++++++++++++-----------
 drivers/usb/host/xhci-mem.c      |   88 +++++++++-
 drivers/usb/host/xhci-pci.c      |   54 +++++-
 drivers/usb/host/xhci-ring.c     |  112 ++++++++++--
 drivers/usb/host/xhci.c          |  107 +++++++++---
 drivers/usb/host/xhci.h          |   37 +++--
 drivers/usb/musb/musb_virthub.c  |    4 +-
 drivers/usb/wusbcore/rh.c        |    4 +-
 include/linux/usb/ch11.h         |   42 ++++-
 include/linux/usb/hcd.h          |   12 ++-
 26 files changed, 997 insertions(+), 316 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux