Browse Source

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 <[email protected]>
Signed-off-by: Petr Štetiar <[email protected]>
Petr Štetiar 6 years ago
parent
commit
27d234a345
1 changed files with 3 additions and 0 deletions
  1. 3 0
      package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c

+ 3 - 0
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;