summaryrefslogtreecommitdiffstats
path: root/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2019-06-03 23:08:01 +0200
committerPetr Štetiar <ynezz@true.cz>2019-06-09 14:51:47 +0200
commit27d234a345669f0459fc3db54e618c80b20b7998 (patch)
treef622239f87c70c0f17639326f27cb443c9ea482a /package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
parent33ccfe0e149f19c9d18165fa45b9df4b0c30e881 (diff)
downloadopenwrt-27d234a345669f0459fc3db54e618c80b20b7998.tar.gz
openwrt-27d234a345669f0459fc3db54e618c80b20b7998.tar.bz2
openwrt-27d234a345669f0459fc3db54e618c80b20b7998.zip
gpio-button-hotplug: fix wrong initial seen value
Currently the generated event contains wrong seen value, when the button is pressed for the first time: rmmod gpio_button_hotplug; modprobe gpio_button_hotplug [ pressing the wps key immediately after modprobe ] gpio-keys: create event, name=wps, seen=1088, pressed=1 So this patch adds a check for this corner case and makes seen=0 if the button is pressed for the first time. Tested-by: Kuan-Yi Li <kyli.tw@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
Diffstat (limited to 'package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c')
-rw-r--r--package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
index d81898f932..f429f8c027 100644
--- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
+++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c
@@ -253,6 +253,9 @@ static void button_hotplug_event(struct gpio_keys_button_data *data,
if (btn < 0)
return;
+ if (priv->seen == 0)
+ priv->seen = seen;
+
button_hotplug_create_event(button_map[btn].name, type,
(seen - priv->seen) / HZ, value);
priv->seen = seen;