From: Axel Lin Date: Mon, 11 Mar 2019 13:29:37 +0000 (+0800) Subject: gpio: adnp: Fix testing wrong value in adnp_gpio_direction_input X-Git-Tag: v5.4-rc1~1302^2~4^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c5bc6e526d3f217ed2cc3681d256dc4a2af4cc2b;p=platform%2Fkernel%2Flinux-rpi.git gpio: adnp: Fix testing wrong value in adnp_gpio_direction_input Current code test wrong value so it does not verify if the written data is correctly read back. Fix it. Also make it return -EPERM if read value does not match written bit, just like it done for adnp_gpio_direction_output(). Fixes: 5e969a401a01 ("gpio: Add Avionic Design N-bit GPIO expander support") Cc: Signed-off-by: Axel Lin Reviewed-by: Thierry Reding Signed-off-by: Bartosz Golaszewski --- diff --git a/drivers/gpio/gpio-adnp.c b/drivers/gpio/gpio-adnp.c index 91b90c0..12acdac 100644 --- a/drivers/gpio/gpio-adnp.c +++ b/drivers/gpio/gpio-adnp.c @@ -132,8 +132,10 @@ static int adnp_gpio_direction_input(struct gpio_chip *chip, unsigned offset) if (err < 0) goto out; - if (err & BIT(pos)) - err = -EACCES; + if (value & BIT(pos)) { + err = -EPERM; + goto out; + } err = 0;