> Am 08.10.2024 um 20:20 schrieb Robin Murphy <robin.murphy@xxxxxxx>: >> The -ETIMEDOUT seems to come from of_iommu_configure(). > > Oof, yeah, now we've wound up with the opposite problem that because it's the generic "iommus" binding, it gets as far as of_iommu_xlate() but now the NULL fwnode no longer matches the phandle target so that thinks it's waiting for an instance which hasn't registered yet :( > > OK, different track, does the diff below fare any better? (I've not written it up fully yet as the DRA7 special cases will need some more work still) > > Thanks, > Robin. > > ----->8----- > > diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c > index c9528065a59a..44e09d60e861 100644 > --- a/drivers/iommu/omap-iommu.c > +++ b/drivers/iommu/omap-iommu.c > @@ -1723,12 +1723,19 @@ static void omap_iommu_release_device(struct device *dev) > > } > > +int omap_iommu_of_xlate(struct device *dev, const struct of_phandle_args *args) > +{ > + /* TODO: collect args->np to save re-parsing in probe above */ > + return 0; > +} > + > static const struct iommu_ops omap_iommu_ops = { > .identity_domain = &omap_iommu_identity_domain, > .domain_alloc_paging = omap_iommu_domain_alloc_paging, > .probe_device = omap_iommu_probe_device, > .release_device = omap_iommu_release_device, > .device_group = generic_single_device_group, > + .of_xlate = omap_iommu_of_xlate, > .pgsize_bitmap = OMAP_IOMMU_PGSIZES, > .default_domain_ops = &(const struct iommu_domain_ops) { > .attach_dev = omap_iommu_attach_dev, Unfortunately no change :( A very tiny issue was that the second argument can not have a const specifier in the v6.8 series, but starting with v6.9 it should be there. But since 6.8 and 6.9 are already EOL, there will be no back-ports anyways. And if someone does really backport (like me for testing purposes) it is obvious what to do. BR and thanks, Nikolaus