gpio-button-hotplug: fix wrong initial seen value
authorPetr Štetiar <ynezz@true.cz>
Mon, 3 Jun 2019 21:08:01 +0000 (23:08 +0200)
committerPetr Štetiar <ynezz@true.cz>
Sun, 9 Jun 2019 12:51:47 +0000 (14:51 +0200)
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>
package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c

index d81898f932a1a6f82169dad20fc8746e172ef26f..f429f8c0271fd3c3bb474d73358a544322ee2fc2 100644 (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;