Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: stable@vger.kernel.org
Signed-off-by: Kent Gibson <warthog618@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>

authored by

Kent Gibson and committed by
Bartosz Golaszewski
03a58ea5 6ee1d745

+2
+2
drivers/gpio/gpiolib-cdev.c
··· 776 776 cancel_delayed_work_sync(&line->work); 777 777 WRITE_ONCE(line->sw_debounced, 0); 778 778 WRITE_ONCE(line->eflags, 0); 779 + if (line->desc) 780 + WRITE_ONCE(line->desc->debounce_period_us, 0); 779 781 /* do not change line->level - see comment in debounced_value() */ 780 782 } 781 783