]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
gpiolib: acpi: Add a quirk for Asus UM325UAZ
authorMario Limonciello <mario.limonciello@amd.com>
Wed, 3 Aug 2022 04:25:00 +0000 (23:25 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Oct 2022 07:51:25 +0000 (09:51 +0200)
commit 0ea76c401f9245ac209f1b1ce03a7e1fb9de36e5 upstream.

Asus UM325UAZ has GPIO 18 programmed as both an interrupt and a wake
source, but confirmed with internal team on this design this pin is
floating and shouldn't have been programmed. This causes lots of
spurious IRQs on the system and horrendous battery life.

Add a quirk to ignore attempts to program this pin on this system.

Reported-by: Pavel Krc <reg.krn@pkrc.net>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216208
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpio/gpiolib-acpi.c

index f993f6f728ada64325596f5173366279f064f33d..9c8ab1dc608796f78d500e9f10dd8967e4974e05 100644 (file)
@@ -1573,6 +1573,20 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {
                        .ignore_wake = "INT33FF:01@0",
                },
        },
+       {
+               /*
+                * Interrupt storm caused from edge triggered floating pin
+                * Found in BIOS UX325UAZ.300
+                * https://bugzilla.kernel.org/show_bug.cgi?id=216208
+                */
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ZenBook UX325UAZ_UM325UAZ"),
+               },
+               .driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+                       .ignore_interrupt = "AMDI0030:00@18",
+               },
+       },
        {} /* Terminating entry */
 };