The ->of_gpio_ranges_fallback() repeats the idea that lies behind
->add_pin_ranges(), while the latter covers more cases that the former
hook. Drop the former one for good.
Changelog v3:
- moved check of the property presense to GPIO library
- split out the refcount fix in a separate patch
- added cover letter
Andy Shevchenko (4):
gpiolib: Check "gpio-ranges" before calling ->add_pin_ranges()
pinctrl: bcm2835: Remove of_node_put() in
bcm2835_of_gpio_ranges_fallback()
pinctrl: bcm2835: Switch to use ->add_pin_ranges()
Revert "gpiolib: of: Introduce hook for missing gpio-ranges"
drivers/gpio/gpiolib-of.c | 5 -----
drivers/gpio/gpiolib.c | 8 ++++++++
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 10 ++++------
include/linux/gpio/driver.h | 12 ------------
4 files changed, 12 insertions(+), 23 deletions(-)
--
2.39.0
Remove wrong of_node_put() in bcm2835_of_gpio_ranges_fallback(),
there is no counterpart of_node_get() for it.
Fixes: d2b67744fd99 ("pinctrl: bcm2835: implement hook for missing gpio-ranges")
Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index 7857e612a100..c7cdccdb4332 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -363,8 +363,6 @@ static int bcm2835_of_gpio_ranges_fallback(struct gpio_chip *gc,
{
struct pinctrl_dev *pctldev = of_pinctrl_get(np);
- of_node_put(np);
-
if (!pctldev)
return 0;
--
2.39.0
This reverts commit 3550bba25d5587a701e6edf20e20984d2ee72c78.
No users for this one, revert it for good.
The ->add_pin_ranges() can be used instead.
Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/gpio/gpiolib-of.c | 5 -----
include/linux/gpio/driver.h | 12 ------------
2 files changed, 17 deletions(-)
diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
index 72d8a3da31e3..266352b1a966 100644
--- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c
@@ -980,11 +980,6 @@ static int of_gpiochip_add_pin_range(struct gpio_chip *chip)
if (!np)
return 0;
- if (!of_property_read_bool(np, "gpio-ranges") &&
- chip->of_gpio_ranges_fallback) {
- return chip->of_gpio_ranges_fallback(chip, np);
- }
-
group_names = of_find_property(np, group_names_propname, NULL);
for (;; index++) {
diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h
index ddc7a14a274f..5ab50ba3c309 100644
--- a/include/linux/gpio/driver.h
+++ b/include/linux/gpio/driver.h
@@ -521,18 +521,6 @@ struct gpio_chip {
*/
int (*of_xlate)(struct gpio_chip *gc,
const struct of_phandle_args *gpiospec, u32 *flags);
-
- /**
- * @of_gpio_ranges_fallback:
- *
- * Optional hook for the case that no gpio-ranges property is defined
- * within the device tree node "np" (usually DT before introduction
- * of gpio-ranges). So this callback is helpful to provide the
- * necessary backward compatibility for the pin ranges.
- */
- int (*of_gpio_ranges_fallback)(struct gpio_chip *gc,
- struct device_node *np);
-
#endif /* CONFIG_OF_GPIO */
};
--
2.39.0
Hi Andy,
Am 13.01.23 um 22:53 schrieb Andy Shevchenko:
> Remove wrong of_node_put() in bcm2835_of_gpio_ranges_fallback(),
> there is no counterpart of_node_get() for it.
>
> Fixes: d2b67744fd99 ("pinctrl: bcm2835: implement hook for missing gpio-ranges")
> Signed-off-by: Andy Shevchenko <[email protected]>
thanks for fixing. It seems that i got confused by function name and
usage in other driver.
Reviewed-by: Stefan Wahren <[email protected]>
> ---
> drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
> index 7857e612a100..c7cdccdb4332 100644
> --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
> +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
> @@ -363,8 +363,6 @@ static int bcm2835_of_gpio_ranges_fallback(struct gpio_chip *gc,
> {
> struct pinctrl_dev *pctldev = of_pinctrl_get(np);
>
> - of_node_put(np);
> -
> if (!pctldev)
> return 0;
>
On Sat, Jan 14, 2023 at 12:03:07PM +0100, Stefan Wahren wrote:
> Am 13.01.23 um 22:53 schrieb Andy Shevchenko:
> > Remove wrong of_node_put() in bcm2835_of_gpio_ranges_fallback(),
> > there is no counterpart of_node_get() for it.
> >
> > Fixes: d2b67744fd99 ("pinctrl: bcm2835: implement hook for missing gpio-ranges")
> > Signed-off-by: Andy Shevchenko <[email protected]>
>
> thanks for fixing. It seems that i got confused by function name and usage
> in other driver.
You're welcome! Would be nice if you or somebody else have a chance to test
the series.
> Reviewed-by: Stefan Wahren <[email protected]>
Thank you!
--
With Best Regards,
Andy Shevchenko
On 1/14/2023 3:10 AM, Andy Shevchenko wrote:
> On Sat, Jan 14, 2023 at 12:03:07PM +0100, Stefan Wahren wrote:
>> Am 13.01.23 um 22:53 schrieb Andy Shevchenko:
>>> Remove wrong of_node_put() in bcm2835_of_gpio_ranges_fallback(),
>>> there is no counterpart of_node_get() for it.
>>>
>>> Fixes: d2b67744fd99 ("pinctrl: bcm2835: implement hook for missing gpio-ranges")
>>> Signed-off-by: Andy Shevchenko <[email protected]>
>>
>> thanks for fixing. It seems that i got confused by function name and usage
>> in other driver.
>
> You're welcome! Would be nice if you or somebody else have a chance to test
> the series.
Yes I should be able to do that in the next few days.
--
Florian
On Fri, Jan 13, 2023 at 10:53 PM Andy Shevchenko
<[email protected]> wrote:
>
> The ->of_gpio_ranges_fallback() repeats the idea that lies behind
> ->add_pin_ranges(), while the latter covers more cases that the former
> hook. Drop the former one for good.
>
> Changelog v3:
> - moved check of the property presense to GPIO library
> - split out the refcount fix in a separate patch
> - added cover letter
>
> Andy Shevchenko (4):
> gpiolib: Check "gpio-ranges" before calling ->add_pin_ranges()
> pinctrl: bcm2835: Remove of_node_put() in
> bcm2835_of_gpio_ranges_fallback()
> pinctrl: bcm2835: Switch to use ->add_pin_ranges()
> Revert "gpiolib: of: Introduce hook for missing gpio-ranges"
>
> drivers/gpio/gpiolib-of.c | 5 -----
> drivers/gpio/gpiolib.c | 8 ++++++++
> drivers/pinctrl/bcm/pinctrl-bcm2835.c | 10 ++++------
> include/linux/gpio/driver.h | 12 ------------
> 4 files changed, 12 insertions(+), 23 deletions(-)
>
> --
> 2.39.0
>
For GPIO part:
Acked-by: Bartosz Golaszewski <[email protected]>
Hi Andy,
Am 13.01.23 um 22:53 schrieb Andy Shevchenko:
> The ->of_gpio_ranges_fallback() repeats the idea that lies behind
> ->add_pin_ranges(), while the latter covers more cases that the former
> hook. Drop the former one for good.
i successful tested booting of this series with multi_v7_defconfig on
Raspberry Pi 4 (with and without gpio-ranges in DTB):
Tested-by: Stefan Wahren <[email protected]>
>
> Changelog v3:
> - moved check of the property presense to GPIO library
> - split out the refcount fix in a separate patch
> - added cover letter
>
> Andy Shevchenko (4):
> gpiolib: Check "gpio-ranges" before calling ->add_pin_ranges()
> pinctrl: bcm2835: Remove of_node_put() in
> bcm2835_of_gpio_ranges_fallback()
> pinctrl: bcm2835: Switch to use ->add_pin_ranges()
> Revert "gpiolib: of: Introduce hook for missing gpio-ranges"
>
> drivers/gpio/gpiolib-of.c | 5 -----
> drivers/gpio/gpiolib.c | 8 ++++++++
> drivers/pinctrl/bcm/pinctrl-bcm2835.c | 10 ++++------
> include/linux/gpio/driver.h | 12 ------------
> 4 files changed, 12 insertions(+), 23 deletions(-)
>
On Thu, Jan 19, 2023 at 06:28:27PM +0100, Stefan Wahren wrote:
> Hi Andy,
>
> Am 13.01.23 um 22:53 schrieb Andy Shevchenko:
> > The ->of_gpio_ranges_fallback() repeats the idea that lies behind
> > ->add_pin_ranges(), while the latter covers more cases that the former
> > hook. Drop the former one for good.
>
> i successful tested booting of this series with multi_v7_defconfig on
> Raspberry Pi 4 (with and without gpio-ranges in DTB):
>
> Tested-by: Stefan Wahren <[email protected]>
Thank you!
--
With Best Regards,
Andy Shevchenko
On 1/13/23 13:53, Andy Shevchenko wrote:
> The ->of_gpio_ranges_fallback() repeats the idea that lies behind
> ->add_pin_ranges(), while the latter covers more cases that the former
> hook. Drop the former one for good.
>
> Changelog v3:
> - moved check of the property presense to GPIO library
> - split out the refcount fix in a separate patch
> - added cover letter
Tested-by: Florian Fainelli <[email protected]>
Reviewed-by: Florian Fainelli <[email protected]>
Thanks!
--
Florian
On Fri, Jan 13, 2023 at 10:53 PM Andy Shevchenko
<[email protected]> wrote:
> The ->of_gpio_ranges_fallback() repeats the idea that lies behind
> ->add_pin_ranges(), while the latter covers more cases that the former
> hook. Drop the former one for good.
>
> Changelog v3:
> - moved check of the property presense to GPIO library
> - split out the refcount fix in a separate patch
> - added cover letter
Patches applied! Sorry for taking almost 2 weeks :/
Yours,
Linus Walleij