1. 15 5月, 2012 2 次提交
    • A
      USB: EHCI: improve full-speed isochronous scheduling routine · 65b8e5cb
      Alan Stern 提交于
      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: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      65b8e5cb
    • G
      Revert "usb: move struct usb_device->children to struct usb_hub_port->child" · fa286188
      Greg Kroah-Hartman 提交于
      This reverts commit bebc56d5.
      
      The call here is fragile and not well thought out, so revert it, it's
      not fully baked yet and I don't want this to go into 3.5.
      
      Cc: Lan Tianyu <tianyu.lan@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fa286188
  2. 14 5月, 2012 2 次提交
  3. 12 5月, 2012 3 次提交
  4. 10 5月, 2012 3 次提交
  5. 09 5月, 2012 1 次提交
  6. 08 5月, 2012 2 次提交
  7. 05 5月, 2012 1 次提交
  8. 04 5月, 2012 4 次提交
    • S
      xhci: Add Lynx Point to list of Intel switchable hosts. · 1c12443a
      Sarah Sharp 提交于
      The upcoming Intel Lynx Point chipset includes an xHCI host controller
      that can have ports switched from the EHCI host controller, just like
      the Intel Panther Point xHCI host.  This time, ports from both EHCI
      hosts can be switched to the xHCI host controller.  The PCI config
      registers to do the port switching are in the exact same place in the
      xHCI PCI configuration registers, with the same semantics.
      
      Hooray for shipping patches for next-gen hardware before the current gen
      hardware is even available for purchase!
      
      This patch should be backported to stable kernels as old as 3.0,
      that contain commit 69e848c2
      "Intel xhci: Support EHCI/xHCI port switching."
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@vger.kernel.org
      1c12443a
    • S
      xhci: Avoid dead ports when CONFIG_USB_XHCI_HCD=n · 51c9e6c7
      Sarah Sharp 提交于
      If the user chooses to say "no" to CONFIG_USB_XHCI_HCD on a system
      with an Intel Panther Point chipset, the PCI quirks code or the EHCI
      driver will switch the ports over to the xHCI host, but the xHCI driver
      will never load.  The ports will be powered off and seem "dead" to the
      user.
      
      Fix this by only switching the ports over if CONFIG_USB_XHCI_HCD is
      either compiled in, or compiled as a module.
      
      This patch should be backported to stable kernels as old as 3.0,
      that contain commit 69e848c2
      "Intel xhci: Support EHCI/xHCI port switching."
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Reported-by: NEric Anholt <eric.anholt@intel.com>
      Reported-by: NDavid Bein <d.bein@f5.com>
      Cc: stable@vger.kernel.org
      51c9e6c7
    • H
      usb-xhci: Handle COMP_TX_ERR for isoc tds · 9c745995
      Hans de Goede 提交于
      While testing unplugging an UVC HD webcam with usb-redirection (so through
      usbdevfs), my userspace usb-redir code was getting a value of -1 in
      iso_frame_desc[n].status, which according to Documentation/usb/error-codes.txt
      is not a valid value.
      
      The source of this -1 is the default case in xhci-ring.c:process_isoc_td()
      adding a kprintf there showed the value of trb_comp_code to be COMP_TX_ERR
      in this case, so this patch adds handling for that completion code to
      process_isoc_td().
      
      This was observed and tested with the following xhci controller:
      1033:0194 NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
      
      Note: I also wonder if setting frame->status to -1 (-EPERM) is the best we can
      do, but since I cannot come up with anything better I've left that as is.
      
      This patch should be backported to kernels as old as 2.6.36, which contain the
      commit 04e51901 "USB: xHCI: Isochronous
      transfer implementation".
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@vger.kernel.org
      9c745995
    • A
      xHCI: keep track of ports being resumed and indicate in hub_status_data · f370b996
      Andiry Xu 提交于
      This commit adds a bit-array to xhci bus_state for keeping track of
      which ports are undergoing a resume transition. If any of the bits
      are set when xhci_hub_status_data() is called, the routine will return
      a non-zero value even if no ports have any status changes pending.
      This will allow usbcore to handle races between root-hub suspend and
      port wakeup.
      
      This patch should be backported to kernels as old as 3.4, that contain
      the commit 879d38e6 "USB: fix race
      between root-hub suspend and remote wakeup".
      Signed-off-by: NAndiry Xu <andiry.xu@amd.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: stable@vger.kernel.org
      f370b996
  9. 02 5月, 2012 15 次提交
  10. 28 4月, 2012 7 次提交