summaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2023-08-09 10:55:25 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2023-08-09 21:18:46 +0200
commitc6a1fd910d1bf8a0e3db7aebb229e3c81bc305c4 (patch)
tree832f04c9d1884c73e2296df956752f048a284fdc /drivers/acpi
parent9728ac221160c5ea111879125a7694bb81364720 (diff)
downloadlinux-stable-c6a1fd910d1bf8a0e3db7aebb229e3c81bc305c4.tar.gz
linux-stable-c6a1fd910d1bf8a0e3db7aebb229e3c81bc305c4.tar.bz2
linux-stable-c6a1fd910d1bf8a0e3db7aebb229e3c81bc305c4.zip
ACPI: resource: Honor MADT INT_SRC_OVR settings for IRQ1 on AMD Zen
On AMD Zen acpi_dev_irq_override() by default prefers the DSDT IRQ 1 settings over the MADT settings. This causes the keyboard to malfunction on some laptop models (see Links), all models from the Links have an INT_SRC_OVR MADT entry for IRQ 1. Fixes: a9c4a912b7dc ("ACPI: resource: Remove "Zen" specific match and quirks") Link: https://bugzilla.kernel.org/show_bug.cgi?id=217336 Link: https://bugzilla.kernel.org/show_bug.cgi?id=217394 Link: https://bugzilla.kernel.org/show_bug.cgi?id=217406 Cc: All applicable <stable@vger.kernel.org> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/resource.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
index 380cda1e86f4..8e32dd5776f5 100644
--- a/drivers/acpi/resource.c
+++ b/drivers/acpi/resource.c
@@ -551,6 +551,10 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
if (gsi != 1 && gsi != 12)
return true;
+ /* If the override comes from an INT_SRC_OVR MADT entry, honor it. */
+ if (acpi_int_src_ovr[gsi])
+ return true;
+
/*
* IRQ override isn't needed on modern AMD Zen systems and
* this override breaks active low IRQs on AMD Ryzen 6000 and