[PATCH 03/10] iommu/ipmmu-vmsa: Teach xlate() to skip disabled iommus
From: Magnus Damm
Date: Thu Mar 17 2016 - 12:26:23 EST
From: Magnus Damm <damm+renesas@xxxxxxxxxxxxx>
Right now the ->xlate() call gets invoked even though
the iommu device has status = "disabled" in DT, so
make sure we skip over disabled devices.
In my mind it would make sense to have this at some
shared level, but I guess some users may want to
configure the iommu regardless of DT state.
Signed-off-by: Magnus Damm <damm+renesas@xxxxxxxxxxxxx>
---
drivers/iommu/ipmmu-vmsa.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- 0017/drivers/iommu/ipmmu-vmsa.c
+++ work/drivers/iommu/ipmmu-vmsa.c 2016-03-18 00:16:51.200513000 +0900
@@ -890,7 +890,13 @@ static struct iommu_group *ipmmu_device_
static int ipmmu_of_xlate_dma(struct device *dev,
struct of_phandle_args *spec)
{
- /* dummy callback to satisfy of_iommu_configure() */
+ /* If the IPMMU device is disabled in DT then return error
+ * to make sure the of_iommu code does not install ops
+ * even though the iommu device is disabled
+ */
+ if (!of_device_is_available(spec->np))
+ return -ENODEV;
+
return 0;
}
#endif