1. 22 4月, 2018 1 次提交
  2. 20 4月, 2018 2 次提交
  3. 10 3月, 2018 2 次提交
    • M
      usb: add a flag to skip PHY initialization to struct usb_hcd · 4e88d4c0
      Martin Blumenstingl 提交于
      The USB HCD core driver parses the device-tree node for "phys" and
      "usb-phys" properties. It also manages the power state of these PHYs
      automatically.
      However, drivers may opt-out of this behavior by setting "phy" or
      "usb_phy" in struct usb_hcd to a non-null value. An example where this
      is required is the "Qualcomm USB2 controller", implemented by the
      chipidea driver. The hardware requires that the PHY is only powered on
      after the "reset completed" event from the controller is received.
      
      A follow-up patch will allow the USB HCD core driver to manage more than
      one PHY. Add a new "skip_phy_initialization" bitflag to struct usb_hcd
      so drivers can opt-out of any PHY management provided by the USB HCD
      core driver.
      
      This also updates the existing drivers so they use the new flag if they
      want to opt out of the PHY management provided by the USB HCD core
      driver. This means that for these drivers the new "multiple PHY"
      handling (which will be added in a follow-up patch) will be disabled as
      well.
      Signed-off-by: NMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      Acked-by: NPeter Chen <peter.chen@nxp.com>
      Tested-by: NNeil Armstrong <narmstrong@baylibre.con>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4e88d4c0
    • Y
      usb: host: xhci-plat: revert "usb: host: xhci-plat: enable clk in resume timing" · d56e57ca
      Yoshihiro Shimoda 提交于
      This patch reverts the commit 835e4241 ("usb: host: xhci-plat:
      enable clk in resume timing") because this driver also has runtime PM
      and the commit 56086910 ("clk: renesas: cpg-mssr: Restore module
      clocks during resume") will restore the clock on R-Car H3 environment.
      
      If the xhci_plat_suspend() disables the clk, the system cannot enable
      the clk in resume like the following behavior:
      
      < In resume >
       - genpd_resume_noirq() runs and enable the clk (enable_count = 1)
       - cpg_mssr_resume_noirq() restores the clk register.
        -- Since the clk was disabled in suspend, cpg_mssr_resume_noirq()
           will disable the clk and keep the enable_count.
       - Even if xhci_plat_resume() calls clk_prepare_enable(), since
         the enable_count is 1, the clk will be not enabled.
      
      After this patch is applied, the cpg-mssr driver will save the clk
      as enable, so the clk will be enabled in resume.
      
      Fixes: 835e4241 ("usb: host: xhci-plat: enable clk in resume timing")
      Signed-off-by: NYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Signed-off-by: NMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d56e57ca
  4. 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
  5. 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
  6. 04 11月, 2017 1 次提交
  7. 05 10月, 2017 2 次提交
  8. 18 9月, 2017 1 次提交
    • A
      usb: host: xhci-plat: allow sysdev to inherit from ACPI · c6b8e793
      Adam Wallis 提交于
      Commit 4c39d4b9 ("usb: xhci: use bus->sysdev for DMA configuration")
      updated the method determining DMA for XHCI from sysdev. However, this
      patch broke the ability to enumerate the FWNODE from parent ACPI devices
      from the child plat XHCI device.
      
      Currently, xhci_plat is not set up properly when the parent device is an
      ACPI node. The conditions that xhci_plat_probe should satisfy are
      
      1. xhci_plat comes from firmware
      2. xhci_plat is child of a device from firmware (dwc3-plat)
      3. xhci_plat is grandchild of a pci device (dwc3-pci)
      
      Case 2 is covered when the child is an OF node (by checking
      sysdev->parent->of_node), however, an ACPI parent will return NULL in
      the of_node check and will thus not result in sysdev being set to
      sysdev->parent
      
      [   17.591549] xhci-hcd: probe of xhci-hcd.6.auto failed with error -5
      
      This change adds a check for ACPI to completely allow for condition 2.
      This is done by first checking if the parent node is of type ACPI (e.g.,
      dwc3-plat) and set sysdev to sysdev->parent if either of the two
      following conditions are met:
      
      1: If fwnode is empty (in the case that platform_device_add_properties
      was not called on the allocated platform device)
      2: fwnode exists but is not of type ACPI (this would happen if
      platform_device_add_properties was called on the allocated device.
      Instead of type FWNODE_ACPI, you would end up with FWNODE_PDATA)
      
      Cc: stable@vger.kernel.org #4.12.x
      Cc: stable@vger.kernel.org #4.13.x
      
      Fixes: 4c39d4b9 ("usb: xhci: use bus->sysdev for DMA configuration")
      Tested-by: NThang Q. Nguyen <tqnguyen@apm.com>
      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>
      c6b8e793
  9. 17 8月, 2017 1 次提交
  10. 18 5月, 2017 1 次提交
  11. 27 4月, 2017 1 次提交
    • A
      usb: host: xhci: remove #ifdef around PM functions · d852ed98
      Arnd Bergmann 提交于
      The #ifdef is slightly wrong as it doesn't cover the xhci_priv_resume_quirk()
      function, causing a harmless warning:
      
      drivers/usb/host/xhci-plat.c:58:12: error: 'xhci_priv_resume_quirk' defined but not used [-Werror=unused-function]
       static int xhci_priv_resume_quirk(struct usb_hcd *hcd)
      
      A simpler way to do this correctly is to use __maybe_unused annotations
      that let the compiler silently drop the functions when there is no
      reference.
      
      Fixes: b0c69b4b ("usb: host: plat: Enable xHCI plat runtime PM")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d852ed98
  12. 20 4月, 2017 4 次提交
  13. 08 4月, 2017 1 次提交
  14. 29 3月, 2017 1 次提交
  15. 23 3月, 2017 1 次提交
  16. 10 3月, 2017 1 次提交
  17. 25 1月, 2017 1 次提交
  18. 20 1月, 2017 1 次提交
  19. 19 1月, 2017 1 次提交
  20. 14 11月, 2016 1 次提交
  21. 27 6月, 2016 2 次提交
  22. 02 6月, 2016 1 次提交
    • T
      usb: xhci-plat: properly handle probe deferral for devm_clk_get() · de95c40d
      Thomas Petazzoni 提交于
      On some platforms, the clocks might be registered by a platform
      driver. When this is the case, the clock platform driver may very well
      be probed after xhci-plat, in which case the first probe() invocation
      of xhci-plat will receive -EPROBE_DEFER as the return value of
      devm_clk_get().
      
      The current code handles that as a normal error, and simply assumes
      that this means that the system doesn't have a clock for the XHCI
      controller, and continues probing without calling
      clk_prepare_enable(). Unfortunately, this doesn't work on systems
      where the XHCI controller does have a clock, but that clock is
      provided by another platform driver. In order to fix this situation,
      we handle the -EPROBE_DEFER error condition specially, and abort the
      XHCI controller probe(). It will be retried later automatically, the
      clock will be available, devm_clk_get() will succeed, and the probe()
      will continue with the clock prepared and enabled as expected.
      
      In practice, such issue is seen on the ARM64 Marvell 7K/8K platform,
      where the clocks are registered by a platform driver.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: NMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      de95c40d
  23. 27 4月, 2016 4 次提交
  24. 14 4月, 2016 1 次提交
  25. 04 3月, 2016 2 次提交
  26. 04 2月, 2016 1 次提交
  27. 02 12月, 2015 3 次提交