From: Petr Štetiar Date: Mon, 3 Jun 2019 21:08:01 +0000 (+0200) Subject: gpio-button-hotplug: fix wrong initial seen value X-Git-Tag: v19.07.0-rc1~474 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=27d234a345669f0459fc3db54e618c80b20b7998;p=openwrt%2Fstaging%2Fpepe2k.git 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 Signed-off-by: Petr Štetiar --- 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;