Jose Diaz de Grenu de Pedro
unread,Nov 26, 2015, 5:15:48 AM11/26/15You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to linux...@vger.kernel.org, linux-...@vger.kernel.org, linus....@linaro.org, gnu...@gmail.com, jose.diazde...@digi.com, hector....@digi.com
Commit 79a9becda894 moved the awareness of active low state
into the gpiod_get_value*() functions, but it only inverts the
GPIO's raw value when it is active low. If the GPIO is active
high, the gpiod_get_value*() functions return the raw value of
the register, which can be any positive value.
This patch does a double inversion when the GPIO is active high
to make sure either a 0 or 1 is returned by these functions.
Signed-off-by: Jose Diaz de Grenu de Pedro <
Jose.Diazde...@digi.com>
Signed-off-by: Hector Palacios <
hector....@digi.com>
---
drivers/gpio/gpiolib.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 50c4922fe53a..20f472a25b55 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1981,9 +1981,9 @@ int gpiod_get_value(const struct gpio_desc *desc)
value = _gpiod_get_raw_value(desc);
if (test_bit(FLAG_ACTIVE_LOW, &desc->flags))
- value = !value;
-
- return value;
+ return !value;
+ else
+ return !!value
}
EXPORT_SYMBOL_GPL(gpiod_get_value);
@@ -2224,9 +2224,9 @@ int gpiod_get_value_cansleep(const struct gpio_desc *desc)
value = _gpiod_get_raw_value(desc);
if (test_bit(FLAG_ACTIVE_LOW, &desc->flags))
- value = !value;
-
- return value;
+ return !value;
+ else
+ return !!value;
}
EXPORT_SYMBOL_GPL(gpiod_get_value_cansleep);
--
2.6.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
majo...@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/