On Thu, Feb 13, 2020 at 10:52 AM Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx> wrote: > > Copy the ats-supported flag into the pci_host_bridge structure. > > Signed-off-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx> > --- > drivers/pci/controller/pci-host-common.c | 1 + > drivers/pci/of.c | 9 +++++++++ > include/linux/of_pci.h | 3 +++ > 3 files changed, 13 insertions(+) > > diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c > index 250a3fc80ec6..a6ac927be291 100644 > --- a/drivers/pci/controller/pci-host-common.c > +++ b/drivers/pci/controller/pci-host-common.c > @@ -92,6 +92,7 @@ int pci_host_common_probe(struct platform_device *pdev, > return ret; > } > > + of_pci_host_check_ats(bridge); > platform_set_drvdata(pdev, bridge->bus); > return 0; > } > diff --git a/drivers/pci/of.c b/drivers/pci/of.c > index 81ceeaa6f1d5..4b8a877f1e9f 100644 > --- a/drivers/pci/of.c > +++ b/drivers/pci/of.c > @@ -576,6 +576,15 @@ int pci_parse_request_of_pci_ranges(struct device *dev, > } > EXPORT_SYMBOL_GPL(pci_parse_request_of_pci_ranges); > > +void of_pci_host_check_ats(struct pci_host_bridge *bridge) > +{ > + struct device_node *np = bridge->bus->dev.of_node; > + > + if (!np) > + return; > + > + bridge->ats_supported = of_property_read_bool(np, "ats-supported"); > +} Not really any point in a common function if we expect this to be only for ECAM hosts which it seems to be based on the binding. Otherwise, needs an export if not. Rob