[<prev] [next>] [day] [month] [year] [list]
Message-ID: <175CCF5F49938B4D99B2E3EF7F558EBE540BD53872@SC-VEXCH4.marvell.com>
Date: Thu, 9 Jan 2014 01:32:07 -0800
From: Neil Zhang <zhangwm@...vell.com>
To: Neil Zhang <zhangwm@...vell.com>,
"linus.walleij@...aro.org" <linus.walleij@...aro.org>,
"gnurou@...il.com" <gnurou@...il.com>,
"linux-gpio@...r.kernel.org" <linux-gpio@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] gpio: pxa: fix bug when get gpio value
> -----Original Message-----
> From: Neil Zhang [mailto:zhangwm@...vell.com]
> Sent: 2014年1月9日 17:26
> To: linus.walleij@...aro.org; gnurou@...il.com; linux-gpio@...r.kernel.org;
> linux-kernel@...r.kernel.or
> 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@...vell.com>
> ---
> 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
Powered by blists - more mailing lists