1. 18 6月, 2013 1 次提交
  2. 07 6月, 2013 3 次提交
    • T
      wusbhc: disable suspend and resume on the root hub. · edc40a4b
      Thomas Pugliese 提交于
      Suspend and resume are not currently supported on the wireless root hub.
      Remove the suspend and resume op functions in the host controller driver
      to avoid constant error messages in the system log.
      Signed-off-by: NThomas Pugliese <thomas.pugliese@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      edc40a4b
    • A
      usb: host: make USB_ARCH_HAS_?HCI obsolete · d9ea21a7
      Arnd Bergmann 提交于
      The three options USB_ARCH_HAS_{EHCI,OHCI,XHCI} are all well beyond
      their recommended shelf life. They have caused numerous build failures
      over the years because they are never completely correct, and with
      the move to splitting out the platform specific back-ends out of the
      driver, there is no real need for them any more. Also, the use of making
      USB_ARCH_HAS_HCD depend on it is questionable since one can always enable
      dummy_hc these days.
      
      This patch enables them unconditionally for all platforms and
      architectures, which means it is now possible to build host controller
      drivers for machines that are known not to come with this hardware,
      but that is just how we treat most other drivers.
      
      In order to minimise the impact on existing architecture code and
      defconfig files, all the Kconfig are left present for now. All platforms
      that currently do 'select USB_ARCH_HAS_*' should subsequently be changed
      not to select that. All drivers depending on USB_ARCH_HAS_HCD should
      be changed to depend on USB_SUPPORT instead.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d9ea21a7
    • A
      USB: OHCI: remove bogus #error · 358e9117
      Arnd Bergmann 提交于
      The OHCI host controller driver can be built standalone now,
      without enabling any of the available bus glue drivers, so
      there is not really a reason to error out here:
      
      drivers/usb/host/ohci-hcd.c:1258: error:
       #error "missing bus glue for ohci-hcd"  #error "missing bus glue for ohci-hcd"
      
      This follows the same change done in ehci recently as 843e56c0
      "USB: EHCI: remove bogus #error" and hopefully avoids future
      merge conflicts in this list.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      358e9117
  3. 06 6月, 2013 6 次提交
  4. 04 6月, 2013 4 次提交
  5. 30 5月, 2013 12 次提交
  6. 29 5月, 2013 1 次提交
    • A
      USB: revert periodic scheduling bugfix · fdc03438
      Alan Stern 提交于
      This patch reverts commit 3e619d04
      (USB: EHCI: fix bug in scheduling periodic split transfers).  The
      commit was valid -- it fixed a real bug -- but the periodic scheduler
      in ehci-hcd is in such bad shape (especially the part that handles
      split transactions) that fixing one bug is very likely to cause
      another to surface.  That's what happened in this case; the result was
      choppy and noisy playback on certain 24-bit audio devices.
      
      The only real fix will be to rewrite this entire section of code.  My
      next project...
      
      This fixes https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110.
      
      Thanks to Tim Richardson for extra testing and feedback, and to Joseph
      Salisbury and Tyson Tan for tracking down the original source of the
      problem.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: Joseph Salisbury <joseph.salisbury@canonical.com>
      CC: Tim Richardson <tim@tim-richardson.net>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fdc03438
  7. 25 5月, 2013 4 次提交
    • S
      xhci: Disable D3cold for buggy TI redrivers. · c3897aa5
      Sarah Sharp 提交于
      Some xHCI hosts contain a "redriver" from TI that silently drops port
      status connect changes if the port slips into Compliance Mode.  If the
      port slips into compliance mode while the host is in D0, there will not
      be a port status change event.  If the port slips into compliance mode
      while the host is in D3, the host will not send a PME.  This includes
      when the system is suspended (S3) or hibernated (S4).
      
      If this happens when the system is in S3/S4, there is nothing software
      can do.  Other port status change events that would normally cause the
      host to wake the system from S3/S4 may also be lost.  This includes
      remote wakeup, disconnects and connects on other ports, and overrcurrent
      events.  A decision was made to _NOT_ disable system suspend/hibernate
      on these systems, since users are unlikely to enable wakeup from S3/S4
      for the xHCI host.
      
      Software can deal with this issue when the system is in S0.  A work
      around was put in to poll the port status registers for Compliance Mode.
      The xHCI driver will continue to poll the registers while the host is
      runtime suspended.  Unfortunately, that means we can't allow the PCI
      device to go into D3cold, because power will be removed from the host,
      and the config space will read as all Fs.
      
      Disable D3cold in the xHCI PCI runtime suspend function.
      
      This patch should be backported to kernels as old as 3.2, that
      contain the commit 71c731a2 "usb: host:
      xhci: Fix Compliance Mode on SN65LVPE502CP Hardware"
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: Huang Ying <ying.huang@intel.com>
      Cc: stable@vger.kernel.org
      c3897aa5
    • T
      xhci - correct comp_mode_recovery_timer on return from hibernate · 77df9e0b
      Tony Camuso 提交于
      Commit 71c731a2 (usb: host: xhci: Fix Compliance Mode on SN65LVPE502CP
      Hardware) was a workaround for systems using the SN65LVPE502CP,
      controller, but it introduced a bug in resume from hibernate.
      
      The fix created a timer, comp_mode_recovery_timer, which is deleted from
      a timer list when xhci_suspend() is called. However, the hibernate image,
      including the timer list containing the comp_mode_recovery_timer, had
      already been saved before the timer was deleted.
      
      Upon resume from hibernate, the list containing the comp_mode_recovery_timer
      is restored from the image saved to disk, and xhci_resume(), assuming that
      the timer had been deleted by xhci_suspend(), makes a call to
      compliance_mode_recoery_timer_init(), which creates a new instance of the
      comp_mode_recovery_timer and attempts to place it into the same list in which
      it is already active, thus corrupting the list during the list_add() call.
      
      At this point, a call trace is emitted indicating the list corruption.
      Soon afterward, the system locks up, the watchdog times out, and the
      ensuing NMI crashes the system.
      
      The problem did not occur when resuming from suspend. In suspend, the
      image in RAM remains exactly as it was when xhci_suspend() deleted the
      comp_mode_recovery_timer, so there is no problem when xhci_resume()
      creates a new instance of this timer and places it in the still empty
      list.
      
      This patch avoids the problem by deleting the timer in xhci_resume()
      when resuming from hibernate. Now xhci_resume() can safely make the
      call to create a new instance of this timer, whether returning from
      suspend or hibernate.
      
      Thanks to Alan Stern for his help with understanding the problem.
      
      [Sarah reworked this patch to cover the case where the xHCI restore
      register operation fails, and (temp & STS_SRE) is true (and we re-init
      the host, including re-init for the compliance mode), but hibernate is
      false.  The original patch would have caused list corruption in this
      case.]
      
      This patch should be backported to kernels as old as 3.2, that
      contain the commit 71c731a2 "usb: host:
      xhci: Fix Compliance Mode on SN65LVPE502CP Hardware"
      Signed-off-by: NTony Camuso <tcamuso@redhat.com>
      Tested-by: NTony Camuso <tcamuso@redhat.com>
      Acked-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@vger.kernel.org
      77df9e0b
    • V
      xhci: fix list access before init · 88696ae4
      Vladimir Murzin 提交于
      If for whatever reason we fall into fail path in xhci_mem_init()
      before bw table gets initialized we may access the uninitialized lists
      in xhci_mem_cleanup().
      
      Check for bw table before traversing lists in cleanup routine.
      
      This patch should be backported to kernels as old as 3.2, that contain
      the commit 839c817c "xhci: Store
      information about roothubs and TTs."
      Reported-by: NSergey Dyasly <dserrg@gmail.com>
      Tested-by: NSergey Dyasly <dserrg@gmail.com>
      Signed-off-by: NVladimir Murzin <murzin.v@gmail.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@vger.kernel.org
      88696ae4
    • S
      xhci-mem: init list heads at the beginning of init · 331de00a
      Sergio Aguirre 提交于
      It is possible that we fail on xhci_mem_init, just before doing
      the INIT_LIST_HEAD, and calling xhci_mem_cleanup.
      
      Problem is that, the list_for_each_entry_safe macro, assumes
      list heads are initialized (not NULL), and dereferences their 'next'
      pointer, causing a kernel panic if this is not yet initialized.
      
      Let's protect from that by moving inits to the beginning.
      
      This patch should be backported to kernels as old as 3.2, that
      contain the commit 9574323c "xHCI: test
      USB2 software LPM".
      Signed-off-by: NSergio Aguirre <sergio.a.aguirre.rodriguez@intel.com>
      Acked-by: NDavid Cohen <david.a.cohen@intel.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@vger.kernel.org
      331de00a
  8. 22 5月, 2013 9 次提交