cleanup unused or almost unused IOMMU APIs and the FSL PAMU driver v3

Christoph Hellwig
2021-04-01T17:47:35Z

Hi all,

there are a bunch of IOMMU APIs that are entirely unused, or only used as
a private communication channel between the FSL PAMU driver and it's only
consumer, the qbman portal driver.

So this series drops a huge chunk of entirely unused FSL PAMU
functionality, then drops all kinds of unused IOMMU APIs, and then
replaces what is left of the iommu_attrs with properly typed, smaller
and easier to use specific APIs.

Changes since v2:
- remove a comment fragment a little bit earlier
- fix the aperture end passed to pamu_config_ppaace
- fix a few trivial typos
- remove more unused arguments to pamu_config_ppaace
- do not accidentally enable lazy flushing for non-dma domains

Changes since v1:
- use a different way to control strict flushing behavior (from Robin)
- remove the iommu_cmd_line wrappers
- simplify the pagetbl quirks a little more
- slightly improved patch ordering
- better changelogs

Diffstat:
arch/powerpc/include/asm/fsl_pamu_stash.h | 12
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 5
drivers/iommu/amd/iommu.c | 23
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 75 ---
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 1
drivers/iommu/arm/arm-smmu/arm-smmu.c | 111 +---
drivers/iommu/arm/arm-smmu/arm-smmu.h | 2
drivers/iommu/dma-iommu.c | 9
drivers/iommu/fsl_pamu.c | 293 -----------
drivers/iommu/fsl_pamu.h | 12
drivers/iommu/fsl_pamu_domain.c | 688 ++--------------------------
drivers/iommu/fsl_pamu_domain.h | 46 -
drivers/iommu/intel/iommu.c | 95 ---
drivers/iommu/iommu.c | 118 +---
drivers/soc/fsl/qbman/qman_portal.c | 55 --
drivers/vfio/vfio_iommu_type1.c | 31 -
drivers/vhost/vdpa.c | 10
include/linux/io-pgtable.h | 4
include/linux/iommu.h | 76 ---
19 files changed, 203 insertions(+), 1463 deletions(-)