remarkable-linux/drivers/iommu
Alex Williamson 1460432cb5 iommu: Add iommu_device_group callback and iommu_group sysfs entry
An IOMMU group is a set of devices for which the IOMMU cannot
distinguish transactions.  For PCI devices, a group often occurs
when a PCI bridge is involved.  Transactions from any device
behind the bridge appear to be sourced from the bridge itself.
We leave it to the IOMMU driver to define the grouping restraints
for their platform.

Using this new interface, the group for a device can be retrieved
using the iommu_device_group() callback.  Users will compare the
value returned against the value returned for other devices to
determine whether they are part of the same group.  Devices with
no group are not translated by the IOMMU.  There should be no
expectations about the group numbers as they may be arbitrarily
assigned by the IOMMU driver and may not be persistent across boots.

We also provide a sysfs interface to the group numbers here so
that userspace can understand IOMMU dependencies between devices
for managing safe, userspace drivers.

[Some code changes by Joerg Roedel <joerg.roedel@amd.com>]

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2011-11-15 12:22:23 +01:00
..
amd_iommu.c Merge branches 'amd/fixes', 'debug/dma-api', 'arm/omap', 'arm/msm', 'core', 'iommu/fault-reporting' and 'api/iommu-ops-per-bus' into next 2011-10-21 14:38:55 +02:00
amd_iommu_init.c iommu/amd: Move missing parts to drivers/iommu 2011-06-21 10:49:31 +02:00
amd_iommu_proto.h iommu/amd: Move missing parts to drivers/iommu 2011-06-21 10:49:31 +02:00
amd_iommu_types.h Merge branches 'amd/transparent-bridge' and 'core' 2011-06-21 11:14:10 +02:00
dmar.c Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-10-26 16:17:32 +02:00
intel-iommu.c intel-iommu: now needs export.h for EXPORT_SYMBOL_GPL 2011-10-31 19:32:14 -04:00
intr_remapping.c Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-10-26 16:17:32 +02:00
intr_remapping.h x86/ia64: intel-iommu: move to drivers/iommu/ 2011-06-21 10:49:30 +02:00
iommu.c iommu: Add iommu_device_group callback and iommu_group sysfs entry 2011-11-15 12:22:23 +01:00
iova.c x86/ia64: intel-iommu: move to drivers/iommu/ 2011-06-21 10:49:30 +02:00
Kconfig Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu 2011-10-30 15:46:19 -07:00
Makefile Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu 2011-10-30 15:46:19 -07:00
msm_iommu.c iommu/msm: Use bus_set_iommu instead of register_iommu 2011-10-21 14:37:23 +02:00
msm_iommu_dev.c
omap-iommu-debug.c omap: iommu: omapify 'struct iommu' and exposed API 2011-08-26 11:46:01 +02:00
omap-iommu.c Merge branches 'amd/fixes', 'debug/dma-api', 'arm/omap', 'arm/msm', 'core', 'iommu/fault-reporting' and 'api/iommu-ops-per-bus' into next 2011-10-21 14:38:55 +02:00
omap-iovmm.c iommu/omap: ->unmap() should return order of unmapped page 2011-09-05 15:14:37 +02:00