On Thu, 31 Oct 2013 18:53:22 +0100 Stephen Warren <swarren@xxxxxxxxxxxxx> wrote: ... > We're talking about memory-mapped on-SoC devices here, that generally > only exist inside Tegra SoCs. > > Even ignoring that (i.e. expanding the argument to arbitrary modules), > having drivers that perform bus-master transactions call a function > of_iommu_attach() or similar, which does nothing if the device isn't > behind an IOMMU but otherwise does whatever is required, seems like it > isn't much of an imposition. Where do you expect of_iommu_attach() to be called? I thought something below: Modified drivers/base/dd.c diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 35fa368..92ec2e9 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -278,6 +278,10 @@ static int really_probe(struct device *dev, struct device_driver *drv) if (ret) goto probe_failed; + ret = of_iommu_attach(dev); + if (ret) + goto probe_failed; + if (driver_sysfs_add(dev)) { printk(KERN_ERR "%s: driver_sysfs_add(%s) failed\n", __func__, dev_name(dev)); -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html