diff mbox series

ACPI: resource: Add IRQ override quirk for PCSpecialist Elimina Pro 16 M

Message ID 20230810090011.104770-1-hdegoede@redhat.com (mailing list archive)
State Mainlined, archived
Headers show
Series ACPI: resource: Add IRQ override quirk for PCSpecialist Elimina Pro 16 M | expand

Commit Message

Hans de Goede Aug. 10, 2023, 9 a.m. UTC
The PCSpecialist Elimina Pro 16 M laptop model is a Zen laptop which
needs to use the MADT IRQ settings override and which does not have
an INT_SRC_OVR entry for IRQ 1 in its MADT.

So this model needs a DMI quirk to enable the MADT IRQ settings override
to fix its keyboard not working.

Fixes: a9c4a912b7dc ("ACPI: resource: Remove "Zen" specific match and quirks")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217394#c18
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Linux regressions mailing list <regressions@lists.linux.dev>
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/acpi/resource.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Rafael J. Wysocki Aug. 10, 2023, 2:49 p.m. UTC | #1
On Thu, Aug 10, 2023 at 11:00 AM Hans de Goede <hdegoede@redhat.com> wrote:
>
> The PCSpecialist Elimina Pro 16 M laptop model is a Zen laptop which
> needs to use the MADT IRQ settings override and which does not have
> an INT_SRC_OVR entry for IRQ 1 in its MADT.
>
> So this model needs a DMI quirk to enable the MADT IRQ settings override
> to fix its keyboard not working.
>
> Fixes: a9c4a912b7dc ("ACPI: resource: Remove "Zen" specific match and quirks")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217394#c18
> Cc: Mario Limonciello <mario.limonciello@amd.com>
> Cc: Linux regressions mailing list <regressions@lists.linux.dev>
> Cc: All applicable <stable@vger.kernel.org>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/acpi/resource.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
> index 8e32dd5776f5..a4d9f149b48d 100644
> --- a/drivers/acpi/resource.c
> +++ b/drivers/acpi/resource.c
> @@ -498,6 +498,17 @@ static const struct dmi_system_id maingear_laptop[] = {
>         { }
>  };
>
> +static const struct dmi_system_id pcspecialist_laptop[] = {
> +       {
> +               .ident = "PCSpecialist Elimina Pro 16 M",
> +               .matches = {
> +                       DMI_MATCH(DMI_SYS_VENDOR, "PCSpecialist"),
> +                       DMI_MATCH(DMI_PRODUCT_NAME, "Elimina Pro 16 M"),
> +               },
> +       },
> +       { }
> +};
> +
>  static const struct dmi_system_id lg_laptop[] = {
>         {
>                 .ident = "LG Electronics 17U70P",
> @@ -523,6 +534,7 @@ static const struct irq_override_cmp override_table[] = {
>         { asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
>         { tongfang_gm_rg, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
>         { maingear_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
> +       { pcspecialist_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
>         { lg_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
>  };
>
> --

Applied and added to the linux-next branch in linux-pm.git, thanks!
Hans de Goede Aug. 11, 2023, 2:11 p.m. UTC | #2
Hi,

On 8/10/23 11:00, Hans de Goede wrote:
> The PCSpecialist Elimina Pro 16 M laptop model is a Zen laptop which
> needs to use the MADT IRQ settings override and which does not have
> an INT_SRC_OVR entry for IRQ 1 in its MADT.
> 
> So this model needs a DMI quirk to enable the MADT IRQ settings override
> to fix its keyboard not working.
> 
> Fixes: a9c4a912b7dc ("ACPI: resource: Remove "Zen" specific match and quirks")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217394#c18
> Cc: Mario Limonciello <mario.limonciello@amd.com>
> Cc: Linux regressions mailing list <regressions@lists.linux.dev>
> Cc: All applicable <stable@vger.kernel.org>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

I have received confirmation from the reporter that this bug *avoids* things regressing on the PCSpecialist Elimina Pro 16 M after reverting a9c4a912b7dc ("ACPI: resource: Remove "Zen" specific match and quirks").

Regards,

Hans



> ---
>  drivers/acpi/resource.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
> index 8e32dd5776f5..a4d9f149b48d 100644
> --- a/drivers/acpi/resource.c
> +++ b/drivers/acpi/resource.c
> @@ -498,6 +498,17 @@ static const struct dmi_system_id maingear_laptop[] = {
>  	{ }
>  };
>  
> +static const struct dmi_system_id pcspecialist_laptop[] = {
> +	{
> +		.ident = "PCSpecialist Elimina Pro 16 M",
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "PCSpecialist"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "Elimina Pro 16 M"),
> +		},
> +	},
> +	{ }
> +};
> +
>  static const struct dmi_system_id lg_laptop[] = {
>  	{
>  		.ident = "LG Electronics 17U70P",
> @@ -523,6 +534,7 @@ static const struct irq_override_cmp override_table[] = {
>  	{ asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
>  	{ tongfang_gm_rg, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
>  	{ maingear_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
> +	{ pcspecialist_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
>  	{ lg_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
>  };
>
diff mbox series

Patch

diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
index 8e32dd5776f5..a4d9f149b48d 100644
--- a/drivers/acpi/resource.c
+++ b/drivers/acpi/resource.c
@@ -498,6 +498,17 @@  static const struct dmi_system_id maingear_laptop[] = {
 	{ }
 };
 
+static const struct dmi_system_id pcspecialist_laptop[] = {
+	{
+		.ident = "PCSpecialist Elimina Pro 16 M",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "PCSpecialist"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Elimina Pro 16 M"),
+		},
+	},
+	{ }
+};
+
 static const struct dmi_system_id lg_laptop[] = {
 	{
 		.ident = "LG Electronics 17U70P",
@@ -523,6 +534,7 @@  static const struct irq_override_cmp override_table[] = {
 	{ asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
 	{ tongfang_gm_rg, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
 	{ maingear_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
+	{ pcspecialist_laptop, 1, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW, 1, true },
 	{ lg_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0, false },
 };