[PATCH 00/10] Let IOMMU core know about individual IOMMUs

Joerg Roedel
2017-02-03T15:18:21Z

Hi,

the IOMMU core code already has two ways of representing
individual hardware IOMMUs. One is the sysfs code and the
other is the newer iommu_register_instance interface. These
two interfaces are special purpose and can be unified.

This unification is attempted in this patch-set. It
introduces an extensible 'struct iommu_device' which
represents a hardware IOMMU in the IOMMU core code.

For now the struct contains a pointer to the iommu_ops, which
is a step to get rid of the per-bus iommu_ops, and a pointer
to a firmware-node structure.

The patches have been tested on x86 hardware and an AMD Seattle
ARM64 system.

Please review, test and provide feedback!

Thanks a lot,

Joerg

Joerg Roedel (10):
iommu: Rename iommu_get_instance()
iommu: Rename struct iommu_device
iommu: Introduce new 'struct iommu_device'
iommu: Add sysfs bindings for struct iommu_device
iommu: Make iommu_device_link/unlink take a struct iommu_device
iommu/arm-smmu: Make use of the iommu_register interface
iommu/msm: Make use of iommu_device_register interface
iommu/mediatek: Make use of iommu_device_register interface
iommu/exynos: Make use of iommu_device_register interface
iommu: Remove iommu_register_instance interface

drivers/acpi/arm64/iort.c | 2 +-
drivers/iommu/amd_iommu.c | 18 ++++++----
drivers/iommu/amd_iommu_init.c | 9 +++--
drivers/iommu/amd_iommu_types.h | 4 +--
drivers/iommu/arm-smmu-v3.c | 21 ++++++++++--
drivers/iommu/arm-smmu.c | 31 ++++++++++++++++-
drivers/iommu/dmar.c | 20 +++++++----
drivers/iommu/exynos-iommu.c | 18 ++++++++--
drivers/iommu/intel-iommu.c | 19 ++++++-----
drivers/iommu/iommu-sysfs.c | 61 +++++++++++++++-------------------
drivers/iommu/iommu.c | 68 +++++++++++++++++---------------------
drivers/iommu/msm_iommu.c | 73 ++++++++++++++++++++++++++++++++++++++++-
drivers/iommu/msm_iommu.h | 3 ++
drivers/iommu/mtk_iommu.c | 27 ++++++++++++++-
drivers/iommu/mtk_iommu.h | 2 ++
include/linux/intel-iommu.h | 3 +-
include/linux/iommu.h | 41 ++++++++++++++---------
include/linux/of_iommu.h | 8 +----
18 files changed, 298 insertions(+), 130 deletions(-)

--
1.9.1