RE: [PATCH] gpio: pxa: fix bug when get gpio value

From: Neil Zhang
Date: Thu Jan 09 2014 - 04:32:19 EST



> -----Original Message-----
> From: Neil Zhang [mailto:zhangwm@xxxxxxxxxxx]
> Sent: 2014年1月9日 17:26
> To: linus.walleij@xxxxxxxxxx; gnurou@xxxxxxxxx; linux-gpio@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxx
> Cc: Neil Zhang
> Subject: [PATCH] gpio: pxa: fix bug when get gpio value
>
> gpio_get_value should return 0 or 1.
>
> I have checked mach-mmp / mach-pxa / plat-pxa / plat-orion / mach-orion5x.
> It's OK for all of them to change this function to return 0 and 1.
>
> Signed-off-by: Neil Zhang <zhangwm@xxxxxxxxxxx>
> ---
> drivers/gpio/gpio-pxa.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c index
> cc13d1b..42e6e64 100644
> --- a/drivers/gpio/gpio-pxa.c
> +++ b/drivers/gpio/gpio-pxa.c
> @@ -263,7 +263,8 @@ static int pxa_gpio_direction_output(struct gpio_chip
> *chip,
>
> static int pxa_gpio_get(struct gpio_chip *chip, unsigned offset) {
> - return readl_relaxed(gpio_chip_base(chip) + GPLR_OFFSET) & (1 <<
> offset);
> + u32 gplr = readl_relaxed(gpio_chip_base(chip) + GPLR_OFFSET);
> + return !!(gplr & (1 << offset));
> }
>
> static void pxa_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
> --
> 1.7.9.5

Add right LKML.

Best Regards,
Neil Zhang
㈤旃??????+-遍荻?w??笔???dz罐??骅w*jg??????/??罐????璀??摺?囤??????:+v???佶>W?贽i?xPj??? -?+?d?