diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2018-12-16 21:18:41 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-01-08 16:28:47 +0100 |
commit | bb1f5c7c1140e83cff20bcb2b82a942f82f7a757 (patch) | |
tree | 4b92317b43af826d559938cbed9e158e5307f52a /drivers/pci/pcie-designware.h | |
parent | ee37c6e06b6eb867cbe5cfc84f77c3aaf20be240 (diff) | |
download | barebox-bb1f5c7c1140e83cff20bcb2b82a942f82f7a757.tar.gz barebox-bb1f5c7c1140e83cff20bcb2b82a942f82f7a757.tar.xz |
PCI: designware: Add iATU Unroll feature
Port of a Linux commit a0601a47053714eecec726aea5ebcd829f817497
Add support for the new iATU Unroll mechanism that will be used from Core
version 4.80. The new Cores can support either iATU Unroll or the "old"
iATU method, now called Legacy Mode. The driver is perfectly capable of
performing well for both.
[bhelgaas: split ATU enable timeout to separate patch]
Signed-off-by: Joao Pinto <jpinto@synopsys.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
To avoid breaking i.MX6 PCIE support commit
416379f9ebded501eda882e6af0a7aafc1866700 was squashed here as well
PCI: designware: Check for iATU unroll support after initializing host
dw_pcie_iatu_unroll_enabled() reads a dbi_base register. Reading any
dbi_base register before pp->ops->host_init has been called causes
"imprecise external abort" on platforms like ARTPEC-6, where the PCIe
module is disabled at boot and first enabled in pp->ops->host_init. Move
dw_pcie_iatu_unroll_enabled() to dw_pcie_setup_rc(), since it is after
pp->ops->host_init, but before pp->iatu_unroll_enabled is actually used.
Fixes: a0601a470537 ("PCI: designware: Add iATU Unroll feature")
Tested-by: James Le Cuirot <chewi@gentoo.org>
Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Joao Pinto <jpinto@synopsys.com>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/pci/pcie-designware.h')
-rw-r--r-- | drivers/pci/pcie-designware.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pci/pcie-designware.h b/drivers/pci/pcie-designware.h index 0d777ce001..b2f492a5d6 100644 --- a/drivers/pci/pcie-designware.h +++ b/drivers/pci/pcie-designware.h @@ -42,6 +42,7 @@ struct pcie_port { u32 lanes; struct pcie_host_ops *ops; struct pci_controller pci; + u8 iatu_unroll_enabled; }; struct pcie_host_ops { |