On Wed, Dec 16, 2015 at 3:05 PM, Michael Trimarchi
<[email protected]> wrote:
> I have get a problem using gpio and imx6q freescale architecture. I don't
> really understand how should work your change and I have done a quick
> fix for me. Can you explain what was the idea?
>
> Michael
>
> diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c
> index a3f0753..f9c6ff7 100644
> --- a/drivers/gpio/gpio-generic.c
> +++ b/drivers/gpio/gpio-generic.c
> @@ -139,11 +139,14 @@ static int bgpio_get_set(struct gpio_chip *gc, unsigned
> int gpio)
> {
> struct bgpio_chip *bgc = to_bgpio_chip(gc);
> unsigned long pinmask = bgc->pin2mask(bgc, gpio);
> + unsigned long reg;
>
> if (bgc->dir & pinmask)
> - return bgc->read_reg(bgc->reg_set) & pinmask;
> + reg = bgc->read_reg(bgc->reg_set) & pinmask;
> else
> - return bgc->read_reg(bgc->reg_dat) & pinmask;
> + reg = bgc->read_reg(bgc->reg_dat) & pinmask;
> +
> + return !!(reg & bgc->pin2mask(bgc, gpio));
> }
This looks identical to this fix I have queued for fixes:
https://git.kernel.org/cgit/linux/kernel/git/linusw/linux-gpio.git/commit/?h=fixes&id=21f2856498ff09a03ebc8f9ff7581451a221d81b
Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html