> -----Original Message----- > From: Neil Zhang [mailto:zhan...@marvell.com] > Sent: 2014年1月9日 17:26 > To: linus.wall...@linaro.org; gnu...@gmail.com; linux-g...@vger.kernel.org; > linux-ker...@vger.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 <zhan...@marvell.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