diff mbox series

[1/2] ACPI: x86: Add skip i2c clients quirk for Acer Iconia One 8 A1-840

Message ID 20241116095825.11660-1-hdegoede@redhat.com
State Accepted
Commit 82f250ed1a1dcde0ad2a1513f85af7f9514635e8
Headers show
Series [1/2] ACPI: x86: Add skip i2c clients quirk for Acer Iconia One 8 A1-840 | expand

Commit Message

Hans de Goede Nov. 16, 2024, 9:58 a.m. UTC
The Acer Iconia One 8 A1-840 (not to be confused with the A1-840FHD which
is a different model) ships with Android 4.4 as factory OS and has
the usual broken DSDT issues for x86 Android tablets.

Add quirks to skip ACPI I2C client enumeration and disable ACPI battery/AC
and ACPI GPIO event handlers.

Also add the "INT33F5" HID for the TI PMIC used on this tablet to the list
of HIDs for which not to skip i2c_client instantiation, since we do want
an ACPI instantiated i2c_client for the PMIC.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/acpi/x86/utils.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Rafael J. Wysocki Nov. 22, 2024, 8:13 p.m. UTC | #1
On Sat, Nov 16, 2024 at 10:58 AM Hans de Goede <hdegoede@redhat.com> wrote:
>
> The Acer Iconia One 8 A1-840 (not to be confused with the A1-840FHD which
> is a different model) ships with Android 4.4 as factory OS and has
> the usual broken DSDT issues for x86 Android tablets.
>
> Add quirks to skip ACPI I2C client enumeration and disable ACPI battery/AC
> and ACPI GPIO event handlers.
>
> Also add the "INT33F5" HID for the TI PMIC used on this tablet to the list
> of HIDs for which not to skip i2c_client instantiation, since we do want
> an ACPI instantiated i2c_client for the PMIC.
>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/acpi/x86/utils.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
> index 423565c31d5e..1bb425b78032 100644
> --- a/drivers/acpi/x86/utils.c
> +++ b/drivers/acpi/x86/utils.c
> @@ -308,6 +308,18 @@ static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
>                                         ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
>                                         ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
>         },
> +       {
> +               /* Acer Iconia One 8 A1-840 (non FHD version) */
> +               .matches = {
> +                       DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
> +                       DMI_MATCH(DMI_PRODUCT_NAME, "BayTrail"),
> +                       /* Above strings are too generic also match BIOS date */
> +                       DMI_MATCH(DMI_BIOS_DATE, "04/01/2014"),
> +               },
> +               .driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS |
> +                                       ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
> +                                       ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
> +       },
>         {
>                 .matches = {
>                         DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
> @@ -425,6 +437,7 @@ static const struct acpi_device_id i2c_acpi_known_good_ids[] = {
>         { "10EC5640", 0 }, /* RealTek ALC5640 audio codec */
>         { "10EC5651", 0 }, /* RealTek ALC5651 audio codec */
>         { "INT33F4", 0 },  /* X-Powers AXP288 PMIC */
> +       { "INT33F5", 0 },  /* TI Dollar Cove PMIC */
>         { "INT33FD", 0 },  /* Intel Crystal Cove PMIC */
>         { "INT34D3", 0 },  /* Intel Whiskey Cove PMIC */
>         { "NPCE69A", 0 },  /* Asus Transformer keyboard dock */
> --

Applied as 6.13-rc material along with the [2/2], thanks!
diff mbox series

Patch

diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index 423565c31d5e..1bb425b78032 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -308,6 +308,18 @@  static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
 					ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
 					ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
 	},
+	{
+		/* Acer Iconia One 8 A1-840 (non FHD version) */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "BayTrail"),
+			/* Above strings are too generic also match BIOS date */
+			DMI_MATCH(DMI_BIOS_DATE, "04/01/2014"),
+		},
+		.driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS |
+					ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
+					ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
+	},
 	{
 		.matches = {
 			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
@@ -425,6 +437,7 @@  static const struct acpi_device_id i2c_acpi_known_good_ids[] = {
 	{ "10EC5640", 0 }, /* RealTek ALC5640 audio codec */
 	{ "10EC5651", 0 }, /* RealTek ALC5651 audio codec */
 	{ "INT33F4", 0 },  /* X-Powers AXP288 PMIC */
+	{ "INT33F5", 0 },  /* TI Dollar Cove PMIC */
 	{ "INT33FD", 0 },  /* Intel Crystal Cove PMIC */
 	{ "INT34D3", 0 },  /* Intel Whiskey Cove PMIC */
 	{ "NPCE69A", 0 },  /* Asus Transformer keyboard dock */