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>
openwrt-19.07
Petr Štetiar 2019-06-03 23:08:01 +02:00
parent 33ccfe0e14
commit 27d234a345
1 changed files with 3 additions and 0 deletions

View File

@ -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;