1. 03 8月, 2020 1 次提交
  2. 12 5月, 2020 1 次提交
  3. 04 9月, 2019 1 次提交
    • T
      PCI: imx6: Propagate errors for optional regulators · 2170a09f
      Thierry Reding 提交于
      regulator_get_optional() can fail for a number of reasons besides probe
      deferral. It can for example return -ENOMEM if it runs out of memory as
      it tries to allocate data structures. Propagating only -EPROBE_DEFER is
      problematic because it results in these legitimately fatal errors being
      treated as "regulator not specified in DT".
      
      What we really want is to ignore the optional regulators only if they
      have not been specified in DT. regulator_get_optional() returns -ENODEV
      in this case, so that's the special case that we need to handle. So we
      propagate all errors, except -ENODEV, so that real failures will still
      cause the driver to fail probe.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Reviewed-by: NAndrew Murray <andrew.murray@arm.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Shawn Guo <shawnguo@kernel.org>
      Cc: Sascha Hauer <s.hauer@pengutronix.de>
      Cc: Fabio Estevam <festevam@gmail.com>
      Cc: kernel@pengutronix.de
      Cc: linux-imx@nxp.com
      2170a09f
  4. 15 8月, 2019 1 次提交
  5. 07 5月, 2019 1 次提交
  6. 01 5月, 2019 11 次提交
  7. 01 3月, 2019 2 次提交
  8. 13 2月, 2019 1 次提交
    • T
      PCI: imx: Add workaround for e10728, IMX7d PCIe PLL failure · 1df82ec4
      Trent Piepho 提交于
      This implements the workound described in the NXP IMX7d erratum e10728.
      
      Initial VCO oscillation may fail under corner conditions such as cold
      temperature. It causes PCIe PLL to fail to lock in the initialization
      phase, which results in the PCIe link failing to come up.
      
      The workaround is to disable Duty-Cycle Corrector (DCC) calibration
      after G_RST.
      
      To do this it is necessary to gain access to the undocumented and
      currently unused PCIe PHY register bank. A new device tree node of type
      "fsl,imx7d-pcie-phy" is created for the PHY block and the existing PCIe
      device uses a phandle named "fsl,imx7d-pcie-phy" to point to it.
      Signed-off-by: NTrent Piepho <tpiepho@impinj.com>
      [lorenzo.pieralisi@arm.com: updated log string, commit log]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Reviewed-by: NLucas Stach <l.stach@pengutronix.de>
      1df82ec4
  9. 04 2月, 2019 4 次提交
  10. 01 2月, 2019 2 次提交
  11. 02 1月, 2019 1 次提交
  12. 18 12月, 2018 2 次提交
  13. 20 11月, 2018 1 次提交
    • T
      PCI: imx6: Fix link training status detection in link up check · 68bc10bf
      Trent Piepho 提交于
      This bug was introduced in the interaction for two commits on either
      branch of the merge commit 562df5c8 ("Merge branch
      'pci/host-designware' into next").
      
      Commit 4d107d3b ("PCI: imx6: Move link up check into
      imx6_pcie_wait_for_link()"), changed imx6_pcie_wait_for_link() to poll
      the link status register directly, checking for link up and not
      training, and made imx6_pcie_link_up() only check the link up bit (once,
      not a polling loop).
      
      While commit 886bc5ce ("PCI: designware: Add generic
      dw_pcie_wait_for_link()"), replaced the loop in
      imx6_pcie_wait_for_link() with a call to a new dwc core function, which
      polled imx6_pcie_link_up(), which still checked both link up and not
      training in a loop.
      
      When these two commits were merged, the version of
      imx6_pcie_wait_for_link() from 886bc5ce was kept, which eliminated
      the link training check placed there by 4d107d3b. However, the
      version of imx6_pcie_link_up() from 4d107d3b was kept, which
      eliminated the link training check that had been there and was moved to
      imx6_pcie_wait_for_link().
      
      The result was the link training check got lost for the imx6 driver.
      
      Eliminate imx6_pcie_link_up() so that the default handler,
      dw_pcie_link_up(), is used instead. The default handler has the correct
      code, which checks for link up and also that it still is not training,
      fixing the regression.
      
      Fixes: 562df5c8 ("Merge branch 'pci/host-designware' into next")
      Signed-off-by: NTrent Piepho <tpiepho@impinj.com>
      [lorenzo.pieralisi@arm.com: rewrote the commit log]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Reviewed-by: NLucas Stach <l.stach@pengutronix.de>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Joao Pinto <Joao.Pinto@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      68bc10bf
  14. 05 10月, 2018 1 次提交
    • L
      PCI: imx: Add PME_Turn_Off support · f4e833ba
      Leonard Crestez 提交于
      When the root complex suspends it must send a PME_Turn_Off TLP.
      Implement this by asserting the "turnoff" reset.
      
      On imx7d this functionality is part of the System Reset Controller (SRC)
      and is exposed through the linux reset-controller subsystem.
      
      On imx6 equivalent bits are in the IOMUXC pinmux controller General
      Purpose Register (GPR) area which the imx6-pcie driver accesses
      directly.
      
      This is only for imx7d right now but it's deliberately implemented as an
      optional reset, ignoring the chip variant:
      * Older dtbs won't have this reset so it will be ignored.
      * Future chips might also expose this as a reset controller.
      
      For example imx8m (not yet supported) has the exact same
      PCIE_CTRL_APPS_TURNOFF bit in the same location.
      Signed-off-by: NLeonard Crestez <leonard.crestez@nxp.com>
      [lorenzo.pieralisi@arm.com: updated commit log]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Reviewed-by: NLucas Stach <l.stach@pengutronix.de>
      f4e833ba
  15. 18 9月, 2018 2 次提交
  16. 13 7月, 2018 1 次提交
  17. 08 6月, 2018 1 次提交
  18. 14 5月, 2018 1 次提交
  19. 06 3月, 2018 1 次提交
  20. 29 1月, 2018 1 次提交
  21. 04 8月, 2017 2 次提交
  22. 03 7月, 2017 1 次提交