]> git.itanic.dy.fi Git - linux-stable/commitdiff
PCI: bt1: Set 64-bit DMA mask
authorSerge Semin <Sergey.Semin@baikalelectronics.ru>
Fri, 13 Jan 2023 17:14:08 +0000 (20:14 +0300)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 22 Feb 2023 19:46:14 +0000 (13:46 -0600)
The DW PCIe Root Port IP core is synthesized with the 64-bit AXI address
bus.  Since the device is also equipped with the eDMA engine, explicitly
set the device DMA mask so DMA engine clients can allocate data buffers
anywhere in the 64-bit memory space.

Link: https://lore.kernel.org/r/20230113171409.30470-27-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/controller/dwc/pcie-bt1.c

index 3346770e6654794ffd5886f978a9d8e6d22c0c05..95a723a6fd4634fbc17f5d89ff5c1df2fe80ec90 100644 (file)
@@ -583,6 +583,10 @@ static int bt1_pcie_add_port(struct bt1_pcie *btpci)
        struct device *dev = &btpci->pdev->dev;
        int ret;
 
+       ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
+       if (ret)
+               return ret;
+
        btpci->dw.version = DW_PCIE_VER_460A;
        btpci->dw.dev = dev;
        btpci->dw.ops = &bt1_pcie_ops;