On Tue, Jul 12, 2022 at 4:01 AM Chuanhong Guo <gch981213@xxxxxxxxx> wrote: > > 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@xxxxxxx> > Signed-off-by: Chuanhong Guo <gch981213@xxxxxxxxx> I need an ACK from Mario here. > --- > 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 >