150 lines
4.8 KiB
Diff
150 lines
4.8 KiB
Diff
From: Mario Limonciello @ 2023-06-01 22:11 UTC (permalink / raw)
|
|
To: linux-acpi, rafael
|
|
Cc: linux-kernel, Mario Limonciello, ofenfisch, wse, adam.niederer,
|
|
adrian, jirislaby, Renjith.Pananchikkal, anson.tsao,
|
|
Richard.Gong, Chuanhong Guo, evilsnoo, ruinairas1992, nmschulte
|
|
|
|
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")
|
|
|
|
Cc: ofenfisch@googlemail.com
|
|
Cc: wse@tuxedocomputers.com
|
|
Cc: adam.niederer@gmail.com
|
|
Cc: adrian@freund.io
|
|
Cc: jirislaby@kernel.org
|
|
Cc: Renjith.Pananchikkal@amd.com
|
|
Cc: anson.tsao@amd.com
|
|
Cc: Richard.Gong@amd.com
|
|
Cc: Chuanhong Guo <gch981213@gmail.com>
|
|
Reported-by: evilsnoo@proton.me
|
|
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217394
|
|
Reported-by: ruinairas1992@gmail.com
|
|
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217406
|
|
Reported-by: nmschulte@gmail.com
|
|
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217336
|
|
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
---
|
|
v2->v3:
|
|
* Adjust to drop heuristics entirely
|
|
* Drop tested tags
|
|
* Add more links and people to Cc
|
|
* Drop Fixes tag as this got a lot more risky
|
|
v1->v2:
|
|
* Rebase on 71a485624c4c ("ACPI: resource: Add IRQ override quirk for LG UltraPC 17U70P")
|
|
* Pick up tag
|
|
|
|
Rafael,
|
|
Please hold off on picking this up until the majority of those on CC
|
|
have tested it on hardware they have and reported results.
|
|
|
|
Everyone else,
|
|
Please test. If you have problems with this applied, please share
|
|
an acpidump and dmesg either on a bug or to me privately.
|
|
---
|
|
drivers/acpi/resource.c | 60 -----------------------------------------
|
|
1 file changed, 60 deletions(-)
|
|
|
|
diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
|
|
index 0800a9d77558..1dd8d5aebf67 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;
|
|
}
|
|
|
|
--
|
|
2.34.1
|