1. 26 12月, 2020 2 次提交
    • A
      PCI: dwc: Fix inverted condition of DMA mask setup warning · 99e629f1
      Alexander Lobakin 提交于
      Commit 660c4865 ("PCI: dwc: Set 32-bit DMA mask for MSI target address
      allocation") added dma_mask_set() call to explicitly set 32-bit DMA mask
      for MSI message mapping, but for now it throws a warning on ret == 0, while
      dma_set_mask() returns 0 in case of success.
      
      Fix this by inverting the condition.
      
      [bhelgaas: join string to make it greppable]
      Fixes: 660c4865 ("PCI: dwc: Set 32-bit DMA mask for MSI target address allocation")
      Link: https://lore.kernel.org/r/20201222150708.67983-1-alobakin@pm.meSigned-off-by: NAlexander Lobakin <alobakin@pm.me>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      99e629f1
    • R
      PCI: tegra: Fix host link initialization · 275e88b0
      Rob Herring 提交于
      Commit b9ac0f9d ("PCI: dwc: Move dw_pcie_setup_rc() to DWC common
      code") broke enumeration of downstream devices on Tegra:
      
      In non-working case (next-20201211):
      
        0001:00:00.0 PCI bridge: NVIDIA Corporation Device 1ad2 (rev a1)
        0001:01:00.0 SATA controller: Marvell Technology Group Ltd. Device 9171 (rev 13)
        0005:00:00.0 PCI bridge: NVIDIA Corporation Device 1ad0 (rev a1)
      
      In working case (v5.10-rc7):
      
        0001:00:00.0 PCI bridge: Molex Incorporated Device 1ad2 (rev a1)
        0001:01:00.0 SATA controller: Marvell Technology Group Ltd. Device 9171 (rev 13)
        0005:00:00.0 PCI bridge: Molex Incorporated Device 1ad0 (rev a1)
        0005:01:00.0 PCI bridge: PLX Technology, Inc. Device 3380 (rev ab)
        0005:02:02.0 PCI bridge: PLX Technology, Inc. Device 3380 (rev ab)
        0005:03:00.0 USB controller: PLX Technology, Inc. Device 3380 (rev ab)
      
      The problem seems to be dw_pcie_setup_rc() is now called twice before and
      after the link up handling. The fix is to move Tegra's link up handling to
      .start_link() function like other DWC drivers. Tegra is a bit more
      complicated than others as it re-inits the whole DWC controller to retry
      the link. With this, the initialization ordering is restored to match the
      prior sequence.
      
      Fixes: b9ac0f9d ("PCI: dwc: Move dw_pcie_setup_rc() to DWC common code")
      Link: https://lore.kernel.org/r/20201218143905.1614098-1-robh@kernel.orgReported-by: NMian Yousaf Kaukab <ykaukab@suse.de>
      Tested-by: NMian Yousaf Kaukab <ykaukab@suse.de>
      Signed-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Jonathan Hunter <jonathanh@nvidia.com>
      Cc: Vidya Sagar <vidyas@nvidia.com>
      275e88b0
  2. 11 12月, 2020 1 次提交
  3. 10 12月, 2020 1 次提交
  4. 09 12月, 2020 1 次提交
  5. 08 12月, 2020 6 次提交
  6. 01 12月, 2020 3 次提交
  7. 19 11月, 2020 18 次提交
  8. 05 11月, 2020 1 次提交
  9. 20 10月, 2020 1 次提交
    • H
      PCI: dwc: Add link up check in dw_child_pcie_ops.map_bus() · 15b23906
      Hou Zhiqiang 提交于
      NXP Layerscape (ls1028a, ls2088a), dra7xxx and imx6 platforms are either
      programmed or statically configured to forward the error triggered by a
      link-down state (eg no connected endpoint device) on the system bus for
      PCI configuration transactions; these errors are reported as an SError
      at system level, which is fatal.
      
      Enumerating a PCI tree when the PCIe link is down is not sensible
      either, so even if the link-up check is racy (link can go down after
      map_bus() is called) add a link-up check in map_bus() to prevent issuing
      configuration transactions when the link is down.
      
      SError report:
      
       SError Interrupt on CPU2, code 0xbf000002 -- SError
       CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.9.0-rc5-next-20200914-00001-gf965d3ec86fa #67
       Hardware name: LS1046A RDB Board (DT)
       pstate: 20000085 (nzCv daIf -PAN -UAO BTYPE=--)
       pc : pci_generic_config_read+0x3c/0xe0
       lr : pci_generic_config_read+0x24/0xe0
       sp : ffff80001003b7b0
       x29: ffff80001003b7b0 x28: ffff80001003ba74
       x27: ffff000971d96800 x26: ffff00096e77e0a8
       x25: ffff80001003b874 x24: ffff80001003b924
       x23: 0000000000000004 x22: 0000000000000000
       x21: 0000000000000000 x20: ffff80001003b874
       x19: 0000000000000004 x18: ffffffffffffffff
       x17: 00000000000000c0 x16: fffffe0025981840
       x15: ffffb94c75b69948 x14: 62203a383634203a
       x13: 666e6f635f726568 x12: 202c31203d207265
       x11: 626d756e3e2d7375 x10: 656877202c307830
       x9 : 203d206e66766564 x8 : 0000000000000908
       x7 : 0000000000000908 x6 : ffff800010900000
       x5 : ffff00096e77e080 x4 : 0000000000000000
       x3 : 0000000000000003 x2 : 84fa3440ff7e7000
       x1 : 0000000000000000 x0 : ffff800010034000
       Kernel panic - not syncing: Asynchronous SError Interrupt
       CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.9.0-rc5-next-20200914-00001-gf965d3ec86fa #67
       Hardware name: LS1046A RDB Board (DT)
       Call trace:
        dump_backtrace+0x0/0x1c0
        show_stack+0x18/0x28
        dump_stack+0xd8/0x134
        panic+0x180/0x398
        add_taint+0x0/0xb0
        arm64_serror_panic+0x78/0x88
        do_serror+0x68/0x180
        el1_error+0x84/0x100
        pci_generic_config_read+0x3c/0xe0
        dw_pcie_rd_other_conf+0x78/0x110
        pci_bus_read_config_dword+0x88/0xe8
        pci_bus_generic_read_dev_vendor_id+0x30/0x1b0
        pci_bus_read_dev_vendor_id+0x4c/0x78
        pci_scan_single_device+0x80/0x100
      
      Link: https://lore.kernel.org/r/20200916054130.8685-1-Zhiqiang.Hou@nxp.comSigned-off-by: NHou Zhiqiang <Zhiqiang.Hou@nxp.com>
      [lorenzo.pieralisi@arm.com: rewrote the commit log, remove Fixes tag]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      15b23906
  10. 13 10月, 2020 4 次提交
  11. 05 10月, 2020 1 次提交
  12. 29 9月, 2020 1 次提交