On Thursday, June 6, 2019 6:52:35 AM CEST Kristian Evensen wrote: > Hi Christian, > > On Wed, Jun 5, 2019 at 10:23 PM Christian Lamparter <[email protected]> > wrote: > > @Kristian Evensen, can you please check if the following patch would also > > resolve the issues you have been experiencing? > > > > I had to attach the patch as a file since gmail's webmail interface now > > seems to > > eat all the tabs. I hope this still gets through. > > Patch arrived safe and sound, and I just finished my tests on the > ZBT-WD323 (AR9344). I started out by building a fresh image from > master (head of my tree is commit 66d1c29655a4), and with this image I > saw the earlier reported behavior (a press of the button triggers > factory reset). I then applied your patch on top of my tree and the > button now works as expected. A short press triggers reboot, and > holding the button for ~5 seconds triggers a factory reset.
@ynezz, @Kristian The APM821xx checks out with both as well. While there are spurious events on enabling the interrupt (one released event), the /etc/rc.button/ scripts are setup to handle that. So, which patch should we take and who gets the merge them? (I've seen that ynezz has more patches as well.) Cheers, Christian --- From 0a46c8adb4d0dd288c6a646dd53757c6805e584a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <[email protected]> Date: Sat, 8 Jun 2019 01:05:32 +0200 Subject: [PATCH] gpio-button-hotplug: gpio-keys: fix always missing first event MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit afc056d7dc83 ("gpio-button-hotplug: support interrupt properties") changed the gpio-keys interrupt handling logic in a way, that it always misses first event, which causes issues with rc.button scripts, so this patch restores the previous behaviour. Fixes: afc056d7dc83 ("gpio-button-hotplug: support interrupt properties") Reported-by: Kristian Evensen <[email protected]> Signed-off-by: Petr Štetiar <[email protected]> Signed-off-by: Christian Lamparter <[email protected]> [drop state check] --- .../gpio-button-hotplug/src/gpio-button-hotplug.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) 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 11c914d4ef..6de8f56cdf 100644 --- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c +++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c @@ -348,16 +348,9 @@ static void gpio_keys_irq_work_func(struct work_struct *work) { struct gpio_keys_button_data *bdata = container_of(work, struct gpio_keys_button_data, work.work); - int state = gpio_button_get_value(bdata); - if (state != bdata->last_state) { - unsigned int type = bdata->b->type ?: EV_KEY; - - if (bdata->last_state != -1 || type == EV_SW) - button_hotplug_event(bdata, type, state); - - bdata->last_state = state; - } + button_hotplug_event(bdata, bdata->b->type ?: EV_KEY, + gpio_button_get_value(bdata)); } static irqreturn_t button_handle_irq(int irq, void *_bdata) -- 2.20.1 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
