1. 18 May, 2012 2 commits
    • 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 18 commits
  5. 14 May, 2012 2 commits
    • Alan Stern's avatar
      USB: EHCI: work around bug in the Philips ISP1562 controller · 1996e6c5
      Alan Stern authored
      This patch (as1556) works around a bug in the Philips ISP1562 EHCI
      controller.  Although the controller claims to support frame-list
      lengths smaller than the default of 1024 for its periodic schedule, in
      fact smaller values don't work.  A new quirk flag is added to indicate
      when the bug is present, and if it is then the schedule size is left
      at the default value.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1996e6c5
    • Alan Stern's avatar
      USB: EHCI: improve full-speed isochronous scheduling routine · 65b8e5cb
      Alan Stern authored
      This patch (as1555) improves the code ehci-hcd uses while checking the
      periodic schedule for isochronous transfers to full-speed devices.  In
      addition to making sure that a new transfer does not violate the
      restrictions on the high-speed schedule, it also has to check the
      restrictions on the full-speed part of the bus, i.e., the part beyond
      the Transaction Translator (TT).
      
      It does this by calling tt_available() (or tt_no_collision() if
      CONFIG_USB_EHCI_TT_NEWSCHED isn't enabled).  However it calls that
      routine on each pass through a loop over the frames being modified,
      which is an unnecessary expense because tt_available() (or
      tt_no_collision) already does its own loop over frames.  It is
      sufficient to do the check just once, before starting the loop.
      
      In addition, the function calls incorrectly converted the transfer's
      period from microframes to frames by doing a left shift instead of a
      right shift.  The patch fixes this while moving the calls.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      65b8e5cb