Skip to content

Convert arch/arm to use iommu-dma

Robin Murphy dri-devel linux-arm-kernel linux-arm-msm linux-iommu linux-media linux-mediatek linux-samsung-soc linux-tegra lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest18 patches 31 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/18ARM/dma-mapping: Drop .dma_supported for IOMMU opsarch/arm/mm/dma-mapping.c+0 -40 replies
2/18ARM/dma-mapping: Consolidate IOMMU ops callbacksarch/arm/Kconfig arch/arm/mm/dma-mapping.c+79 -2060 replies
3/18ARM/dma-mapping: Merge IOMMU opsarch/arm/mm/dma-mapping.c+13 -280 replies
4/18iommu/dma: Add temporary hacks for arch/armdrivers/iommu/dma-iommu.c+29 -90 replies
5/18ARM/dma-mapping: Switch to iommu_dma_opsarch/arm/Kconfig arch/arm/include/asm/dma-iommu.h arch/arm/mm/dma-mapping.c +2 more+22 -9061 reply
6/18ARM/dma-mapping: Support IOMMU default domainsarch/arm/mm/dma-mapping.c+10 -70 replies
7/18iommu/arm-smmu: Remove arch/arm workarounddrivers/iommu/arm/arm-smmu/arm-smmu.c+0 -101 reply
8/18iommu/renesas: Remove arch/arm workarounddrivers/iommu/ipmmu-vmsa.c+0 -690 replies
9/18iommu/mediatek-v1: Add IOMMU_DOMAIN_DMA supportdrivers/iommu/mtk_iommu.h drivers/iommu/mtk_iommu_v1.c+48 -1071 reply
10/18iommu/msm: Add IOMMU_DOMAIN_DMA supportdrivers/iommu/msm_iommu.c+6 -13 replies
11/18iommu/omap: Add IOMMU_DOMAIN_DMA supportdrivers/iommu/omap-iommu.c+21 -11 reply
12/18iommu/tegra-gart: Add IOMMU_DOMAIN_DMA supportdrivers/iommu/tegra-gart.c+12 -53 replies
13/18iommu/tegra: Add IOMMU_DOMAIN_DMA supportdrivers/iommu/tegra-smmu.c+21 -162 replies
14/18drm/exynos: Consolidate IOMMU mapping codedrivers/gpu/drm/exynos/exynos5433_drm_decon.c drivers/gpu/drm/exynos/exynos7_drm_decon.c drivers/gpu/drm/exynos/exynos_drm_dma.c +8 more+29 -862 replies
15/18drm/nouveau/tegra: Clean up IOMMU workarounddrivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c+0 -130 replies
16/18staging/media/tegra-vde: Clean up IOMMU workarounddrivers/staging/media/tegra-vde/iommu.c+0 -128 replies
17/18media/omap3isp: Clean up IOMMU workarounddrivers/media/platform/omap3isp/isp.c drivers/media/platform/omap3isp/isp.h+3 -685 replies
18/18ARM/dma-mapping: Remove legacy dma-iommu APIarch/arm/common/dmabounce.c arch/arm/include/asm/device.h arch/arm/include/asm/dma-iommu.h +2 more+11 -2660 replies

Reviews trailers per patch

2 of 18 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchWill DeaconMarek SzyprowskiFrank WunderlichYong WuInki Dae
SeriesA-b T-b T-b
1/18
2/18
3/18
4/18
5/18
6/18
7/18A-b
8/18
9/18T-b
10/18
11/18
12/18
13/18
14/18A-b
15/18
16/18
17/18
18/18

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.

Read the v1 thread

Cover letter [PATCH 00/18] Convert arch/arm to use iommu-dma

Hi all,

After 5 years or so of intending to get round to this, finally the time comes! The changes themselves actualy turn out to be relatively mechanical; the bigger concern appears to be how to get everything merged across about 5 diffferent trees given the dependencies.

