On Wed, Nov 16, 2016 at 03:29:24PM +0000, Lorenzo Pieralisi wrote:
> 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 <[email protected]>
> Reviewed-by: Robin Murphy <[email protected]>
> Reviewed-by: Tomasz Nowicki <[email protected]>
> Tested-by: Hanjun Guo <[email protected]>
> Tested-by: Tomasz Nowicki <[email protected]>
> Cc: Will Deacon <[email protected]>
> Cc: Hanjun Guo <[email protected]>
> Cc: Robin Murphy <[email protected]>
> Cc: Joerg Roedel <[email protected]>
> ---
> drivers/iommu/iommu.c | 40 ++++++++++++++++++++++++++++++++++++++++
> drivers/iommu/of_iommu.c | 39 ---------------------------------------
> include/linux/iommu.h | 14 ++++++++++++++
> include/linux/of_iommu.h | 12 ++++++++++--
> 4 files changed, 64 insertions(+), 41 deletions(-)
Acked-by: Will Deacon <[email protected]>
Will