All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series
@ 2026-06-16  9:08 Marco Scardovi
  2026-06-16  9:31 ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Marco Scardovi @ 2026-06-16  9:08 UTC (permalink / raw)
  To: Mika Westerberg, Andy Shevchenko, Linus Walleij,
	Bartosz Golaszewski
  Cc: Mario Limonciello, linux-gpio, linux-acpi, linux-kernel,
	Marco Scardovi

The ASUS ROG Strix G16 G614 series laptops experience a long boot delay of
approximately 36 seconds. This happens because the system firmware triggers
a slow/hanging ActiveBoth GPIO interrupt handler at boot time.

Even though commit 3bb62e3f99a5 ("gpiolib: acpi: Only trigger ActiveBoth
interrupts on boot") restricted boot-time execution to ActiveBoth edge
events, the problematic interrupt on these laptops is configured as
ActiveBoth. Consequently, the handler is still executed at boot and
the boot process stalls.

Fix the delay by adding a DMI quirk to disable edge event execution at
boot for the ASUS ROG Strix G16 G614 family.

Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Marco Scardovi <scardracs@disroot.org>
---
 drivers/gpio/gpiolib-acpi-quirks.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/gpio/gpiolib-acpi-quirks.c b/drivers/gpio/gpiolib-acpi-quirks.c
index a0116f004975..fa0f03bd51af 100644
--- a/drivers/gpio/gpiolib-acpi-quirks.c
+++ b/drivers/gpio/gpiolib-acpi-quirks.c
@@ -392,6 +392,20 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {
 			.ignore_wake = "VEN_0488:00@355",
 		},
 	},
+	{
+		/*
+		 * ASUS ROG Strix G614 series laptops experience a long boot
+		 * delay (approx. 36 seconds) due to a slow/hanging ActiveBoth
+		 * GPIO interrupt handler executing at boot.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "ROG Strix G16 G614"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.no_edge_events_on_boot = true,
+		},
+	},
 	{} /* Terminating entry */
 };
 
