summarylogtreecommitdiffstats
path: root/v6-ACPI-skip-IRQ-override-on-AMD-Zen-platforms.patch
diff options
context:
space:
mode:
Diffstat (limited to 'v6-ACPI-skip-IRQ-override-on-AMD-Zen-platforms.patch')
-rw-r--r--v6-ACPI-skip-IRQ-override-on-AMD-Zen-platforms.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/v6-ACPI-skip-IRQ-override-on-AMD-Zen-platforms.patch b/v6-ACPI-skip-IRQ-override-on-AMD-Zen-platforms.patch
new file mode 100644
index 000000000000..61873907a94b
--- /dev/null
+++ b/v6-ACPI-skip-IRQ-override-on-AMD-Zen-platforms.patch
@@ -0,0 +1,42 @@
+IRQ override isn't needed on modern AMD Zen systems.
+There's an active low keyboard IRQ on AMD Ryzen 6000 and it will stay
+this way on newer platforms. This IRQ override breaks keyboards for
+almost all Ryzen 6000 laptops currently on the market.
+
+Skip this IRQ override for all AMD Zen platforms because this IRQ
+override is supposed to be a workaround for buggy ACPI DSDT and we can't
+have a long list of all future AMD CPUs/Laptops in the kernel code.
+If a device with buggy ACPI DSDT shows up, a separated list containing
+just them should be created.
+
+Suggested-by: Mario Limonciello <mario.limonciello@amd.com>
+Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
+---
+Change sice v5: reworked
+
+ drivers/acpi/resource.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
+index c2d494784425..510cdec375c4 100644
+--- a/drivers/acpi/resource.c
++++ b/drivers/acpi/resource.c
+@@ -416,6 +416,16 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
+ {
+ int i;
+
++#ifdef CONFIG_X86
++ /*
++ * IRQ override isn't needed on modern AMD Zen systems and
++ * this override breaks active low IRQs on AMD Ryzen 6000 and
++ * newer systems. Skip it.
++ */
++ if (boot_cpu_has(X86_FEATURE_ZEN))
++ return false;
++#endif
++
+ for (i = 0; i < ARRAY_SIZE(skip_override_table); i++) {
+ const struct irq_override_cmp *entry = &skip_override_table[i];
+
+--
+2.36.1