On Wed, Nov 20, 2019 at 11:00 AM Will Deacon <will@xxxxxxxxxx> wrote: > > Commit 8e12257dead7 ("of: property: Add device link support for iommus, > mboxes and io-channels") added device link support for IOMMU linkages > described using the "iommus" property. For PCI devices, this property > is not present and instead the "iommu-map" property is used on the host > bridge node to map the endpoint RequesterIDs to their corresponding > IOMMU instance. > > Add support for "iommu-map" to the device link supplier bindings so that > probing of PCI devices can be deferred until after the IOMMU is > available. > > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: Rob Herring <robh@xxxxxxxxxx> > Cc: Saravana Kannan <saravanak@xxxxxxxxxx> > Cc: Robin Murphy <robin.murphy@xxxxxxx> > Signed-off-by: Will Deacon <will@xxxxxxxxxx> > --- > > Applies against driver-core/driver-core-next. > Tested on AMD Seattle (arm64). > > drivers/of/property.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/of/property.c b/drivers/of/property.c > index 0fa04692e3cc..37e0d408430d 100644 > --- a/drivers/of/property.c > +++ b/drivers/of/property.c > @@ -1190,10 +1190,20 @@ DEFINE_SIMPLE_PROP(mboxes, "mboxes", "#mbox-cells") > DEFINE_SIMPLE_PROP(io_channels, "io-channel", "#io-channel-cells") > DEFINE_SUFFIX_PROP(regulators, "-supply", NULL) > > +static struct device_node *parse_iommu_maps(struct device_node *np, > + const char *prop_name, int index) > +{ > + if (strcmp(prop_name, "iommu-map")) > + return NULL; > + > + return of_parse_phandle(np, prop_name, (index * 4) + 1); > +} > + > static const struct supplier_bindings of_supplier_bindings[] = { > { .parse_prop = parse_clocks, }, > { .parse_prop = parse_interconnects, }, > { .parse_prop = parse_iommus, }, > + { .parse_prop = parse_iommu_maps, }, > { .parse_prop = parse_mboxes, }, > { .parse_prop = parse_io_channels, }, > { .parse_prop = parse_regulators, }, Heh... a lot smaller than I thought this would be. Acked-by: Saravana Kannan <saravanak@xxxxxxxxxx> -Saravana