1. 18 May, 2012 5 commits
    • Sarah Sharp's avatar
      USB: Refactor code to set LPM support flag. · d9b2099c
      Sarah Sharp authored
      Refactor the code that sets the usb_device flag to indicate the device
      support link power management (lpm_capable).  The current code sets
      lpm_capable unconditionally if the USB devices have a USB 2.0 Extended
      Capabilities Descriptor.  USB 3.0 devices can also have that descriptor,
      but the xHCI driver code that uses lpm_capable will not run the USB 2.0
      LPM test for devices under the USB 3.0 roothub.  Therefore, it's fine
      only set lpm_capable for high speed devices in this refactoring.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      d9b2099c
    • Sarah Sharp's avatar
      USB: Make sure to fetch the BOS desc for roothubs. · 448b6eb1
      Sarah Sharp authored
      The BOS descriptor is normally fetched and stored in the usb_device->bos
      during enumeration.  USB 3.0 roothubs don't undergo enumeration, but we
      need them to have a BOS descriptor, since each xHCI host has a different
      U1 and U2 exit latency.  Make sure to fetch the BOS descriptor for USB
      3.0 roothubs.  It will be freed when the roothub usb_device is released.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: Andiry Xu <andiry.xu@amd.com>
      448b6eb1
    • Sarah Sharp's avatar
      xhci: Add roothub code to set U1/U2 timeouts. · 797b0ca5
      Sarah Sharp authored
      USB 3.0 hubs can be put into a mode where the hub can automatically
      request that the link go into a deeper link power state after the link
      has been idle for a specified amount of time.  Each of the new USB 3.0
      link states (U1 and U2) have their own timeout that can be programmed
      per port.
      
      Change the xHCI roothub emulation code to handle the request to set the
      U1 and U2 timeouts.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      797b0ca5
    • Sarah Sharp's avatar
      xhci: Reset reserved command ring TRBs on cleanup. · 33b2831a
      Sarah Sharp authored
      When the xHCI driver needs to clean up memory (perhaps due to a failed
      register restore on resume from S3 or resume from S4), it needs to reset
      the number of reserved TRBs on the command ring to zero.  Otherwise,
      several resume cycles (about 30) with a UAS device attached will
      continually increment the number of reserved TRBs, until all command
      submissions fail because there isn't enough room on the command ring.
      
      This patch should be backported to kernels as old as 2.6.32,
      that contain the commit 913a8a34
      "USB: xhci: Change how xHCI commands are handled."
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@vger.kernel.org
      33b2831a
    • Oliver Neukum's avatar
      USB: fix resource leak in xhci power loss path · f8a9e72d
      Oliver Neukum authored
      Some more data structures must be freed and counters
      reset if an XHCI controller has lost power. The failure
      to do so renders some chips inoperative after a certain number
      of S4 cycles.
      
      This patch should be backported to kernels as old as 3.2,
      that contain the commits c29eea62
      "xhci: Implement HS/FS/LS bandwidth checking." and
      commit 839c817c
      "xhci: Implement HS/FS/LS bandwidth checking."
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.de>
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@vger.kernel.org
      f8a9e72d
  2. 17 May, 2012 6 commits
  3. 16 May, 2012 12 commits
  4. 15 May, 2012 17 commits