diff mbox series

[1/2] ACPI: x86: Add skip i2c clients quirk for Medion Lifetab S10346

Message ID 20221208110202.107326-1-hdegoede@redhat.com
State Accepted
Commit ecc6aaabcedc276128315f57755364106017c606
Headers show
Series [1/2] ACPI: x86: Add skip i2c clients quirk for Medion Lifetab S10346 | expand

Commit Message

Hans de Goede Dec. 8, 2022, 11:02 a.m. UTC
The Medion Lifetab S10346 is a x86 tablet which ships with Android x86 as
factory OS. The Android x86 kernel fork ignores I2C devices described in
the DSDT, except for the PMIC and Audio codecs.

As usual the Medion Lifetab S10346's DSDT contains a bunch of extra I2C
devices which are not actually there, causing various resource conflicts.
Add an ACPI_QUIRK_SKIP_I2C_CLIENTS quirk for the Medion Lifetab S10346 to
the acpi_quirk_skip_dmi_ids table to woraround this.

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

Comments

Andy Shevchenko Dec. 8, 2022, 1:05 p.m. UTC | #1
On Thu, Dec 8, 2022 at 3:00 PM Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
> On Thu, Dec 8, 2022 at 1:02 PM Hans de Goede <hdegoede@redhat.com> wrote:

...

> Side note. We adding a lot of DMI matching information here and there
> in the drivers and often it gets duplicated in handful of times, Maybe
> at some point we can create a global enum and matching table, let's
> say driver/platform/x86/dmi-platforms.c with
> include/linux/platform_data/x86/platform.h with global enum of the
> platforms?

Or even something close to vendor/device API, so you call like

/* h */
enum x86_microsoft_platforms ...;
int x86_dmi_match();

/* c */
enum x86_microsoft_platforms p;
int ret;

ret = x86_dmi_match("Microsoft" /* which is defined either as number
or string */);
if (ret < 0)
  not found
p = ret;
diff mbox series

Patch

diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index 635de40b5822..4e816bb402f6 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -329,6 +329,17 @@  static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
 		.driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS |
 					ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY),
 	},
+	{
+		/* Medion Lifetab S10346 */
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
+			DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"),
+			/* Way too generic, also match on BIOS data */
+			DMI_MATCH(DMI_BIOS_DATE, "10/22/2015"),
+		},
+		.driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS |
+					ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY),
+	},
 	{
 		/* Nextbook Ares 8 */
 		.matches = {