Message ID | 20220903-gpiod_get_from_of_node-remove-v1-7-b29adfb27a6c@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Get rid of [devm_]gpiod_get_from_of_node() public APIs | expand |
On Sun, Sep 04, 2022 at 11:30:59PM -0700, Dmitry Torokhov wrote: > I would like to stop exporting OF-specific gpiod_get_from_of_node() > so that gpiolib can be cleaned a bit, so let's switch to the generic > fwnode property API. > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> > > diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c > index a2c3c207a04b..d83817d3ff86 100644 > --- a/drivers/pci/controller/pcie-apple.c > +++ b/drivers/pci/controller/pcie-apple.c > @@ -516,8 +516,8 @@ static int apple_pcie_setup_port(struct apple_pcie *pcie, > u32 stat, idx; > int ret, i; > > - reset = gpiod_get_from_of_node(np, "reset-gpios", 0, > - GPIOD_OUT_LOW, "PERST#"); > + reset = fwnode_gpiod_get_index(of_fwnode_handle(np), > + "reset", 0, GPIOD_OUT_LOW, "PERST#"); Hmm, I am looking at the driver and it leaks the reset gpio on unbind/unload. I guess it does not matter in practice, but still nice not to leak. Thankfully it is easy to cure by switching to devm option: devm_fwnode_gpiod_get(). I'll send and updated patch with a new justification. Thanks.
On Tue, Sep 6, 2022 at 2:19 AM Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > On Sun, Sep 04, 2022 at 11:30:59PM -0700, Dmitry Torokhov wrote: > > I would like to stop exporting OF-specific gpiod_get_from_of_node() > > so that gpiolib can be cleaned a bit, so let's switch to the generic > > fwnode property API. > > > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> > > > > diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c > > index a2c3c207a04b..d83817d3ff86 100644 > > --- a/drivers/pci/controller/pcie-apple.c > > +++ b/drivers/pci/controller/pcie-apple.c > > @@ -516,8 +516,8 @@ static int apple_pcie_setup_port(struct apple_pcie *pcie, > > u32 stat, idx; > > int ret, i; > > > > - reset = gpiod_get_from_of_node(np, "reset-gpios", 0, > > - GPIOD_OUT_LOW, "PERST#"); > > + reset = fwnode_gpiod_get_index(of_fwnode_handle(np), > > + "reset", 0, GPIOD_OUT_LOW, "PERST#"); > > Hmm, I am looking at the driver and it leaks the reset gpio on > unbind/unload. I guess it does not matter in practice, but still nice > not to leak. Thankfully it is easy to cure by switching to devm option: > devm_fwnode_gpiod_get(). > > I'll send and updated patch with a new justification. With that change: Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c index a2c3c207a04b..d83817d3ff86 100644 --- a/drivers/pci/controller/pcie-apple.c +++ b/drivers/pci/controller/pcie-apple.c @@ -516,8 +516,8 @@ static int apple_pcie_setup_port(struct apple_pcie *pcie, u32 stat, idx; int ret, i; - reset = gpiod_get_from_of_node(np, "reset-gpios", 0, - GPIOD_OUT_LOW, "PERST#"); + reset = fwnode_gpiod_get_index(of_fwnode_handle(np), + "reset", 0, GPIOD_OUT_LOW, "PERST#"); if (IS_ERR(reset)) return PTR_ERR(reset);
I would like to stop exporting OF-specific gpiod_get_from_of_node() so that gpiolib can be cleaned a bit, so let's switch to the generic fwnode property API. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>