From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: "Limonciello, Mario" <Mario.Limonciello@amd.com>
Cc: Mario Limonciello <superm1@kernel.org>,
Hans de Goede <hansg@kernel.org>,
Mika Westerberg <westeri@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"open list:GPIO ACPI SUPPORT" <linux-gpio@vger.kernel.org>,
"open list:GPIO ACPI SUPPORT" <linux-acpi@vger.kernel.org>,
open list <linux-kernel@vger.kernel.org>,
"open list:INPUT (KEYBOARD, MOUSE, JOYSTICK,
TOUCHSCREEN)..." <linux-input@vger.kernel.org>
Subject: Re: [PATCH 2/2] Revert "Input: soc_button_array - debounce the buttons"
Date: Wed, 25 Jun 2025 18:17:29 +0300 [thread overview]
Message-ID: <aFwTCUXQydxRVEfk@smile.fi.intel.com> (raw)
In-Reply-To: <be57dcd1-a9ba-44f6-af9e-9b40f2b5c870@amd.com>
On Wed, Jun 25, 2025 at 03:14:40PM +0000, Limonciello, Mario wrote:
> On 6/25/25 10:10 AM, Andy Shevchenko wrote:
> > On Wed, Jun 25, 2025 at 03:02:18PM +0000, Limonciello, Mario wrote:
> >> On 6/25/25 9:41 AM, Mario Limonciello wrote:
> >>> On 6/25/25 9:31 AM, Hans de Goede wrote:
> >>>> On 25-Jun-25 4:09 PM, Mario Limonciello wrote:
> >>>>> On 6/25/25 4:09 AM, Hans de Goede wrote:
> >>>>>> On 24-Jun-25 10:22 PM, Mario Limonciello wrote:
...
> >>>> Ok, so specifically the gpiod_set_debounce() call with 50 ms
> >>>> done by gpio_keys.c is the problem I guess?
> >>>
> >>> Yep.
> >>>
> >>>> So amd_gpio_set_debounce() does accept the 50 ms debounce
> >>>> passed to it by gpio_keys.c as a valid value and then setting
> >>>> that breaks the wake from suspend?
> >>>
> >>> That's right.
> >
> >>>>> Also comparing the GPIO register in Windows (where things work)
> >>>>> Windows never programs a debounce.
> >>>>
> >>>> So maybe the windows ACPI0011 driver always uses a software-
> >>>> debounce for the buttons? Windows not debouncing the mechanical
> >>>> switches at all seems unlikely.
> >>>>
> >>>> I think the best way to fix this might be to add a no-hw-debounce
> >>>> flag to the data passed from soc_button_array.c to gpio_keys.c
> >>>> and have gpio_keys.c not call gpiod_set_debounce() when the
> >>>> no-hw-debounce flag is set.
> >>>>
> >>>> I've checked and both on Bay Trail and Cherry Trail devices
> >>>> where soc_button_array is used a lot hw-debouncing is already
> >>>> unused. pinctrl-baytrail.c does not accept 50 ms as a valid
> >>>> value and pinctrl-cherryview.c does not support hw debounce
> >>>> at all.
> >>>
> >>> That sounds a like a generally good direction to me.
> >
> > Thinking a bit more of this, perhaps the HW debounce support flag should be
> > per-GPIO-descriptor thingy. In such cases we don't need to distinguish the
> > platforms, the GPIO ACPI lib may simply set that flag based on 0 read from
> > the ACPI tables. It will also give a clue to any driver that uses GPIOs
> > (not only gpio-keys).
>
> But 0 doesn't mean hardware debounce support is there, 0 means that
> hardware debounce is not required to be programmed for this GPIO.
>
> That is - if another system had a non-zero value in the GpioInt entry I
> would expect this to be translated into the GPIO register.
Correct. The question is only about 0. So the flow will look like
1) if the GPIO is defined with 0 debounce, set the flag;
2) if the GPIO is defined with non-zero value, try to apply it;
3) if the step 2) fails, warn and set the flag.
Would it make sense?
Hans?
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2025-06-25 15:17 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-24 20:22 [PATCH 0/2] Fix soc-button-array debounce Mario Limonciello
2025-06-24 20:22 ` [PATCH 1/2] gpiolib: acpi: Program debounce when finding GPIO Mario Limonciello
2025-06-25 9:02 ` Hans de Goede
2025-06-25 12:19 ` Andy Shevchenko
2025-06-24 20:22 ` [PATCH 2/2] Revert "Input: soc_button_array - debounce the buttons" Mario Limonciello
2025-06-25 9:09 ` Hans de Goede
2025-06-25 14:09 ` Mario Limonciello
2025-06-25 14:31 ` Hans de Goede
2025-06-25 14:41 ` Mario Limonciello
2025-06-25 15:02 ` Limonciello, Mario
2025-06-25 15:10 ` Andy Shevchenko
2025-06-25 15:14 ` Limonciello, Mario
2025-06-25 15:17 ` Andy Shevchenko [this message]
2025-06-25 15:34 ` Limonciello, Mario
2025-06-25 17:54 ` Andy Shevchenko
2025-06-25 17:59 ` Limonciello, Mario
2025-06-25 18:03 ` Andy Shevchenko
2025-06-25 18:57 ` Hans de Goede
2025-06-25 19:10 ` Mario Limonciello
2025-06-25 19:32 ` Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aFwTCUXQydxRVEfk@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=Mario.Limonciello@amd.com \
--cc=brgl@bgdev.pl \
--cc=dmitry.torokhov@gmail.com \
--cc=hansg@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=superm1@kernel.org \
--cc=westeri@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.