1. 10 11月, 2018 2 次提交
    • C
      xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc · 11644a76
      Cherian, George 提交于
      Implement workaround for ThunderX2 Errata-129 (documented in
      CN99XX Known Issues" available at Cavium support site).
      As per ThunderX2errata-129, USB 2 device may come up as USB 1
      if a connection to a USB 1 device is followed by another connection to
      a USB 2 device, the link will come up as USB 1 for the USB 2 device.
      
      Resolution: Reset the PHY after the USB 1 device is disconnected.
      The PHY reset sequence is done using private registers in XHCI register
      space. After the PHY is reset we check for the PLL lock status and retry
      the operation if it fails. From our tests, retrying 4 times is sufficient.
      
      Add a new quirk flag XHCI_RESET_PLL_ON_DISCONNECT to invoke the workaround
      in handle_xhci_port_status().
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NGeorge Cherian <george.cherian@cavium.com>
      Signed-off-by: NMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      11644a76
    • M
      xhci: Fix leaking USB3 shared_hcd at xhci removal · f0680904
      Mathias Nyman 提交于
      Ensure that the shared_hcd pointer is valid when calling usb_put_hcd()
      
      The shared_hcd is removed and freed in xhci by first calling
      usb_remove_hcd(xhci->shared_hcd), and later
      usb_put_hcd(xhci->shared_hcd)
      
      Afer commit fe190ed0 ("xhci: Do not halt the host until both HCD have
      disconnected their devices.") the shared_hcd was never properly put as
      xhci->shared_hcd was set to NULL before usb_put_hcd(xhci->shared_hcd) was
      called.
      
      shared_hcd (USB3) is removed before primary hcd (USB2).
      While removing the primary hcd we might need to handle xhci interrupts
      to cleanly remove last USB2 devices, therefore we need to set
      xhci->shared_hcd to NULL before removing the primary hcd to let xhci
      interrupt handler know shared_hcd is no longer available.
      
      xhci-plat.c, xhci-histb.c and xhci-mtk first create both their hcd's before
      adding them. so to keep the correct reverse removal order use a temporary
      shared_hcd variable for them.
      For more details see commit 4ac53087 ("usb: xhci: plat: Create both
      HCDs before adding them")
      
      Fixes: fe190ed0 ("xhci: Do not halt the host until both HCD have disconnected their devices.")
      Cc: Joel Stanley <joel@jms.id.au>
      Cc: Chunfeng Yun <chunfeng.yun@mediatek.com>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Jianguo Sun <sunjianguo1@huawei.com>
      Cc: <stable@vger.kernel.org>
      Reported-by: NJack Pham <jackp@codeaurora.org>
      Tested-by: NJack Pham <jackp@codeaurora.org>
      Tested-by: NPeter Chen <peter.chen@nxp.com>
      Signed-off-by: NMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f0680904
  2. 09 10月, 2018 1 次提交
  3. 02 10月, 2018 1 次提交
  4. 28 9月, 2018 1 次提交
  5. 01 6月, 2018 2 次提交
  6. 20 4月, 2018 1 次提交
  7. 22 3月, 2018 1 次提交
  8. 10 3月, 2018 1 次提交
  9. 16 2月, 2018 1 次提交
  10. 27 12月, 2017 1 次提交
  11. 09 12月, 2017 1 次提交
    • A
      usb: xhci: allow imod-interval to be configurable · ab725cbe
      Adam Wallis 提交于
      The xHCI driver currently has the IMOD set to 160, which
      translates to an IMOD interval of 40,000ns (160 * 250)ns
      
      Commit 0cbd4b34 ("xhci: mediatek: support MTK xHCI host controller")
      introduced a QUIRK for the MTK platform to adjust this interval to 20,
      which translates to an IMOD interval of 5,000ns (20 * 250)ns. This is
      due to the fact that the MTK controller IMOD interval is 8 times
      as much as defined in xHCI spec.
      
      Instead of adding more quirk bits for additional platforms, this patch
      introduces the ability for vendors to set the IMOD_INTERVAL as is
      optimal for their platform. By using device_property_read_u32() on
      "imod-interval-ns", the IMOD INTERVAL can be specified in nano seconds.
      If no interval is specified, the default of 40,000ns (IMOD=160) will be
      used.
      
      No bounds checking has been implemented due to the fact that a vendor
      may have violated the spec and would need to specify a value outside of
      the max 8,000 IRQs/second limit specified in the xHCI spec.
      Tested-by: NChunfeng Yun <chunfeng.yun@mediatek.com>
      Reviewed-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NAdam Wallis <awallis@codeaurora.org>
      Signed-off-by: NMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ab725cbe
  12. 07 11月, 2017 1 次提交
    • G
      USB: host: xhci: Remove redundant license text · 9ed64195
      Greg Kroah-Hartman 提交于
      Now that the SPDX tag is in all USB files, that identifies the license
      in a specific and legally-defined manner.  So the extra GPL text wording
      can be removed as it is no longer needed at all.
      
      This is done on a quest to remove the 700+ different ways that files in
      the kernel describe the GPL license text.  And there's unneeded stuff
      like the address (sometimes incorrect) for the FSF which is never
      needed.
      
      No copyright headers or other non-license-description text was removed.
      
      Cc: Matthias Brugger <matthias.bgg@gmail.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Jonathan Hunter <jonathanh@nvidia.com>
      Acked-by: NMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9ed64195
  13. 04 11月, 2017 1 次提交
  14. 18 9月, 2017 1 次提交
  15. 03 8月, 2017 1 次提交
  16. 20 7月, 2017 1 次提交
  17. 20 6月, 2017 1 次提交
  18. 12 6月, 2017 1 次提交
  19. 07 6月, 2017 1 次提交
  20. 18 5月, 2017 1 次提交
  21. 08 4月, 2017 1 次提交
  22. 25 1月, 2017 1 次提交
  23. 04 1月, 2017 1 次提交
  24. 20 10月, 2016 2 次提交
  25. 16 8月, 2016 1 次提交
  26. 14 6月, 2016 1 次提交
    • M
      PCI: Put PCIe ports into D3 during suspend · 9d26d3a8
      Mika Westerberg 提交于
      Currently the Linux PCI core does not touch power state of PCI bridges and
      PCIe ports when system suspend is entered.  Leaving them in D0 consumes
      power unnecessarily and may prevent the CPU from entering deeper C-states.
      
      With recent PCIe hardware we can power down the ports to save power given
      that we take into account few restrictions:
      
        - The PCIe port hardware is recent enough, starting from 2015.
      
        - Devices connected to PCIe ports are effectively in D3cold once the port
          is transitioned to D3 (the config space is not accessible anymore and
          the link may be powered down).
      
        - Devices behind the PCIe port need to be allowed to transition to D3cold
          and back.  There is a way both drivers and userspace can forbid this.
      
        - If the device behind the PCIe port is capable of waking the system it
          needs to be able to do so from D3cold.
      
      This patch adds a new flag to struct pci_device called 'bridge_d3'.  This
      flag is set and cleared by the PCI core whenever there is a change in power
      management state of any of the devices behind the PCIe port.  When system
      later on is suspended we only need to check this flag and if it is true
      transition the port to D3 otherwise we leave it in D0.
      
      Also provide override mechanism via command line parameter
      "pcie_port_pm=[off|force]" that can be used to disable or enable the
      feature regardless of the BIOS manufacturing date.
      Tested-by: NLukas Wunner <lukas@wunner.de>
      Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9d26d3a8
  27. 02 6月, 2016 1 次提交
  28. 14 4月, 2016 2 次提交
  29. 04 2月, 2016 4 次提交
  30. 05 12月, 2015 1 次提交
  31. 02 12月, 2015 1 次提交
  32. 17 10月, 2015 1 次提交
    • L
      xhci: Add spurious wakeup quirk for LynxPoint-LP controllers · fd7cd061
      Laura Abbott 提交于
      We received several reports of systems rebooting and powering on
      after an attempted shutdown. Testing showed that setting
      XHCI_SPURIOUS_WAKEUP quirk in addition to the XHCI_SPURIOUS_REBOOT
      quirk allowed the system to shutdown as expected for LynxPoint-LP
      xHCI controllers. Set the quirk back.
      
      Note that the quirk was originally introduced for LynxPoint and
      LynxPoint-LP just for this same reason. See:
      
      commit 638298dc ("xhci: Fix spurious wakeups after S5 on Haswell")
      
      It was later limited to only concern HP machines as it caused
      regression on some machines, see both bug and commit:
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66171
      commit 6962d914 ("xhci: Limit the spurious wakeup fix only to HP machines")
      
      Later it was discovered that the powering on after shutdown
      was limited to LynxPoint-LP (Haswell-ULT) and that some non-LP HP
      machine suffered from spontaneous resume from S3 (which should
      not be related to the SPURIOUS_WAKEUP quirk at all). An attempt
      to fix this then removed the SPURIOUS_WAKEUP flag usage completely.
      
      commit b45abacd ("xhci: no switching back on non-ULT Haswell")
      
      Current understanding is that LynxPoint-LP (Haswell ULT) machines
      need the SPURIOUS_WAKEUP quirk, otherwise they will restart, and
      plain Lynxpoint (Haswell) machines may _not_ have the quirk
      set otherwise they again will restart.
      Signed-off-by: NLaura Abbott <labbott@fedoraproject.org>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Oliver Neukum <oneukum@suse.com>
      [Added more history to commit message -Mathias]
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fd7cd061
  33. 04 10月, 2015 1 次提交