alistair23-linux/drivers/iommu
Lorenzo Pieralisi e4f10ffe4c iommu: Make of_iommu_set/get_ops() DT agnostic
The of_iommu_{set/get}_ops() API is used to associate a device
tree node with a specific set of IOMMU operations. The same
kernel interface is required on systems booting with ACPI, where
devices are not associated with a device tree node, therefore
the interface requires generalization.

The struct device fwnode member represents the fwnode token associated
with the device and the struct it points at is firmware specific;
regardless, it is initialized on both ACPI and DT systems and makes an
ideal candidate to use it to associate a set of IOMMU operations to a
given device, through its struct device.fwnode member pointer, paving
the way for representing per-device iommu_ops (ie an iommu instance
associated with a device).

Convert the DT specific of_iommu_{set/get}_ops() interface to
use struct device.fwnode as a look-up token, making the interface
usable on ACPI systems and rename the data structures and the
registration API so that they are made to represent their usage
more clearly.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Tomasz Nowicki <tn@semihalf.com>
Tested-by: Hanjun Guo <hanjun.guo@linaro.org>
Tested-by: Tomasz Nowicki <tn@semihalf.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Hanjun Guo <hanjun.guo@linaro.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2016-11-29 15:57:43 +00:00
..
amd_iommu.c IOMMU Updates for Linux v4.9 2016-10-11 12:52:41 -07:00
amd_iommu_init.c iommu/amd: Use standard bitmap operation to set bitmap 2016-09-19 15:49:01 +02:00
amd_iommu_proto.h Merge branch 'x86/amd-avic' into x86/amd 2016-09-05 12:43:16 +02:00
amd_iommu_types.h KVM updates for v4.9-rc1 2016-10-06 10:49:01 -07:00
amd_iommu_v2.c IOMMU Updates for Linux v4.8 2016-08-01 07:25:10 -04:00
arm-smmu-v3.c iommu/arm-smmu: Constify iommu_gather_ops structures 2016-11-29 15:57:40 +00:00
arm-smmu.c iommu/arm-smmu: Set SMTNMB_TLBEN in ACR to enable caching of bypass entries 2016-11-29 15:57:41 +00:00
dma-iommu.c iommu/dma: Avoid PCI host bridge windows 2016-09-16 09:34:22 +01:00
dmar.c IOMMU Updates for Linux v4.8 2016-08-01 07:25:10 -04:00
exynos-iommu.c iommu/exynos: Fix error handling for of_platform_device_create 2016-08-09 17:27:48 +02:00
fsl_pamu.c
fsl_pamu.h
fsl_pamu_domain.c
fsl_pamu_domain.h
intel-iommu.c iommu/vt-d: Fix dead-locks in disable_dmar_iommu() path 2016-11-08 15:08:26 +01:00
intel-svm.c mm: do not pass mm_struct into handle_mm_fault 2016-07-26 16:19:19 -07:00
intel_irq_remapping.c
io-pgtable-arm-v7s.c iommu/io-pgtable-arm: Use for_each_set_bit to simplify the code 2016-11-29 15:57:40 +00:00
io-pgtable-arm.c iommu/io-pgtable-arm: Use const and __initconst for iommu_gather_ops structures 2016-11-29 15:57:41 +00:00
io-pgtable.c iommu/io-pgtable: Fix a brace coding style issue. 2016-04-05 15:34:29 +02:00
io-pgtable.h iommu/io-pgtable: Add MTK 4GB mode in Short-descriptor 2016-04-05 15:39:37 +02:00
iommu-sysfs.c
iommu-traces.c
iommu.c iommu: Make of_iommu_set/get_ops() DT agnostic 2016-11-29 15:57:43 +00:00
iova.c iommu/iova: Disable preemption around use of this_cpu_ptr() 2016-06-27 13:07:45 +02:00
ipmmu-vmsa.c iommu/ipmmu-vmsa: Fix wrong error handle of ipmmu_add_device 2016-09-05 12:53:58 +02:00
irq_remapping.c x86/cpufeature: Replace cpu_has_apic with boot_cpu_has() usage 2016-04-13 11:37:41 +02:00
irq_remapping.h
Kconfig iommu/arm-smmu: Support non-PCI devices with SMMUv3 2016-09-16 09:34:17 +01:00
Makefile Merge branches 'x86/amd', 'x86/vt-d', 'arm/exynos', 'arm/mediatek', 'arm/msm', 'arm/rockchip', 'arm/smmu' and 'core' into next 2016-07-26 16:02:37 +02:00
msm_iommu.c iommu/msm: use generic ARMV7S short descriptor pagetable ops 2016-06-21 13:57:13 +02:00
msm_iommu.h iommu/msm: Add DT adaptation 2016-06-21 13:56:00 +02:00
msm_iommu_hw-8xxx.h
mtk_iommu.c iommu/mediatek: move the common struct into header file 2016-06-21 11:36:19 +02:00
mtk_iommu.h iommu/mediatek: Mark static functions in headers inline 2016-08-09 15:46:46 +02:00
mtk_iommu_v1.c iommu/mediatek: Make mtk_iommu_pm_ops static 2016-06-21 11:54:06 +02:00
of_iommu.c iommu: Make of_iommu_set/get_ops() DT agnostic 2016-11-29 15:57:43 +00:00
omap-iommu-debug.c iommu/omap: Align code with open parenthesis 2016-04-05 17:53:20 +02:00
omap-iommu.c iommu/omap: Use WARN_ON for page table alignment check 2016-04-05 17:53:20 +02:00
omap-iommu.h
omap-iopgtable.h
rockchip-iommu.c iommu/rockchip: Prepare to support generic DMA mapping 2016-06-27 14:50:08 +02:00
s390-iommu.c iommu/s390: simplify registration of I/O address translation parameters 2016-09-22 13:42:28 +02:00
tegra-gart.c
tegra-smmu.c