The DT DMA offset and mask/size setup for the DMA API only parses the first dma-ranges entry. This is not sufficient for some platforms. As we already support multiple ranges entries for the PCI specific parsing functions, let's refactor those to be general enough to handle both PCI and normal buses. Then we can have one instance of range parsing code by using it in of_dma_get_range().
Rob Rob Herring (7): of/address: Move range parser code out of CONFIG_PCI microblaze: Drop using struct of_pci_range.pci_space field powerpc: Drop using struct of_pci_range.pci_space field of: Drop struct of_pci_range.pci_space field of/address: Rework of_pci_range parsing for non-PCI buses of/address: use range parser for of_dma_get_range of/address: Support multiple 'dma-ranges' entries arch/microblaze/pci/pci-common.c | 7 +- arch/powerpc/kernel/pci-common.c | 2 +- drivers/of/address.c | 273 +++++++++++++++++-------------- include/linux/of_address.h | 13 +- 4 files changed, 157 insertions(+), 138 deletions(-) base-commit: bb6d3fb354c5ee8d6bde2d576eb7220ea09862b9 -- 2.20.1