RE: [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]

 



> -----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


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

  Powered by Linux