All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] pinctrl: bcm2835: Fix gpio hogs and pin reinitialisation
@ 2021-11-29 10:55 Phil Elwell
  2021-11-29 10:55 ` [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs Phil Elwell
  2021-11-29 10:55 ` [PATCH 2/2] ARM: dts: gpio-ranges property is now required Phil Elwell
  0 siblings, 2 replies; 9+ messages in thread
From: Phil Elwell @ 2021-11-29 10:55 UTC (permalink / raw)
  To: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Linus Walleij, Phil Elwell,
	Thierry Reding, devicetree, linux-rpi-kernel, linux-gpio

Tackle two problems with the pinctrl-bcm2835 driver and its Device Tree
configuration:

1. The pinctrl-bcm2835 driver is a combined pinctrl/gpio driver.
Currently the gpio side is registered first, but this breaks gpio hogs
(which are configured during gpiochip_add_data).

2. Since [1], a "gpio-ranges" property is required in order for pins
to be returned to inputs when freed. Note that without patch 1, the
device never gets out of EPROBE_DEFER.

Note that the Fixes: tags are little more than hooks to hang the back-ports
on - no blame is intended.

[1] commit 2ab73c6d8323 ("gpio: Support GPIO controllers without
        pin-ranges")

Phil Elwell (2):
  pinctrl: bcm2835: Change init order for gpio hogs
  ARM: dts: gpio-ranges property is now required

 arch/arm/boot/dts/bcm2711.dtsi        |  2 ++
 arch/arm/boot/dts/bcm283x.dtsi        |  2 ++
 drivers/pinctrl/bcm/pinctrl-bcm2835.c | 29 +++++++++++++++------------
 3 files changed, 20 insertions(+), 13 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs
  2021-11-29 10:55 [PATCH 0/2] pinctrl: bcm2835: Fix gpio hogs and pin reinitialisation Phil Elwell
@ 2021-11-29 10:55 ` Phil Elwell
       [not found]   ` <CAHp75Vei9FUY0gGD99gVv_FZzcpN1y_i65BB-auyAFUwqsQxNA@mail.gmail.com>
  2021-11-29 10:55 ` [PATCH 2/2] ARM: dts: gpio-ranges property is now required Phil Elwell
  1 sibling, 1 reply; 9+ messages in thread
From: Phil Elwell @ 2021-11-29 10:55 UTC (permalink / raw)
  To: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Linus Walleij, Phil Elwell,
	Thierry Reding, devicetree, linux-rpi-kernel, linux-gpio

...and gpio-ranges

pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio
side is registered first, but this breaks gpio hogs (which are
configured during gpiochip_add_data). Part of the hog initialisation
is a call to pinctrl_gpio_request, and since the pinctrl driver hasn't
yet been registered this results in an -EPROBE_DEFER from which it can
never recover.

Change the initialisation sequence to register the pinctrl driver
first.

This also solves a similar problem with the gpio-ranges property, which
is required in order for released pins to be returned to inputs.

Fixes: 73345a18d464b ("pinctrl: bcm2835: Pass irqchip when adding
                       gpiochip")
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
 drivers/pinctrl/bcm/pinctrl-bcm2835.c | 29 +++++++++++++++------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index 2abcc6ce4eba..b607d10e4cbd 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -1244,6 +1244,18 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
 		raw_spin_lock_init(&pc->irq_lock[i]);
 	}
 
+	pc->pctl_desc = *pdata->pctl_desc;
+	pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc);
+	if (IS_ERR(pc->pctl_dev)) {
+		gpiochip_remove(&pc->gpio_chip);
+		return PTR_ERR(pc->pctl_dev);
+	}
+
+	pc->gpio_range = *pdata->gpio_range;
+	pc->gpio_range.base = pc->gpio_chip.base;
+	pc->gpio_range.gc = &pc->gpio_chip;
+	pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
+
 	girq = &pc->gpio_chip.irq;
 	girq->chip = &bcm2835_gpio_irq_chip;
 	girq->parent_handler = bcm2835_gpio_irq_handler;
@@ -1251,8 +1263,10 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
 	girq->parents = devm_kcalloc(dev, BCM2835_NUM_IRQS,
 				     sizeof(*girq->parents),
 				     GFP_KERNEL);
-	if (!girq->parents)
+	if (!girq->parents) {
+		pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range);
 		return -ENOMEM;
+	}
 
 	if (is_7211) {
 		pc->wake_irq = devm_kcalloc(dev, BCM2835_NUM_IRQS,
@@ -1307,21 +1321,10 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
 	err = gpiochip_add_data(&pc->gpio_chip, pc);
 	if (err) {
 		dev_err(dev, "could not add GPIO chip\n");
+		pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range);
 		return err;
 	}
 
-	pc->pctl_desc = *pdata->pctl_desc;
-	pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc);
-	if (IS_ERR(pc->pctl_dev)) {
-		gpiochip_remove(&pc->gpio_chip);
-		return PTR_ERR(pc->pctl_dev);
-	}
-
-	pc->gpio_range = *pdata->gpio_range;
-	pc->gpio_range.base = pc->gpio_chip.base;
-	pc->gpio_range.gc = &pc->gpio_chip;
-	pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
-
 	return 0;
 }
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] ARM: dts: gpio-ranges property is now required
  2021-11-29 10:55 [PATCH 0/2] pinctrl: bcm2835: Fix gpio hogs and pin reinitialisation Phil Elwell
  2021-11-29 10:55 ` [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs Phil Elwell
@ 2021-11-29 10:55 ` Phil Elwell
  2021-12-02  1:39   ` Linus Walleij
  1 sibling, 1 reply; 9+ messages in thread
From: Phil Elwell @ 2021-11-29 10:55 UTC (permalink / raw)
  To: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Linus Walleij, Phil Elwell,
	Thierry Reding, devicetree, linux-rpi-kernel, linux-gpio

Since [1], added in 5.7, the absence of a gpio-ranges property has
prevented GPIOs from being restored to inputs when released.
Add those properties for BCM283x and BCM2711 devices.

[1] commit 2ab73c6d8323 ("gpio: Support GPIO controllers without
    pin-ranges")

Fixes: 2ab73c6d8323 ("gpio: Support GPIO controllers without
                      pin-ranges")
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
 arch/arm/boot/dts/bcm2711.dtsi | 2 ++
 arch/arm/boot/dts/bcm283x.dtsi | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi
index 9e01dbca4a01..dff18fc9a906 100644
--- a/arch/arm/boot/dts/bcm2711.dtsi
+++ b/arch/arm/boot/dts/bcm2711.dtsi
@@ -582,6 +582,8 @@ &gpio {
 		     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
 		     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
 
+	gpio-ranges = <&gpio 0 0 58>;
+
 	gpclk0_gpio49: gpclk0_gpio49 {
 		pin-gpclk {
 			pins = "gpio49";
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index a3e06b680947..c113661a6668 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -126,6 +126,8 @@ gpio: gpio@7e200000 {
 			interrupt-controller;
 			#interrupt-cells = <2>;
 
+			gpio-ranges = <&gpio 0 0 54>;
+
 			/* Defines common pin muxing groups
 			 *
 			 * While each pin can have its mux selected
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs
       [not found]   ` <CAHp75Vei9FUY0gGD99gVv_FZzcpN1y_i65BB-auyAFUwqsQxNA@mail.gmail.com>
@ 2021-12-01 15:18     ` Phil Elwell
  2021-12-01 15:38       ` Andy Shevchenko
  0 siblings, 1 reply; 9+ messages in thread
From: Phil Elwell @ 2021-12-01 15:18 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Linus Walleij, Thierry Reding,
	devicetree, linux-rpi-kernel, linux-gpio

Hi Andy,

On 01/12/2021 12:06, Andy Shevchenko wrote:
> On Monday, November 29, 2021, Phil Elwell <phil@raspberrypi.com 
> <mailto:phil@raspberrypi.com>> wrote:
> 
>     ...and gpio-ranges
> 
>     pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio
>     side is registered first, but this breaks gpio hogs (which are
>     configured during gpiochip_add_data). Part of the hog initialisation
>     is a call to pinctrl_gpio_request, and since the pinctrl driver hasn't
>     yet been registered this results in an -EPROBE_DEFER from which it can
>     never recover.
> 
>     Change the initialisation sequence to register the pinctrl driver
>     first.
> 
>     This also solves a similar problem with the gpio-ranges property, which
>     is required in order for released pins to be returned to inputs.
> 
> 
> We have a callback in GPIO chip to register pin ranges, why driver does it 
> separately?

A few experiments (this is not my driver) appear to show that the call to 
pinctrl_add_gpio_range can be removed, but only once the gpio-ranges DT property 
has been added if we want to remain functionality throughout a bisect. That tidy 
up might be better done with a followup commit once the DT patch has also
been accepted, unless it's possible to guarantee the sequencing between
the pinctrl/gpio tree and the DT tree.

>     Fixes: 73345a18d464b ("pinctrl: bcm2835: Pass irqchip when adding
>                             gpiochip")
>     Signed-off-by: Phil Elwell <phil@raspberrypi.com <mailto:phil@raspberrypi.com>>
> 
> 
> 
> Is it originally so strange indentation or is it only on my side?

The "g" is below the "p" in the patch.

Thanks,

Phil

>     ---
>       drivers/pinctrl/bcm/pinctrl-bcm2835.c | 29 +++++++++++++++------------
>       1 file changed, 16 insertions(+), 13 deletions(-)
> 
>     diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
>     b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
>     index 2abcc6ce4eba..b607d10e4cbd 100644
>     --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
>     +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
>     @@ -1244,6 +1244,18 @@ static int bcm2835_pinctrl_probe(struct
>     platform_device *pdev)
>                      raw_spin_lock_init(&pc->irq_lock[i]);
>              }
> 
>     +       pc->pctl_desc = *pdata->pctl_desc;
>     +       pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc);
>     +       if (IS_ERR(pc->pctl_dev)) {
>     +               gpiochip_remove(&pc->gpio_chip);
>     +               return PTR_ERR(pc->pctl_dev);
>     +       }
>     +
>     +       pc->gpio_range = *pdata->gpio_range;
>     +       pc->gpio_range.base = pc->gpio_chip.base;
>     +       pc->gpio_range.gc = &pc->gpio_chip;
>     +       pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
>     +
>              girq = &pc->gpio_chip.irq;
>              girq->chip = &bcm2835_gpio_irq_chip;
>              girq->parent_handler = bcm2835_gpio_irq_handler;
>     @@ -1251,8 +1263,10 @@ static int bcm2835_pinctrl_probe(struct
>     platform_device *pdev)
>              girq->parents = devm_kcalloc(dev, BCM2835_NUM_IRQS,
>                                           sizeof(*girq->parents),
>                                           GFP_KERNEL);
>     -       if (!girq->parents)
>     +       if (!girq->parents) {
>     +               pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range);
>                      return -ENOMEM;
>     +       }
> 
>              if (is_7211) {
>                      pc->wake_irq = devm_kcalloc(dev, BCM2835_NUM_IRQS,
>     @@ -1307,21 +1321,10 @@ static int bcm2835_pinctrl_probe(struct
>     platform_device *pdev)
>              err = gpiochip_add_data(&pc->gpio_chip, pc);
>              if (err) {
>                      dev_err(dev, "could not add GPIO chip\n");
>     +               pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range);
>                      return err;
>              }
> 
>     -       pc->pctl_desc = *pdata->pctl_desc;
>     -       pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc);
>     -       if (IS_ERR(pc->pctl_dev)) {
>     -               gpiochip_remove(&pc->gpio_chip);
>     -               return PTR_ERR(pc->pctl_dev);
>     -       }
>     -
>     -       pc->gpio_range = *pdata->gpio_range;
>     -       pc->gpio_range.base = pc->gpio_chip.base;
>     -       pc->gpio_range.gc = &pc->gpio_chip;
>     -       pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
>     -
>              return 0;
>       }
> 
>     -- 
>     2.25.1
> 
> 
> 
> -- 
> With Best Regards,
> Andy Shevchenko
> 
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs
  2021-12-01 15:18     ` Phil Elwell
@ 2021-12-01 15:38       ` Andy Shevchenko
  2021-12-01 16:08         ` Phil Elwell
  0 siblings, 1 reply; 9+ messages in thread
From: Andy Shevchenko @ 2021-12-01 15:38 UTC (permalink / raw)
  To: Phil Elwell
  Cc: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Linus Walleij, Thierry Reding,
	devicetree, linux-rpi-kernel, linux-gpio

On Wed, Dec 1, 2021 at 5:18 PM Phil Elwell <phil@raspberrypi.com> wrote:
> On 01/12/2021 12:06, Andy Shevchenko wrote:
> > On Monday, November 29, 2021, Phil Elwell <phil@raspberrypi.com
> > <mailto:phil@raspberrypi.com>> wrote:
> >
> >     ...and gpio-ranges
> >
> >     pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio
> >     side is registered first, but this breaks gpio hogs (which are
> >     configured during gpiochip_add_data). Part of the hog initialisation
> >     is a call to pinctrl_gpio_request, and since the pinctrl driver hasn't
> >     yet been registered this results in an -EPROBE_DEFER from which it can
> >     never recover.
> >
> >     Change the initialisation sequence to register the pinctrl driver
> >     first.
> >
> >     This also solves a similar problem with the gpio-ranges property, which
> >     is required in order for released pins to be returned to inputs.
> >
> >
> > We have a callback in GPIO chip to register pin ranges, why driver does it
> > separately?
>
> A few experiments (this is not my driver) appear to show that the call to
> pinctrl_add_gpio_range can be removed, but only once the gpio-ranges DT property
> has been added if we want to remain functionality throughout a bisect. That tidy
> up might be better done with a followup commit once the DT patch has also
> been accepted, unless it's possible to guarantee the sequencing between
> the pinctrl/gpio tree and the DT tree.

What I meant is why these calls are done in the probe and not in
->add_pin_ranges() callback?
Shouldn't it fix the issue you have observed?

...

> >     Fixes: 73345a18d464b ("pinctrl: bcm2835: Pass irqchip when adding
> >                             gpiochip")
> >     Signed-off-by: Phil Elwell <phil@raspberrypi.com <mailto:phil@raspberrypi.com>>
> >
> > Is it originally so strange indentation or is it only on my side?
>
> The "g" is below the "p" in the patch.

Which is wrong. Tags mustn't be multilines (i.e. split over a single line).

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs
  2021-12-01 15:38       ` Andy Shevchenko
@ 2021-12-01 16:08         ` Phil Elwell
  2021-12-01 16:25           ` Andy Shevchenko
  0 siblings, 1 reply; 9+ messages in thread
From: Phil Elwell @ 2021-12-01 16:08 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Linus Walleij, Thierry Reding,
	devicetree, linux-rpi-kernel, linux-gpio

On 01/12/2021 15:38, Andy Shevchenko wrote:
> On Wed, Dec 1, 2021 at 5:18 PM Phil Elwell <phil@raspberrypi.com> wrote:
>> On 01/12/2021 12:06, Andy Shevchenko wrote:
>>> On Monday, November 29, 2021, Phil Elwell <phil@raspberrypi.com
>>> <mailto:phil@raspberrypi.com>> wrote:
>>>
>>>      ...and gpio-ranges
>>>
>>>      pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio
>>>      side is registered first, but this breaks gpio hogs (which are
>>>      configured during gpiochip_add_data). Part of the hog initialisation
>>>      is a call to pinctrl_gpio_request, and since the pinctrl driver hasn't
>>>      yet been registered this results in an -EPROBE_DEFER from which it can
>>>      never recover.
>>>
>>>      Change the initialisation sequence to register the pinctrl driver
>>>      first.
>>>
>>>      This also solves a similar problem with the gpio-ranges property, which
>>>      is required in order for released pins to be returned to inputs.
>>>
>>>
>>> We have a callback in GPIO chip to register pin ranges, why driver does it
>>> separately?
>>
>> A few experiments (this is not my driver) appear to show that the call to
>> pinctrl_add_gpio_range can be removed, but only once the gpio-ranges DT property
>> has been added if we want to remain functionality throughout a bisect. That tidy
>> up might be better done with a followup commit once the DT patch has also
>> been accepted, unless it's possible to guarantee the sequencing between
>> the pinctrl/gpio tree and the DT tree.
> 
> What I meant is why these calls are done in the probe and not in
> ->add_pin_ranges() callback?
> Shouldn't it fix the issue you have observed?

I'm no expert in the field, isn't it preferable to set the gpio-ranges 
pinctrl<->GPIO correspondence with a single line of DT rather than several lines 
of code? A quick grep shows over 700 instances of gpio-ranges in DT, at least 
some of which are reflexive, and only 7 drivers with add_pin_ranges methods.

>>>      Fixes: 73345a18d464b ("pinctrl: bcm2835: Pass irqchip when adding
>>>                              gpiochip")
>>>      Signed-off-by: Phil Elwell <phil@raspberrypi.com <mailto:phil@raspberrypi.com>>
>>>
>>> Is it originally so strange indentation or is it only on my side?
>>
>> The "g" is below the "p" in the patch.
> 
> Which is wrong. Tags mustn't be multilines (i.e. split over a single line).

checkpatch disagrees:

scripts/checkpatch.pl 0001-ARM-dts-gpio-ranges-property-is-now-required.patch
WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#10:
[1] commit 2ab73c6d8323 ("gpio: Support GPIO controllers without pin-ranges")

Phil


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs
  2021-12-01 16:08         ` Phil Elwell
@ 2021-12-01 16:25           ` Andy Shevchenko
  2021-12-01 16:34             ` Phil Elwell
  0 siblings, 1 reply; 9+ messages in thread
From: Andy Shevchenko @ 2021-12-01 16:25 UTC (permalink / raw)
  To: Phil Elwell
  Cc: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Linus Walleij, Thierry Reding,
	devicetree, linux-rpi-kernel, linux-gpio

On Wed, Dec 1, 2021 at 6:08 PM Phil Elwell <phil@raspberrypi.com> wrote:
> On 01/12/2021 15:38, Andy Shevchenko wrote:

...

> >>>      Fixes: 73345a18d464b ("pinctrl: bcm2835: Pass irqchip when adding
> >>>                              gpiochip")

> >>> Is it originally so strange indentation or is it only on my side?
> >>
> >> The "g" is below the "p" in the patch.
> >
> > Which is wrong. Tags mustn't be multilines (i.e. split over a single line).
>
> checkpatch disagrees:

I don't care less about checkpatch false positives. You have a chance
to fix it, btw.

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs
  2021-12-01 16:25           ` Andy Shevchenko
@ 2021-12-01 16:34             ` Phil Elwell
  0 siblings, 0 replies; 9+ messages in thread
From: Phil Elwell @ 2021-12-01 16:34 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Linus Walleij, Thierry Reding,
	devicetree, linux-rpi-kernel, linux-gpio



On 01/12/2021 16:25, Andy Shevchenko wrote:
> On Wed, Dec 1, 2021 at 6:08 PM Phil Elwell <phil@raspberrypi.com> wrote:
>> On 01/12/2021 15:38, Andy Shevchenko wrote:
> 
> ...
> 
>>>>>       Fixes: 73345a18d464b ("pinctrl: bcm2835: Pass irqchip when adding
>>>>>                               gpiochip")
> 
>>>>> Is it originally so strange indentation or is it only on my side?
>>>>
>>>> The "g" is below the "p" in the patch.
>>>
>>> Which is wrong. Tags mustn't be multilines (i.e. split over a single line).
>>
>> checkpatch disagrees:
> 
> I don't care less about checkpatch false positives. You have a chance
> to fix it, btw.

I only split it because of checkpatch. What a great tool.

I'll change for V2, which I can submit now if you'll ack it with just that change.

Phil

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] ARM: dts: gpio-ranges property is now required
  2021-11-29 10:55 ` [PATCH 2/2] ARM: dts: gpio-ranges property is now required Phil Elwell
@ 2021-12-02  1:39   ` Linus Walleij
  0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2021-12-02  1:39 UTC (permalink / raw)
  To: Phil Elwell
  Cc: Rob Herring, Nicolas Saenz Julienne, Florian Fainelli,
	bcm-kernel-feedback-list, Thierry Reding, devicetree,
	linux-rpi-kernel, linux-gpio

On Mon, Nov 29, 2021 at 11:56 AM Phil Elwell <phil@raspberrypi.com> wrote:

> Since [1], added in 5.7, the absence of a gpio-ranges property has
> prevented GPIOs from being restored to inputs when released.
> Add those properties for BCM283x and BCM2711 devices.
>
> [1] commit 2ab73c6d8323 ("gpio: Support GPIO controllers without
>     pin-ranges")
>
> Fixes: 2ab73c6d8323 ("gpio: Support GPIO controllers without
>                       pin-ranges")
> Signed-off-by: Phil Elwell <phil@raspberrypi.com>

With the funny linebreak fixed:
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Please merge this patch through the Broadcom/SoC tree.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-12-02  1:39 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-29 10:55 [PATCH 0/2] pinctrl: bcm2835: Fix gpio hogs and pin reinitialisation Phil Elwell
2021-11-29 10:55 ` [PATCH 1/2] pinctrl: bcm2835: Change init order for gpio hogs Phil Elwell
     [not found]   ` <CAHp75Vei9FUY0gGD99gVv_FZzcpN1y_i65BB-auyAFUwqsQxNA@mail.gmail.com>
2021-12-01 15:18     ` Phil Elwell
2021-12-01 15:38       ` Andy Shevchenko
2021-12-01 16:08         ` Phil Elwell
2021-12-01 16:25           ` Andy Shevchenko
2021-12-01 16:34             ` Phil Elwell
2021-11-29 10:55 ` [PATCH 2/2] ARM: dts: gpio-ranges property is now required Phil Elwell
2021-12-02  1:39   ` Linus Walleij

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.