1. 19 11月, 2020 2 次提交
  2. 13 10月, 2020 1 次提交
  3. 28 9月, 2020 1 次提交
  4. 21 9月, 2020 1 次提交
  5. 10 9月, 2020 3 次提交
    • R
      PCI: dwc: Move N_FTS setup to common setup · aeaa0bfe
      Rob Herring 提交于
      The Designware controller has common registers to set number of fast
      training sequence ordered sets. The Artpec6, Intel, and Tegra driver
      initialize these register fields. Let's move the initialization to the
      common setup code and drivers just have to provide the value.
      
      There's a slight change in that the common clock mode N_FTS field is
      now initialized. Previously only the Intel driver set this. It's not
      clear from the code if common clock mode is used in the Artpec6 or Tegra
      driver. It depends on the DWC configuration. Given the field is not
      initialized while the others are, it seems unlikely common clock mode
      is used.
      
      Link: https://lore.kernel.org/r/20200821035420.380495-40-robh@kernel.orgSigned-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Jingoo Han <jingoohan1@gmail.com>
      Cc: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Jonathan Hunter <jonathanh@nvidia.com>
      Cc: linux-tegra@vger.kernel.org
      aeaa0bfe
    • R
      PCI: dwc: Set PORT_LINK_DLL_LINK_EN in common setup code · 441e48fd
      Rob Herring 提交于
      The Intel driver is the only one to set PORT_LINK_DLL_LINK_EN. The
      default value is set and it seems pretty certain that enabling link
      initialization is always required. Maybe it could just be dropped from
      the Intel driver, but lets move setting it into the common code to be
      sure.
      
      Link: https://lore.kernel.org/r/20200821035420.380495-36-robh@kernel.orgSigned-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Dilip Kota <eswara.kota@linux.intel.com>
      Cc: Jingoo Han <jingoohan1@gmail.com>
      Cc: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      441e48fd
    • R
      PCI: dwc: Centralize link gen setting · 39bc5006
      Rob Herring 提交于
      keystone would force gen2 if no DT property. Now it relies on the
      PCI_EXP_LNKCAP value.
      
      Link: https://lore.kernel.org/r/20200821035420.380495-35-robh@kernel.orgSigned-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Kishon Vijay Abraham I <kishon@ti.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.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: Pengutronix Kernel Team <kernel@pengutronix.de>
      Cc: Fabio Estevam <festevam@gmail.com>
      Cc: NXP Linux Team <linux-imx@nxp.com>
      Cc: Murali Karicheri <m-karicheri2@ti.com>
      Cc: Jingoo Han <jingoohan1@gmail.com>
      Cc: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Stanimir Varbanov <svarbanov@mm-sol.com>
      Cc: Andy Gross <agross@kernel.org>
      Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
      Cc: Pratyush Anand <pratyush.anand@gmail.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Jonathan Hunter <jonathanh@nvidia.com>
      Cc: linux-omap@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-arm-msm@vger.kernel.org
      Cc: linux-tegra@vger.kernel.org
      39bc5006
  6. 08 9月, 2020 4 次提交
  7. 01 7月, 2020 1 次提交
  8. 22 5月, 2020 1 次提交
    • A
      PCI: dwc: Program outbound ATU upper limit register · 668b4490
      Alan Mikhak 提交于
      Function dw_pcie_prog_outbound_atu_unroll() does not program the upper
      32-bit ATU limit register. Since ATU programming functions limit the
      size of the translated region to 4GB by using a u32 size parameter,
      these issues may combine into undefined behavior for resource sizes
      with non-zero upper 32-bits.
      
      For example, a 128GB address space starting at physical CPU address of
      0x2000000000 with size of 0x2000000000 needs the following values
      programmed into the lower and upper 32-bit limit registers:
       0x3fffffff in the upper 32-bit limit register
       0xffffffff in the lower 32-bit limit register
      
      Currently, only the lower 32-bit limit register is programmed with a
      value of 0xffffffff but the upper 32-bit limit register is not being
      programmed. As a result, the upper 32-bit limit register remains at its
      default value after reset of 0x0.
      
      These issues may combine to produce undefined behavior since the ATU
      limit address may be lower than the ATU base address. Programming the
      upper ATU limit address register prevents such undefined behavior despite
      the region size getting truncated due to the 32-bit size limit.
      
      Link: https://lore.kernel.org/r/1585785493-23210-1-git-send-email-alan.mikhak@sifive.comSigned-off-by: NAlan Mikhak <alan.mikhak@sifive.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      668b4490
  9. 09 1月, 2020 1 次提交
  10. 08 9月, 2019 1 次提交
  11. 23 8月, 2019 1 次提交
  12. 13 8月, 2019 4 次提交
  13. 27 6月, 2019 2 次提交
  14. 01 5月, 2019 1 次提交
  15. 16 4月, 2019 1 次提交
  16. 15 4月, 2019 2 次提交
  17. 01 3月, 2019 2 次提交
    • A
      PCI: dwc: Make use of BIT() in constant definitions · 0e11faa4
      Andrey Smirnov 提交于
      Avoid using explicit left shifts and convert various definitions to
      use BIT() instead. No functional change intended.
      Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com>
      [lorenzo.pieralisi@arm.com: fixed PORT_LOGIC_SPEED_CHANGE redefinition]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Chris Healy <cphealy@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Leonard Crestez <leonard.crestez@nxp.com>
      Cc: "A.s. Dong" <aisheng.dong@nxp.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: linux-imx@nxp.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      0e11faa4
    • A
      PCI: dwc: Make use of IS_ALIGNED() · 4f8bbd2f
      Andrey Smirnov 提交于
      Make the intent a bit more clear as well as get rid of explicit
      arithmetic by using IS_ALIGNED() to determine if "addr" is aligned to
      "size". No functional change intended.
      Signed-off-by: NAndrey Smirnov <andrew.smirnov@gmail.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Chris Healy <cphealy@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Leonard Crestez <leonard.crestez@nxp.com>
      Cc: "A.s. Dong" <aisheng.dong@nxp.com>
      Cc: Richard Zhu <hongxing.zhu@nxp.com>
      Cc: linux-imx@nxp.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      4f8bbd2f
  18. 18 12月, 2018 1 次提交
    • S
      PCI: dwc: Don't hard-code DBI/ATU offset · 6d6b05e3
      Stephen Warren 提交于
      The DWC PCIe core contains various separate register spaces: DBI, DBI2,
      ATU, DMA, etc. The relationship between the addresses of these register
      spaces is entirely determined by the implementation of the IP block, not
      by the IP block design itself. Hence, the DWC driver must not make
      assumptions that one register space can be accessed at a fixed offset from
      any other register space. To avoid such assumptions, introduce an
      explicit/separate register pointer for the ATU register space. In
      particular, the current assumption is not valid for NVIDIA's T194 SoC.
      
      The ATU register space is only used on systems that require unrolled ATU
      access. This property is detected at run-time for host controllers, and
      when this is detected, this patch provides a default value for atu_base
      that matches the previous assumption re: register layout. An alternative
      would be to update all drivers for HW that requires unrolled access to
      explicitly set atu_base. However, it's hard to tell which drivers would
      require atu_base to be set. The unrolled property is not detected for
      endpoint systems, and so any endpoint driver that requires unrolled access
      must explicitly set the iatu_unroll_enabled flag (none do at present), and
      so a check is added to require the driver to also set atu_base while at
      it.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NGustavo Pimentel <gustavo.pimentel@synopsys.com>
      Acked-by: NVidya Sagar <vidyas@nvidia.com>
      6d6b05e3
  19. 21 9月, 2018 1 次提交
  20. 08 6月, 2018 1 次提交
  21. 15 5月, 2018 1 次提交
  22. 29 1月, 2018 1 次提交
  23. 21 12月, 2017 1 次提交
    • N
      PCI: dwc: Make cpu_addr_fixup take struct dw_pcie as argument · b6900aeb
      Niklas Cassel 提交于
      The current cpu addr fixup mask for ARTPEC-6, GENMASK(27, 0), is wrong.
      The correct cpu addr fixup mask for ARTPEC-6 is GENMASK(28, 0).
      
      However, having a hardcoded cpu addr fixup mask in each driver is
      arguably wrong.
      A device tree property called something like "cpu-addr-fixup-mask"
      would have been a better solution.
      Introducing such a property is not needed though, since we already have
      pp->cfg0_base and ep->phys_base, which is derived from already existing
      device tree properties.
      
      It is also worth noting that for ARTPEC-7, hardcoding the cpu addr fixup
      mask is not possible, since it uses a High Address Bits Look Up Table,
      which means that it can, at runtime, map the PCIe window to an arbitrary
      address in the 32-bit address space.
      
      By using pp->cfg0_base and ep->phys_base, we avoid hardcoding a mask
      in each driver. This should work for ARTPEC-6, DRA7xx, and ARTPEC-7.
      I have not changed the code in DRA7xx though, since their existing
      code works, but if they want, they could use the same logic as
      artpec6_pcie_cpu_addr_fixup, and thus remove their hardcoded mask.
      
      The reason why the fixup mask is needed is explained in commit f4c55c5a
      ("PCI: designware: Program ATU with untranslated address").
      Signed-off-by: NNiklas Cassel <niklas.cassel@axis.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NKishon Vijay Abraham I <kishon@ti.com>
      b6900aeb
  24. 02 9月, 2017 1 次提交
  25. 03 8月, 2017 2 次提交
  26. 28 4月, 2017 1 次提交
  27. 04 4月, 2017 1 次提交