diff options
author | Kent Gibson <[email protected]> | 2021-01-21 22:10:38 +0800 |
---|---|---|
committer | Bartosz Golaszewski <[email protected]> | 2021-01-27 15:52:13 +0100 |
commit | 03a58ea5905fdbd93ff9e52e670d802600ba38cd (patch) | |
tree | 1f781709cac86d3590880edd0dea7df6339e4db1 | |
parent | 6ee1d745b7c9fd573fba142a2efdad76a9f1cb04 (diff) |
gpiolib: cdev: clear debounce period if line set to output
When set_config changes a line from input to output debounce is
implicitly disabled, as debounce makes no sense for outputs, but the
debounce period is not being cleared and is still reported in the
line info.
So clear the debounce period when the debouncer is stopped in
edge_detector_stop().
Fixes: 65cff7046406 ("gpiolib: cdev: support setting debounce")
Cc: [email protected]
Signed-off-by: Kent Gibson <[email protected]>
Reviewed-by: Linus Walleij <[email protected]>
Signed-off-by: Bartosz Golaszewski <[email protected]>
-rw-r--r-- | drivers/gpio/gpiolib-cdev.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index 1a7b51163528..1631727bf0da 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -776,6 +776,8 @@ static void edge_detector_stop(struct line *line) cancel_delayed_work_sync(&line->work); WRITE_ONCE(line->sw_debounced, 0); WRITE_ONCE(line->eflags, 0); + if (line->desc) + WRITE_ONCE(line->desc->debounce_period_us, 0); /* do not change line->level - see comment in debounced_value() */ } |