iommu/of: Prepare for deferred IOMMU configuration
authorRobin Murphy <robin.murphy@arm.com>
Mon, 10 Apr 2017 11:20:57 +0000 (16:50 +0530)
committerJoerg Roedel <jroedel@suse.de>
Thu, 20 Apr 2017 14:31:06 +0000 (16:31 +0200)
commitd7b0558230e444f29488fcee0b0b561015d16f8a
treecbe9076d119c98aa9f0562c2d2f5dbb57141e16a
parent2a0c57545a291f257cd231b1c4b18285b84608d8
iommu/of: Prepare for deferred IOMMU configuration

IOMMU configuration represents unchanging properties of the hardware,
and as such should only need happen once in a device's lifetime, but
the necessary interaction with the IOMMU device and driver complicates
exactly when that point should be.

Since the only reasonable tool available for handling the inter-device
dependency is probe deferral, we need to prepare of_iommu_configure()
to run later than it is currently called (i.e. at driver probe rather
than device creation), to handle being retried, and to tell whether a
not-yet present IOMMU should be waited for or skipped (by virtue of
having declared a built-in driver or not).

Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/of_iommu.c