Hi Wolfram, On Wed, May 10, 2023 at 8:59 AM Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> wrote: > The KingFisher board has regulators. They just need to be en-/disabled, > so we can leave the handling to devm. > > Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> > --- > > Changes since RFC: > * add 12v regulator > * add comment about the order of enabling the regulators > * use a for-loop to iterate over the regulators Thanks for the update! > --- a/drivers/pci/controller/pcie-rcar-host.c > +++ b/drivers/pci/controller/pcie-rcar-host.c > @@ -29,6 +29,7 @@ > #include <linux/phy/phy.h> > #include <linux/platform_device.h> > #include <linux/pm_runtime.h> > +#include <linux/regulator/consumer.h> > > #include "pcie-rcar.h" > > @@ -974,13 +975,18 @@ static const struct of_device_id rcar_pcie_of_match[] = { > {}, > }; > > +/* Design note 346 from Linear Technology says order is not important */ > +static const char * const rcar_pcie_supplies[] = { > + "vpcie12v", "vpcie3v3", "vpcie1v5" > +}; > + > static int rcar_pcie_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct rcar_pcie_host *host; > struct rcar_pcie *pcie; > u32 data; > - int err; > + int i, err; unsigned int i? > struct pci_host_bridge *bridge; The (lack of) reverse-Xmas-tree ordering is hurting my OCD, but that's not your fault... > @@ -992,6 +998,13 @@ static int rcar_pcie_probe(struct platform_device *pdev) > pcie->dev = dev; > platform_set_drvdata(pdev, host); > > + for (i = 0; i < ARRAY_SIZE(rcar_pcie_supplies); i++) { > + err = devm_regulator_get_enable_optional(dev, rcar_pcie_supplies[i]); > + if (err < 0 && err != -ENODEV) > + dev_err_probe(dev, err, "error enabling regulator %s\n", > + rcar_pcie_supplies[i]); Shouldn't this return, and propagate the error code upstream? > + } > + > pm_runtime_enable(pcie->dev); > err = pm_runtime_get_sync(pcie->dev); > if (err < 0) { Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds