diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2021-05-04 10:43:30 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2021-05-04 10:43:30 -0500 |
commit | 4772ade27306551193c992fb9d1409ce6ed03a21 (patch) | |
tree | 54fb90c7a4399aab0e29c1063182ab45605ac10b /drivers/pci | |
parent | 2a2dd35fee87b7a0d373cd41d90cecf6348cdcbc (diff) | |
parent | 1c4422f22605ec0f4455400c52a31898edcda425 (diff) | |
download | linux-4772ade27306551193c992fb9d1409ce6ed03a21.tar.bz2 |
Merge branch 'remotes/lorenzo/pci/xilinx'
- Add support for coherent PCIe DMA traffic using CCI (Bharat Kumar Gogada)
- Add optional "dma-coherent" DT property (Bharat Kumar Gogada)
* remotes/lorenzo/pci/xilinx:
PCI: xilinx-nwl: Add optional "dma-coherent" property
PCI: xilinx-nwl: Enable coherent PCIe DMA traffic using CCI
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/controller/pcie-xilinx-nwl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c index 07e36661bbc2..8689311c5ef6 100644 --- a/drivers/pci/controller/pcie-xilinx-nwl.c +++ b/drivers/pci/controller/pcie-xilinx-nwl.c @@ -26,6 +26,7 @@ /* Bridge core config registers */ #define BRCFG_PCIE_RX0 0x00000000 +#define BRCFG_PCIE_RX1 0x00000004 #define BRCFG_INTERRUPT 0x00000010 #define BRCFG_PCIE_RX_MSG_FILTER 0x00000020 @@ -128,6 +129,7 @@ #define NWL_ECAM_VALUE_DEFAULT 12 #define CFG_DMA_REG_BAR GENMASK(2, 0) +#define CFG_PCIE_CACHE GENMASK(7, 0) #define INT_PCI_MSI_NR (2 * 32) @@ -675,6 +677,11 @@ static int nwl_pcie_bridge_init(struct nwl_pcie *pcie) nwl_bridge_writel(pcie, CFG_ENABLE_MSG_FILTER_MASK, BRCFG_PCIE_RX_MSG_FILTER); + /* This routes the PCIe DMA traffic to go through CCI path */ + if (of_dma_is_coherent(dev->of_node)) + nwl_bridge_writel(pcie, nwl_bridge_readl(pcie, BRCFG_PCIE_RX1) | + CFG_PCIE_CACHE, BRCFG_PCIE_RX1); + err = nwl_wait_for_link(pcie); if (err) return err; |