-- 
2.54.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series
  2026-06-16  9:08 [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series Marco Scardovi
@ 2026-06-16  9:31 ` Andy Shevchenko
  2026-06-16  9:43   ` Marco Scardovi
  0 siblings, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2026-06-16  9:31 UTC (permalink / raw)
  To: Marco Scardovi
  Cc: Mika Westerberg, Linus Walleij, Bartosz Golaszewski,
	Mario Limonciello, linux-gpio, linux-acpi, linux-kernel

On Tue, Jun 16, 2026 at 11:08:24AM +0200, Marco Scardovi wrote:
> The ASUS ROG Strix G16 G614 series laptops experience a long boot delay of
> approximately 36 seconds. This happens because the system firmware triggers
> a slow/hanging ActiveBoth GPIO interrupt handler at boot time.

'slow'? Did you mean 'low'?

> Even though commit 3bb62e3f99a5 ("gpiolib: acpi: Only trigger ActiveBoth
> interrupts on boot") restricted boot-time execution to ActiveBoth edge
> events, the problematic interrupt on these laptops is configured as
> ActiveBoth. Consequently, the handler is still executed at boot and
> the boot process stalls.
> 
> Fix the delay by adding a DMI quirk to disable edge event execution at
> boot for the ASUS ROG Strix G16 G614 family.

What is this interrupt for? Touchpad?

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series
  2026-06-16  9:31 ` Andy Shevchenko
@ 2026-06-16  9:43   ` Marco Scardovi
  2026-06-16  9:58     ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Marco Scardovi @ 2026-06-16  9:43 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Mika Westerberg, Linus Walleij, Bartosz Golaszewski,
	Mario Limonciello, linux-gpio, linux-acpi, linux-kernel

Hi Andy,

> 'slow'? Did you mean 'low'?

Yes, sorry, that was a typo. I meant 'low'.

> What is this interrupt for? Touchpad?

It is an ACPI event interrupt on the AMD GPIO controller (AMDI0030).
Specifically, it triggers on pin 21, appearing in /proc/interrupts as
"amd_gpio 21 ACPI:Event" and as you guessed it is the touchpad.

Previously, using "gpiolib_acpi.ignore_interrupt=AMDI0030:00@21" or
"gpiolib_acpi.run_edge_events_on_boot=0" as a boot parameter successfully
bypassed the 36-second delay, which confirms this specific pin/handler is the
culprit stalling the boot process.

Thanks for the review!

Marco




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series
  2026-06-16  9:43   ` Marco Scardovi
@ 2026-06-16  9:58     ` Andy Shevchenko
  2026-06-16 10:24       ` Mika Westerberg
  0 siblings, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2026-06-16  9:58 UTC (permalink / raw)
  To: Marco Scardovi
  Cc: Mika Westerberg, Linus Walleij, Bartosz Golaszewski,
	Mario Limonciello, linux-gpio, linux-acpi, linux-kernel

On Tue, Jun 16, 2026 at 11:43:56AM +0200, Marco Scardovi wrote:

...

> > What is this interrupt for? Touchpad?
> 
> It is an ACPI event interrupt on the AMD GPIO controller (AMDI0030).
> Specifically, it triggers on pin 21, appearing in /proc/interrupts as
> "amd_gpio 21 ACPI:Event" and as you guessed it is the touchpad.
> 
> Previously, using "gpiolib_acpi.ignore_interrupt=AMDI0030:00@21" or
> "gpiolib_acpi.run_edge_events_on_boot=0" as a boot parameter successfully
> bypassed the 36-second delay, which confirms this specific pin/handler is the
> culprit stalling the boot process.

Mika, do you see any problems with disabled (deferred?) interrupt for this type
of event? I think it might break the suspend-resume (on touchpad event). Also
do you remember if we ever had touchpad event to be ActiveBoth?

What I'm trying to understand if this is pure BIOS issue (typo) or HW really
wants to
- be able to generate events to the OS (at boot time?)
- have the reaction on any edge

Mario, do you know anything more? It's AMD platform at the end, what the TP
model and if it requires both edges...

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series
  2026-06-16  9:58     ` Andy Shevchenko
@ 2026-06-16 10:24       ` Mika Westerberg
  2026-06-16 10:58         ` Marco Scardovi
  0 siblings, 1 reply; 7+ messages in thread
From: Mika Westerberg @ 2026-06-16 10:24 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Marco Scardovi, Mika Westerberg, Linus Walleij,
	Bartosz Golaszewski, Mario Limonciello, linux-gpio, linux-acpi,
	linux-kernel

On Tue, Jun 16, 2026 at 12:58:04PM +0300, Andy Shevchenko wrote:
> On Tue, Jun 16, 2026 at 11:43:56AM +0200, Marco Scardovi wrote:
> 
> ...
> 
> > > What is this interrupt for? Touchpad?
> > 
> > It is an ACPI event interrupt on the AMD GPIO controller (AMDI0030).
> > Specifically, it triggers on pin 21, appearing in /proc/interrupts as
> > "amd_gpio 21 ACPI:Event" and as you guessed it is the touchpad.
> > 
> > Previously, using "gpiolib_acpi.ignore_interrupt=AMDI0030:00@21" or
> > "gpiolib_acpi.run_edge_events_on_boot=0" as a boot parameter successfully
> > bypassed the 36-second delay, which confirms this specific pin/handler is the
> > culprit stalling the boot process.
> 
> Mika, do you see any problems with disabled (deferred?) interrupt for this type
> of event? I think it might break the suspend-resume (on touchpad event). Also
> do you remember if we ever had touchpad event to be ActiveBoth?

For starters, why this is ACPI event in the first place? The AML is not
supposed to use the touchpad.

Touchpad should be using just regular GpioInt(). Does it still work after
this patch? If yes then I think this is definitely okay.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series
  2026-06-16 10:24       ` Mika Westerberg
@ 2026-06-16 10:58         ` Marco Scardovi
  2026-06-16 11:04           ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Marco Scardovi @ 2026-06-16 10:58 UTC (permalink / raw)
  To: Andy Shevchenko, Mika Westerberg
  Cc: Mika Westerberg, Linus Walleij, Bartosz Golaszewski,
	Mario Limonciello, linux-gpio, linux-acpi, linux-kernel

On Tue, Jun 16, 2026 at 12:24:51 +0200, Mika Westerberg wrote:
> On Tue, Jun 16, 2026 at 12:58:04PM +0300, Andy Shevchenko wrote:
> > Mika, do you see any problems with disabled (deferred?) interrupt for this 
type
> > of event? I think it might break the suspend-resume (on touchpad event). 
Also
> > do you remember if we ever had touchpad event to be ActiveBoth?
> 
> For starters, why this is ACPI event in the first place? The AML is not
> supposed to use the touchpad.
> 
> Touchpad should be using just regular GpioInt(). Does it still work after
> this patch? If yes then I think this is definitely okay.

Hi Mika, Andy,

Yes, the touchpad continues to work perfectly after this patch (even the
suspend/resume you asked about).

The touchpad itself is initialized and driven by the i2c-hid driver using a 
standard GpioInt() resource defined in the touchpad device's _CRS method. 
The ACPI event handler (pin 21) registered under the GPIO controller's _AEI 
is distinct from this.

The DMI quirk (.no_edge_events_on_boot = true) only prevents the initial 
boot-time trigger of this ACPI event handler when the line is asserted low 
during initialization. It does not prevent the touchpad driver from 
requesting and receiving its interrupts.

Furthermore, unlike using the "gpiolib_acpi.ignore_interrupt=AMDI0030:00@21" 
workaround (which would completely disable the ACPI handler), this patch still 
keeps the ACPI event handler registered. If any edge events occur on this pin 
post-boot (for example, if the BIOS needs to toggle touchpad states or track 
device status), the handler will still run normally, avoiding any potential 
breakage of runtime ACPI functionality.

Sidenote
Personally I'd wait for Mario for further info: after all it's him the
maintainer for AMD side and surely knows more than me.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series
  2026-06-16 10:58         ` Marco Scardovi
@ 2026-06-16 11:04           ` Andy Shevchenko
  0 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-06-16 11:04 UTC (permalink / raw)
  To: Marco Scardovi
  Cc: Mika Westerberg, Mika Westerberg, Linus Walleij,
	Bartosz Golaszewski, Mario Limonciello, linux-gpio, linux-acpi,
	linux-kernel

On Tue, Jun 16, 2026 at 12:58:31PM +0200, Marco Scardovi wrote:
> On Tue, Jun 16, 2026 at 12:24:51 +0200, Mika Westerberg wrote:
> > On Tue, Jun 16, 2026 at 12:58:04PM +0300, Andy Shevchenko wrote:
> > > Mika, do you see any problems with disabled (deferred?) interrupt for
> > > this type of event? I think it might break the suspend-resume (on
> > > touchpad event). Also do you remember if we ever had touchpad event to
> > > be ActiveBoth?
> > 
> > For starters, why this is ACPI event in the first place? The AML is not
> > supposed to use the touchpad.
> > 
> > Touchpad should be using just regular GpioInt(). Does it still work after
> > this patch? If yes then I think this is definitely okay.
> 
> Yes, the touchpad continues to work perfectly after this patch (even the
> suspend/resume you asked about).
> 
> The touchpad itself is initialized and driven by the i2c-hid driver using a 
> standard GpioInt() resource defined in the touchpad device's _CRS method. 
> The ACPI event handler (pin 21) registered under the GPIO controller's _AEI 
> is distinct from this.
> 
> The DMI quirk (.no_edge_events_on_boot = true) only prevents the initial 
> boot-time trigger of this ACPI event handler when the line is asserted low 
> during initialization. It does not prevent the touchpad driver from 
> requesting and receiving its interrupts.
> 
> Furthermore, unlike using the "gpiolib_acpi.ignore_interrupt=AMDI0030:00@21" 
> workaround (which would completely disable the ACPI handler), this patch still 
> keeps the ACPI event handler registered. If any edge events occur on this pin 
> post-boot (for example, if the BIOS needs to toggle touchpad states or track 
> device status), the handler will still run normally, avoiding any potential 
> breakage of runtime ACPI functionality.

Okay, perhaps this all needs to be elaborated and summarized in the commit message.

> Sidenote
> Personally I'd wait for Mario for further info: after all it's him the
> maintainer for AMD side and surely knows more than me.

Sure, I am with you on this.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-06-16 11:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-16  9:08 [PATCH] gpiolib: acpi: Add quirk for ASUS ROG Strix G614 series Marco Scardovi
2026-06-16  9:31 ` Andy Shevchenko
2026-06-16  9:43   ` Marco Scardovi
2026-06-16  9:58     ` Andy Shevchenko
2026-06-16 10:24       ` Mika Westerberg
2026-06-16 10:58         ` Marco Scardovi
2026-06-16 11:04           ` Andy Shevchenko

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.