From 27d234a345669f0459fc3db54e618c80b20b7998 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
Date: Mon, 3 Jun 2019 23:08:01 +0200
Subject: [PATCH] gpio-button-hotplug: fix wrong initial seen value
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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 | 3 +++
 1 file changed, 3 insertions(+)

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 d81898f932a..f429f8c0271 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;
-- 
GitLab