Message ID | 07ed3f5b199c81fcb214b9e0e6e37bfed079e2f7.1572945734.git.matti.vaittinen@fi.rohmeurope.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | None | expand |
Hi Matti, On Tue, Nov 5, 2019 at 11:15 AM Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> wrote: > It's hard for occasional GPIO code reader/writer to know if values 0/1 > equal to IN or OUT. Use defined GPIO_LINE_DIRECTION_IN and > GPIO_LINE_DIRECTION_OUT to help them out. > > NOTE: This commit also changes the return value for direction get > to equal 1 for direction INPUT. Prior this commit the driver returned > different values depending on GPIO pin for the INPUT state. Indeed. Which means you cannot assume the assembler output before/after is identical (which it should be for most changes). > Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > --- a/drivers/gpio/gpio-bd9571mwv.c > +++ b/drivers/gpio/gpio-bd9571mwv.c > @@ -37,8 +37,10 @@ static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip, > ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_DIR, &val); > if (ret < 0) > return ret; Nit: I'd keep the blank line here. > + if (val & BIT(offset)) > + return GPIO_LINE_DIRECTION_IN; > > - return val & BIT(offset); > + return GPIO_LINE_DIRECTION_OUT; > } > > static int bd9571mwv_gpio_direction_input(struct gpio_chip *chip, Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org 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
diff --git a/drivers/gpio/gpio-bd9571mwv.c b/drivers/gpio/gpio-bd9571mwv.c index 5224a946e8ab..c0abc9c6851b 100644 --- a/drivers/gpio/gpio-bd9571mwv.c +++ b/drivers/gpio/gpio-bd9571mwv.c @@ -37,8 +37,10 @@ static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip, ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_DIR, &val); if (ret < 0) return ret; + if (val & BIT(offset)) + return GPIO_LINE_DIRECTION_IN; - return val & BIT(offset); + return GPIO_LINE_DIRECTION_OUT; } static int bd9571mwv_gpio_direction_input(struct gpio_chip *chip,
It's hard for occasional GPIO code reader/writer to know if values 0/1 equal to IN or OUT. Use defined GPIO_LINE_DIRECTION_IN and GPIO_LINE_DIRECTION_OUT to help them out. NOTE: This commit also changes the return value for direction get to equal 1 for direction INPUT. Prior this commit the driver returned different values depending on GPIO pin for the INPUT state. Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> --- drivers/gpio/gpio-bd9571mwv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)