1. 25 7月, 2013 2 次提交
    • O
      usb: xhci: Mark two functions __maybe_unused · d5c82feb
      Olof Johansson 提交于
      Resolves the following build warnings:
      drivers/usb/host/xhci.c:332:13: warning: 'xhci_msix_sync_irqs' defined but not used [-Wunused-function]
      drivers/usb/host/xhci.c:3901:12: warning: 'xhci_change_max_exit_latency' defined but not used [-Wunused-function]
      
      These functions are not always used, and since they're marked static
      they will produce build warnings:
      - xhci_msix_sync_irqs is only used with CONFIG_PCI.
      - xhci_change_max_exit_latency is a little more complicated with
        dependencies on CONFIG_PM and CONFIG_PM_RUNTIME.
      
      Instead of building a bigger maze of ifdefs in this code, I've just
      marked both with __maybe_unused.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      d5c82feb
    • S
      xhci: Avoid NULL pointer deref when host dies. · 203a8661
      Sarah Sharp 提交于
      When the host controller fails to respond to an Enable Slot command, and
      the host fails to respond to the register write to abort the command
      ring, the xHCI driver will assume the host is dead, and call
      usb_hc_died().
      
      The USB device's slot_id is still set to zero, and the pointer stored at
      xhci->devs[0] will always be NULL.  The call to xhci_check_args in
      xhci_free_dev should have caught the NULL virt_dev pointer.
      
      However, xhci_free_dev is designed to free the xhci_virt_device
      structures, even if the host is dead, so that we don't leak kernel
      memory.  xhci_free_dev checks the return value from the generic
      xhci_check_args function.  If the return value is -ENODEV, it carries on
      trying to free the virtual device.
      
      The issue is that xhci_check_args looks at the host controller state
      before it looks at the xhci_virt_device pointer.  It will return -ENIVAL
      because the host is dead, and xhci_free_dev will ignore the return
      value, and happily dereference the NULL xhci_virt_device pointer.
      
      The fix is to make sure that xhci_check_args checks the xhci_virt_device
      pointer before it checks the host state.
      
      See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1203453 for
      further details.  This patch doesn't solve the underlying issue, but
      will ensure we don't see any more NULL pointer dereferences because of
      the issue.
      
      This patch should be backported to kernels as old as 3.1, that
      contain the commit 7bd89b40 "xhci: Don't
      submit commands or URBs to halted hosts."
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Reported-by: NVincent Thiele <vincentthiele@gmail.com>
      Cc: stable@vger.kernel.org
      203a8661
  2. 23 7月, 2013 1 次提交
  3. 26 6月, 2013 1 次提交
  4. 25 6月, 2013 4 次提交
  5. 19 6月, 2013 2 次提交
  6. 18 6月, 2013 9 次提交
  7. 15 6月, 2013 4 次提交
  8. 11 6月, 2013 2 次提交
  9. 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
  10. 06 6月, 2013 6 次提交
  11. 04 6月, 2013 4 次提交
  12. 30 5月, 2013 2 次提交
    • M
      USB: OHCI: make ohci-pci a separate driver · c1117afb
      Manjunath Goudar 提交于
      This patch splits the PCI portion of ohci-hcd out into its
      own separate driver module, called ohci-pci.
      
      The major point of difficulty lies in ohci-pci's many vendor- and
      device-specific workarounds.  Some of them have to be applied before
      calling ohci_start() some after, which necessitates a fair amount of
      code motion.  The other platform drivers require much smaller changes.
      
      The complete sb800_prefetch() function moved to ohci-q.c,because its
      only related to ohci-pci driver.
      
      USB_OHCI_HCD_PCI symbol no longer dependence on STB03xxx, PPC_MPC52xx and
      USB_OHCI_HCD_PPC_OF that's what removed.
      
      V2:
        - few specific content of pci related code in ohci_pci_start function has been moved to ohci_pci_reset
          and rest of the generic code is written in ohci_start of ohci-hcd.c file.
      V3:
       - ohci_restart() has been called in ohci_pci_reset() function for to reset the ohci pci.
      
      V4:
       -sb800_prefetch() moved to ohci-q.c,because its only related to ohci-pci.
       -no longer _creating_ CONFIG_USB_OHCI_PCI,creating CONFIG_USB_OHCI_HCD_PCI.
       -overrides renamed with pci_override,its giving proper meaning.
      
      V5:
       -sb800_prefetch() moved to pci-quirks.c,because its only related to pci.
      
      V6:
       -sb800_prefetch() function has been moved to pci-quirks.c made as separate patch in 2/3.
       -Most of the generic ohci pci changes moved in 2/3 patch,now this is complete  ohci-pci separation patch.
      
      V7:
       -Unrelated include file has been removed from ohci.h file.
      
      V8:
       -USB_OHCI_HCD_PCI symbol does not dependence on STB03xxx, PPC_MPC52xx and USB_OHCI_HCD_PPC_OF.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c1117afb
    • M
      USB: OHCI: Generic changes to make ohci-pci a separate driver · 2621d011
      Manjunath Goudar 提交于
      Note that this changes is part of separating the ohci pci host controller
      driver from ohci-hcd host code.
      This contains :
           -Moved sb800_prefetch() function from ohci-pci.c to pci-quirks.c file
            and EXPORTed, this is part of the effort to move the ohci pci related
            code to generic pci code.
           -Passed "device" argument instead  of "ohci_hcd" in sb800_prefetch()
            function to avoid extra include file in pci-quirks.c.
      
      V2:
           -Passed "device" argment instead of "pci_dev", then we use to_pci_dev()
            to get the "pci_dev" structure.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2621d011