I've lightly boot-tested things on Rockchip RK3288 and Exynos 4412 (Odroid-U3), to the degree that their display drivers should be using IOMMU-backed buffers and don't explode (the Odroid doesn't manage to send a working HDMI signal to the one monitor I have that it actually detects, but that's a pre-existing condition...) Confirmation that the Mediatek, OMAP and Tegra changes work will be most welcome.

Patches are based on 5.9-rc1, branch available here:

git://linux-arm.org/linux-rm arm/dma

Robin.

Robin Murphy (18):
ARM/dma-mapping: Drop .dma_supported for IOMMU ops ARM/dma-mapping: Consolidate IOMMU ops callbacks ARM/dma-mapping: Merge IOMMU ops iommu/dma: Add temporary hacks for arch/arm ARM/dma-mapping: Switch to iommu_dma_ops ARM/dma-mapping: Support IOMMU default domains iommu/arm-smmu: Remove arch/arm workaround iommu/renesas: Remove arch/arm workaround iommu/mediatek-v1: Add IOMMU_DOMAIN_DMA support iommu/msm: Add IOMMU_DOMAIN_DMA support iommu/omap: Add IOMMU_DOMAIN_DMA support iommu/tegra-gart: Add IOMMU_DOMAIN_DMA support iommu/tegra: Add IOMMU_DOMAIN_DMA support drm/exynos: Consolidate IOMMU mapping code drm/nouveau/tegra: Clean up IOMMU workaround staging/media/tegra-vde: Clean up IOMMU workaround media/omap3isp: Clean up IOMMU workaround ARM/dma-mapping: Remove legacy dma-iommu API

 arch/arm/Kconfig                              |   28 +-
 arch/arm/common/dmabounce.c                   |    1 -
 arch/arm/include/asm/device.h                 |    9 -
 arch/arm/include/asm/dma-iommu.h              |   37 -
 arch/arm/mm/dma-mapping.c                     | 1198 +----------------
 drivers/gpu/drm/exynos/exynos5433_drm_decon.c |    5 +-
 drivers/gpu/drm/exynos/exynos7_drm_decon.c    |    5 +-
 drivers/gpu/drm/exynos/exynos_drm_dma.c       |   61 +-
 drivers/gpu/drm/exynos/exynos_drm_drv.h       |    6 +-
 drivers/gpu/drm/exynos/exynos_drm_fimc.c      |    5 +-
 drivers/gpu/drm/exynos/exynos_drm_fimd.c      |    5 +-
 drivers/gpu/drm/exynos/exynos_drm_g2d.c       |    5 +-
 drivers/gpu/drm/exynos/exynos_drm_gsc.c       |    5 +-
 drivers/gpu/drm/exynos/exynos_drm_rotator.c   |    5 +-
 drivers/gpu/drm/exynos/exynos_drm_scaler.c    |    6 +-
 drivers/gpu/drm/exynos/exynos_mixer.c         |    7 +-
 .../drm/nouveau/nvkm/engine/device/tegra.c    |   13 -
 drivers/iommu/Kconfig                         |    8 -
 drivers/iommu/arm/arm-smmu/arm-smmu.c         |   10 -
 drivers/iommu/ipmmu-vmsa.c                    |   69 -
 drivers/iommu/msm_iommu.c                     |    7 +-
 drivers/iommu/mtk_iommu.h                     |    2 -
 drivers/iommu/mtk_iommu_v1.c                  |  153 +--
 drivers/iommu/omap-iommu.c                    |   22 +-
 drivers/iommu/tegra-gart.c                    |   17 +-
 drivers/iommu/tegra-smmu.c                    |   37 +-
 drivers/media/platform/Kconfig                |    1 -
 drivers/media/platform/omap3isp/isp.c         |   68 +-
 drivers/media/platform/omap3isp/isp.h         |    3 -
 drivers/staging/media/tegra-vde/iommu.c       |   12 -
 30 files changed, 150 insertions(+), 1660 deletions(-)
 delete mode 100644 arch/arm/include/asm/dma-iommu.h
Signature · 1 line
2.28.0.dirty