> -----Original Message----- > From: Sarah Sharp [mailto:sarah.a.sharp@xxxxxxxxxxxxxxx] > Sent: Friday, December 31, 2010 7:23 AM > To: linux-usb@xxxxxxxxxxxxxxx > Cc: John Youn; Dwight Schauer; Alan Stern; Xu, Andiry > Subject: [RFC v2 00/22] USB 3.0 hub support & xHCI split roothub for > 2.6.38 > > 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. > Thanks for the patchset. I've run some basic S3 tests on my platform with CONFIG_USB_SUSPEND set. Here is the result: USB2.0 HDD connected to USB2.0 split root hub: suspend and resume OK USB3.0 HDD connected to USB3.0 split root hub: suspend and resume OK USB2.0 HDD connected to USB2.0 hub in USB3.0 external hub: suspend and resume OK USB3.0 HDD connected to USB3.0 hub in USB3.0 external hub: suspend failed. set_port_feature(hub->hdev, port1, USB_PORT_FEAT_SUSPEND) in usb_port_suspend() returned with error -32. There is a Stall Error in xhci driver. Thanks, Andiry > 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