Message ID | 541FDBC0.4020302@intel.com |
---|---|
State | Not Applicable, archived |
Headers | show |
On Mon, Sep 22, 2014 at 10:20 AM, Adrian Hunter <adrian.hunter@intel.com> wrote: > Unfortunately it doesn't seem to work. I needed the patch > below. > > > From: Adrian Hunter <adrian.hunter@intel.com> > Date: Mon, 22 Sep 2014 11:01:16 +0300 > Subject: [PATCH] gpio: Fix gpio direction flags not getting set > > GPIO direction flags are not getting set because > an 'if' statement is the wrong way around. > > Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Oopps that's a bug, patch applied for fixes, so it'll work when this hits upstream. Alex: confirm? Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Sep 22, 2014 at 9:37 PM, Linus Walleij <linus.walleij@linaro.org> wrote: > On Mon, Sep 22, 2014 at 10:20 AM, Adrian Hunter <adrian.hunter@intel.com> wrote: > >> Unfortunately it doesn't seem to work. I needed the patch >> below. >> >> >> From: Adrian Hunter <adrian.hunter@intel.com> >> Date: Mon, 22 Sep 2014 11:01:16 +0300 >> Subject: [PATCH] gpio: Fix gpio direction flags not getting set >> >> GPIO direction flags are not getting set because >> an 'if' statement is the wrong way around. >> >> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> > > Oopps that's a bug, patch applied for fixes, so it'll work when > this hits upstream. > > Alex: confirm? Oh yes absolutely, this was a mistake of mine. Thanks and sorry for the inconvenience. -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 15cc0bb..3b54edf 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1674,7 +1674,7 @@ struct gpio_desc *__must_check __gpiod_get_index(struct device *dev, set_bit(FLAG_OPEN_SOURCE, &desc->flags); /* No particular flag request, return here... */ - if (flags & GPIOD_FLAGS_BIT_DIR_SET) + if (!(flags & GPIOD_FLAGS_BIT_DIR_SET)) return desc; /* Process flags */