diff mbox series

gpio: fix getting nonexclusive gpiods from DT

Message ID 20190916134344.26656-1-m.felsch@pengutronix.de
State New
Headers show
Series gpio: fix getting nonexclusive gpiods from DT | expand

Commit Message

Marco Felsch Sept. 16, 2019, 1:43 p.m. UTC
Since commit ec757001c818 ("gpio: Enable nonexclusive gpiods from DT
nodes") we are able to get GPIOD_FLAGS_BIT_NONEXCLUSIVE marked gpios.
Currently the gpiolib uses the wrong flags variable for the check. We
need to check the gpiod_flags instead of the of_gpio_flags else we
return -EBUSY for GPIOD_FLAGS_BIT_NONEXCLUSIVE marked and requested
gpiod's.

Fixes: ec757001c818 gpio: Enable nonexclusive gpiods from DT nodes
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
---
 drivers/gpio/gpiolib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bartosz Golaszewski Sept. 17, 2019, 7:53 a.m. UTC | #1
pon., 16 wrz 2019 o 15:43 Marco Felsch <m.felsch@pengutronix.de> napisał(a):
>
> Since commit ec757001c818 ("gpio: Enable nonexclusive gpiods from DT
> nodes") we are able to get GPIOD_FLAGS_BIT_NONEXCLUSIVE marked gpios.
> Currently the gpiolib uses the wrong flags variable for the check. We
> need to check the gpiod_flags instead of the of_gpio_flags else we
> return -EBUSY for GPIOD_FLAGS_BIT_NONEXCLUSIVE marked and requested
> gpiod's.
>
> Fixes: ec757001c818 gpio: Enable nonexclusive gpiods from DT nodes
> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> ---
>  drivers/gpio/gpiolib.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> index d9074191edef..e4203c1eb869 100644
> --- a/drivers/gpio/gpiolib.c
> +++ b/drivers/gpio/gpiolib.c
> @@ -4303,7 +4303,7 @@ struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,
>         transitory = flags & OF_GPIO_TRANSITORY;
>
>         ret = gpiod_request(desc, label);
> -       if (ret == -EBUSY && (flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
> +       if (ret == -EBUSY && (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
>                 return desc;
>         if (ret)
>                 return ERR_PTR(ret);
> --
> 2.20.1
>

Queued for fixes, thanks.

Bart
Marco Felsch Nov. 18, 2019, 10:33 a.m. UTC | #2
Hi Bart,

On 19-09-17 09:53, Bartosz Golaszewski wrote:
> pon., 16 wrz 2019 o 15:43 Marco Felsch <m.felsch@pengutronix.de> napisał(a):
> >
> > Since commit ec757001c818 ("gpio: Enable nonexclusive gpiods from DT
> > nodes") we are able to get GPIOD_FLAGS_BIT_NONEXCLUSIVE marked gpios.
> > Currently the gpiolib uses the wrong flags variable for the check. We
> > need to check the gpiod_flags instead of the of_gpio_flags else we
> > return -EBUSY for GPIOD_FLAGS_BIT_NONEXCLUSIVE marked and requested
> > gpiod's.
> >
> > Fixes: ec757001c818 gpio: Enable nonexclusive gpiods from DT nodes
> > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > ---
> >  drivers/gpio/gpiolib.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> > index d9074191edef..e4203c1eb869 100644
> > --- a/drivers/gpio/gpiolib.c
> > +++ b/drivers/gpio/gpiolib.c
> > @@ -4303,7 +4303,7 @@ struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,
> >         transitory = flags & OF_GPIO_TRANSITORY;
> >
> >         ret = gpiod_request(desc, label);
> > -       if (ret == -EBUSY && (flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
> > +       if (ret == -EBUSY && (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
> >                 return desc;
> >         if (ret)
> >                 return ERR_PTR(ret);
> > --
> > 2.20.1
> >
> 
> Queued for fixes, thanks.

I rebased my patch stack ontop of -rc8 and didn't saw this commit. Is
this intended?

Regards,
  Marco

> Bart
>
Bartosz Golaszewski Nov. 18, 2019, 10:56 a.m. UTC | #3
pon., 18 lis 2019 o 11:33 Marco Felsch <m.felsch@pengutronix.de> napisał(a):
>
> Hi Bart,
>
> On 19-09-17 09:53, Bartosz Golaszewski wrote:
> > pon., 16 wrz 2019 o 15:43 Marco Felsch <m.felsch@pengutronix.de> napisał(a):
> > >
> > > Since commit ec757001c818 ("gpio: Enable nonexclusive gpiods from DT
> > > nodes") we are able to get GPIOD_FLAGS_BIT_NONEXCLUSIVE marked gpios.
> > > Currently the gpiolib uses the wrong flags variable for the check. We
> > > need to check the gpiod_flags instead of the of_gpio_flags else we
> > > return -EBUSY for GPIOD_FLAGS_BIT_NONEXCLUSIVE marked and requested
> > > gpiod's.
> > >
> > > Fixes: ec757001c818 gpio: Enable nonexclusive gpiods from DT nodes
> > > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > > ---
> > >  drivers/gpio/gpiolib.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> > > index d9074191edef..e4203c1eb869 100644
> > > --- a/drivers/gpio/gpiolib.c
> > > +++ b/drivers/gpio/gpiolib.c
> > > @@ -4303,7 +4303,7 @@ struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,
> > >         transitory = flags & OF_GPIO_TRANSITORY;
> > >
> > >         ret = gpiod_request(desc, label);
> > > -       if (ret == -EBUSY && (flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
> > > +       if (ret == -EBUSY && (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
> > >                 return desc;
> > >         if (ret)
> > >                 return ERR_PTR(ret);
> > > --
> > > 2.20.1
> > >
> >
> > Queued for fixes, thanks.
>
> I rebased my patch stack ontop of -rc8 and didn't saw this commit. Is
> this intended?
>

I'm not sure what you mean, it's been in mainline since v5.4-rc2 as
commit be7ae45cfea9 ("gpio: fix getting nonexclusive gpiods from DT").

Bart

> Regards,
>   Marco
>
> > Bart
> >
>
> --
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Marco Felsch Nov. 18, 2019, 11:29 a.m. UTC | #4
On 19-11-18 11:56, Bartosz Golaszewski wrote:
> pon., 18 lis 2019 o 11:33 Marco Felsch <m.felsch@pengutronix.de> napisał(a):
> >
> > Hi Bart,
> >
> > On 19-09-17 09:53, Bartosz Golaszewski wrote:
> > > pon., 16 wrz 2019 o 15:43 Marco Felsch <m.felsch@pengutronix.de> napisał(a):
> > > >
> > > > Since commit ec757001c818 ("gpio: Enable nonexclusive gpiods from DT
> > > > nodes") we are able to get GPIOD_FLAGS_BIT_NONEXCLUSIVE marked gpios.
> > > > Currently the gpiolib uses the wrong flags variable for the check. We
> > > > need to check the gpiod_flags instead of the of_gpio_flags else we
> > > > return -EBUSY for GPIOD_FLAGS_BIT_NONEXCLUSIVE marked and requested
> > > > gpiod's.
> > > >
> > > > Fixes: ec757001c818 gpio: Enable nonexclusive gpiods from DT nodes
> > > > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > > > ---
> > > >  drivers/gpio/gpiolib.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> > > > index d9074191edef..e4203c1eb869 100644
> > > > --- a/drivers/gpio/gpiolib.c
> > > > +++ b/drivers/gpio/gpiolib.c
> > > > @@ -4303,7 +4303,7 @@ struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,
> > > >         transitory = flags & OF_GPIO_TRANSITORY;
> > > >
> > > >         ret = gpiod_request(desc, label);
> > > > -       if (ret == -EBUSY && (flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
> > > > +       if (ret == -EBUSY && (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
> > > >                 return desc;
> > > >         if (ret)
> > > >                 return ERR_PTR(ret);
> > > > --
> > > > 2.20.1
> > > >
> > >
> > > Queued for fixes, thanks.
> >
> > I rebased my patch stack ontop of -rc8 and didn't saw this commit. Is
> > this intended?
> >
> 
> I'm not sure what you mean, it's been in mainline since v5.4-rc2 as
> commit be7ae45cfea9 ("gpio: fix getting nonexclusive gpiods from DT").
> 
> Bart

Arrg.. I checked the drivers/gpio/gpiolib.c file but it is within
gpiolib-of.c. Sorry for the noise.

Regards,
  Marco

> > Regards,
> >   Marco
> >
> > > Bart
> > >
> >
> > --
> > Pengutronix e.K.                           |                             |
> > Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> > 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> > Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>
diff mbox series

Patch

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index d9074191edef..e4203c1eb869 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -4303,7 +4303,7 @@  struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,
 	transitory = flags & OF_GPIO_TRANSITORY;
 
 	ret = gpiod_request(desc, label);
-	if (ret == -EBUSY && (flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
+	if (ret == -EBUSY && (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
 		return desc;
 	if (ret)
 		return ERR_PTR(ret);