Hi 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)); } static int bgpio_get(struct gpio_chip *gc, unsigned int gpio) -- | Michael Nazzareno Trimarchi Amarula Solutions BV | | COO - Founder Cruquiuskade 47 | | +31(0)851119172 Amsterdam 1018 AM NL | | [`as] http://www.amarulasolutions.com | -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html