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