PCI devices on Keystone doesn't have correct dma_pfn_offset set. This patch
add capability to set the dma configuration such as dma-mask, dma_pfn_offset,
and dma ops etc using the information from DT. The prior RFCs and discussions
are available at [1] and [2] below.

[2] : https://www.mail-archive.com/[email protected]/msg790244.html
[1] : http://www.gossamer-threads.com/lists/linux/kernel/2024591

Change history:
        v5 - moved the dma_mask update in device from ARM specific API to
             of_dma_configure to allow this across other architecture as well
           - improved sanity check for DT dma-range size in of_dma_configure()
           - moved API to get parent bridge device to PCI (host-bridge.c)
        v4 - moved size adjustments in of_iommu_configure() to a separate patch
           - consistent node name comment from Rob
           - patch 6 added for dma_mask adjustment and iommu mapping size
             limiting.
        v3 - addressed comments to re-use of_dma_configure() for PCI
           - To help re-use, change of_iommu_configure() function argument
                - Move of_dma_configure to of/device.c
                - Limit the of_iommu_configure to non pci devices
        v2 - update size to coherent_dma_mask + 1 if dma-range info is missing
           - also check the np for null.
        v1 - updates based on the comments against initial RFC.
           - Added a helper function to get the OF node of the parent
           - Added an API in of_pci.c to update DMA configuration of the pci
             device.

Cc: Joerg Roedel <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Bjorn Helgaas <[email protected]>
Cc: Will Deacon <[email protected]>
Cc: Russell King <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: Suravee Suthikulpanit <[email protected]>

Acked-by: Bjorn Helgaas <[email protected]>
Acked-by: Murali Karicheri <[email protected]>

Murali Karicheri (8):
  of: iommu: add ptr to OF node arg to of_iommu_configure()
  of: move of_dma_configure() to device.c to help re-use
  of: fix size when dma-range is not used
  PCI: add helper functions pci_get[put]_host_bridge_device()
  of/pci: add of_pci_dma_configure() update dma configuration
  PCI: update dma configuration from DT
  arm: dma-mapping: limit iommu mapping size
  of: limit dma_mask of the device based on dma-range size

 arch/arm/mm/dma-mapping.c |    7 +++++
 drivers/iommu/of_iommu.c  |   10 +++++--
 drivers/of/device.c       |   69 +++++++++++++++++++++++++++++++++++++++++++++
 drivers/of/of_pci.c       |   19 +++++++++++++
 drivers/of/platform.c     |   58 ++-----------------------------------
 drivers/pci/host-bridge.c |   14 +++++++++
 drivers/pci/probe.c       |    2 ++
 include/linux/of_device.h |    2 ++
 include/linux/of_iommu.h  |    6 ++--
 include/linux/of_pci.h    |    5 ++++
 include/linux/pci.h       |    3 ++
 11 files changed, 135 insertions(+), 60 deletions(-)

-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to