Skip to content

Commit 9946e39

Browse files
981213rafaeljw
authored andcommitted
ACPI: resource: skip IRQ override on AMD Zen platforms
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. Link: https://bugzilla.kernel.org/show_bug.cgi?id=216118 Suggested-by: Mario Limonciello <[email protected]> Signed-off-by: Chuanhong Guo <[email protected]> Acked-by: Mario Limonciello <[email protected]> Tested-by: XiaoYan Li <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent ff69927 commit 9946e39

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

drivers/acpi/resource.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,16 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
416416
{
417417
int i;
418418

419+
#ifdef CONFIG_X86
420+
/*
421+
* IRQ override isn't needed on modern AMD Zen systems and
422+
* this override breaks active low IRQs on AMD Ryzen 6000 and
423+
* newer systems. Skip it.
424+
*/
425+
if (boot_cpu_has(X86_FEATURE_ZEN))
426+
return false;
427+
#endif
428+
419429
for (i = 0; i < ARRAY_SIZE(skip_override_table); i++) {
420430
const struct irq_override_cmp *entry = &skip_override_table[i];
421431

0 commit comments

Comments
 (0)