On Wed, Mar 11, 2020 at 01:44:58PM +0100, Jean-Philippe Brucker wrote: > When setting up a generic host on a device-tree based system, copy the > ats-supported flag into the pci_host_bridge structure. > > Signed-off-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx> > --- > v1->v2: keep the helper in pci-host-common.c > --- > drivers/pci/controller/pci-host-common.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c > index 250a3fc80ec6..2e800bc6ae7a 100644 > --- a/drivers/pci/controller/pci-host-common.c > +++ b/drivers/pci/controller/pci-host-common.c > @@ -54,6 +54,16 @@ static struct pci_config_window *gen_pci_init(struct device *dev, > return ERR_PTR(err); > } > > +static 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"); > +} > + > int pci_host_common_probe(struct platform_device *pdev, > struct pci_ecam_ops *ops) > { > @@ -92,6 +102,7 @@ int pci_host_common_probe(struct platform_device *pdev, > return ret; > } > > + of_pci_host_check_ats(bridge); I would prefer to write this as a predicate instead of having the assignment be a side-effect, e.g., bridge->ats_supported = of_pci_host_ats_supported(bridge); If that works for you, Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > platform_set_drvdata(pdev, bridge->bus); > return 0; > } > -- > 2.25.1 >