[PATCH v5 0/8] PCI: get DMA configuration from parent device

From: Murali Karicheri
Date: Tue Jan 27 2015 - 16:02:20 EST


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/linux-kernel@xxxxxxxxxxxxxxx/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 <joro@xxxxxxxxxx>
Cc: Grant Likely <grant.likely@xxxxxxxxxx>
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx>

Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Acked-by: Murali Karicheri <m-karicheri2@xxxxxx>

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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/