Current code test wrong value so it does not verify if the written data is correctly read back. Fix it. Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx> --- BTW, I'm wondering why it needs to read back the written vlaue for double checking if write is success or not. Without any comment, it looks like a leftover of testing code. Does it make sense to remove the read after write? drivers/gpio/gpio-adnp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-adnp.c b/drivers/gpio/gpio-adnp.c index 91b90c0cea73..d334dc302dac 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)) + if (value & BIT(pos)) { err = -EACCES; + goto out; + } err = 0; -- 2.17.1