diff options
Diffstat (limited to '0201-ACPI-resource-Remove-Zen-specific-match-and-quirks.patch')
-rw-r--r-- | 0201-ACPI-resource-Remove-Zen-specific-match-and-quirks.patch | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/0201-ACPI-resource-Remove-Zen-specific-match-and-quirks.patch b/0201-ACPI-resource-Remove-Zen-specific-match-and-quirks.patch new file mode 100644 index 000000000000..3d7e40c8b28f --- /dev/null +++ b/0201-ACPI-resource-Remove-Zen-specific-match-and-quirks.patch @@ -0,0 +1,127 @@ +From a9c4a912b7dc7ff922d4b9261160c001558f9755 Mon Sep 17 00:00:00 2001 +From: Mario Limonciello <mario.limonciello@amd.com> +Date: Thu, 1 Jun 2023 17:11:51 -0500 +Subject: ACPI: resource: Remove "Zen" specific match and quirks + +commit 9946e39fe8d0 ("ACPI: resource: skip IRQ override on +AMD Zen platforms") attempted to overhaul the override logic so it +didn't apply on X86 AMD Zen systems. This was intentional so that +systems would prefer DSDT values instead of default MADT value for +IRQ 1 on Ryzen 6000 systems which typically uses ActiveLow for IRQ1. + +This turned out to be a bad assumption because several vendors +add Interrupt Source Override but don't fix the DSDT. A pile of +quirks was collecting that proved this wasn't sustaintable. + +Furthermore some vendors have used ActiveHigh for IRQ1. +To solve this problem revert the following commits: +* commit 17bb7046e7ce ("ACPI: resource: Do IRQ override on all TongFang +GMxRGxx") +* commit f3cb9b740869 ("ACPI: resource: do IRQ override on Lenovo 14ALC7") +* commit bfcdf58380b1 ("ACPI: resource: do IRQ override on LENOVO IdeaPad") +* commit 7592b79ba4a9 ("ACPI: resource: do IRQ override on XMG Core 15") +* commit 9946e39fe8d0 ("ACPI: resource: skip IRQ override on AMD Zen +platforms") + +Reported-by: evilsnoo@proton.me +Link: https://bugzilla.kernel.org/show_bug.cgi?id=217394 +Reported-by: ruinairas1992@gmail.com +Link: https://bugzilla.kernel.org/show_bug.cgi?id=217406 +Reported-by: nmschulte@gmail.com +Link: https://bugzilla.kernel.org/show_bug.cgi?id=217336 +Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> +Tested-by: Werner Sembach <wse@tuxedocomputers.com> +Tested-by: Chuanhong Guo <gch981213@gmail.com> +Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> +--- + drivers/acpi/resource.c | 60 ------------------------------------------------- + 1 file changed, 60 deletions(-) + +diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c +index 0800a9d775580..1dd8d5aebf678 100644 +--- a/drivers/acpi/resource.c ++++ b/drivers/acpi/resource.c +@@ -470,52 +470,6 @@ static const struct dmi_system_id asus_laptop[] = { + { } + }; + +-static const struct dmi_system_id lenovo_laptop[] = { +- { +- .ident = "LENOVO IdeaPad Flex 5 14ALC7", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), +- DMI_MATCH(DMI_PRODUCT_NAME, "82R9"), +- }, +- }, +- { +- .ident = "LENOVO IdeaPad Flex 5 16ALC7", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), +- DMI_MATCH(DMI_PRODUCT_NAME, "82RA"), +- }, +- }, +- { } +-}; +- +-static const struct dmi_system_id tongfang_gm_rg[] = { +- { +- .ident = "TongFang GMxRGxx/XMG CORE 15 (M22)/TUXEDO Stellaris 15 Gen4 AMD", +- .matches = { +- DMI_MATCH(DMI_BOARD_NAME, "GMxRGxx"), +- }, +- }, +- { } +-}; +- +-static const struct dmi_system_id maingear_laptop[] = { +- { +- .ident = "MAINGEAR Vector Pro 2 15", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "Micro Electronics Inc"), +- DMI_MATCH(DMI_PRODUCT_NAME, "MG-VCP2-15A3070T"), +- } +- }, +- { +- .ident = "MAINGEAR Vector Pro 2 17", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "Micro Electronics Inc"), +- DMI_MATCH(DMI_PRODUCT_NAME, "MG-VCP2-17A3070T"), +- }, +- }, +- { } +-}; +- + static const struct dmi_system_id lg_laptop[] = { + { + .ident = "LG Electronics 17U70P", +@@ -539,10 +493,6 @@ struct irq_override_cmp { + static const struct irq_override_cmp override_table[] = { + { medion_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false }, + { asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false }, +- { lenovo_laptop, 6, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, true }, +- { lenovo_laptop, 10, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, true }, +- { tongfang_gm_rg, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true }, +- { maingear_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true }, + { lg_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false }, + }; + +@@ -562,16 +512,6 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity, + return entry->override; + } + +-#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 +- + return true; + } + +-- +cgit + |