• Murali Karicheri's avatar
    PCI: Update DMA configuration from DT · de335bb4
    Murali Karicheri authored
    If there is a DT node available for the root bridge's parent device, use
    the DMA configuration from that device node.  For example, Keystone PCI
    devices would require dma_pfn_offset to be set correctly in the device
    structure of the PCI device in order to have the correct DMA mask.  The DT
    node will have dma-ranges defined for this.  Also support using the DT
    property dma-coherent to allow coherent DMA operation by the PCI device.
    
    Use the new helper function of_pci_dma_configure() to update the device DMA
    configuration.  This fixes DMA on systems where DMA addresses are a
    constant offset from CPU physical addresses.
    
    Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> (AMD Seattle)
    Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Acked-by: default avatarWill Deacon <will.deacon@arm.com>
    CC: Joerg Roedel <joro@8bytes.org>
    CC: Grant Likely <grant.likely@linaro.org>
    CC: Rob Herring <robh+dt@kernel.org>
    CC: Russell King <linux@arm.linux.org.uk>
    CC: Arnd Bergmann <arnd@arndb.de>
    de335bb4
probe.c 57.2 KB