From: Laurentiu Tudor <laurentiu.tu...@nxp.com> This series introduces a few new dma unmap and sync api variants that, on top of what the originals do, return the virtual address corresponding to the input dma address. In order to do that a new dma map op is added, .get_virt_addr that takes the input dma address and returns the virtual address backing it up. The second patch adds an implementation for this new dma map op in the generic iommu dma glue code and wires it in. The third patch updates the dpaa2-eth driver to use the new apis.
Context: https://lkml.org/lkml/2019/5/31/684 Changes in v3 * drop useless check for null iommu domain (Robin) * add dma_can_unmap_by_dma_addr() to check availability of these new apis (Christoph) * make apis work with direct dma (Christoph) * add support for swiotlb (Robin) * simplify dpaa2_eth driver code by using dma_unmap_single_desc() instead of dma_unmap_page_desc() Changes in v2 * use "dma_unmap_*_desc" names (Robin) * return va/page instead of phys addr (Robin) Changes since RFC * completely changed the approach: added unmap and sync variants that return the phys addr instead of adding a new dma to phys conversion function Laurentiu Tudor (4): dma-mapping: introduce new dma unmap and sync api variants iommu/dma: wire-up new dma map op .get_virt_addr swiotlb: make new {unmap,sync}_desc dma apis work with swiotlb dpaa2_eth: use new unmap and sync dma api variants drivers/iommu/dma-iommu.c | 13 ++++ .../net/ethernet/freescale/dpaa2/dpaa2-eth.c | 43 +++++----- .../net/ethernet/freescale/dpaa2/dpaa2-eth.h | 1 - include/linux/dma-mapping.h | 45 +++++++++++ include/linux/swiotlb.h | 7 ++ kernel/dma/mapping.c | 78 +++++++++++++++++++ kernel/dma/swiotlb.c | 8 ++ 7 files changed, 169 insertions(+), 26 deletions(-) -- 2.17.1 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu