On Thu, Dec 30, 2021 at 12:14:21AM +0100, Hans de Goede wrote: > x86 ACPI devices which ship with only Android as their factory image > usually declare a whole bunch of bogus I2C devices in their ACPI tables. > > Instantiating I2C clients for these bogus devices causes various issues, > e.g. GPIO/IRQ resource conflicts because sometimes drivers do bind to them. > The Android x86 kernel fork shipped on these devices has some special code > to remove these bogus devices, instead of just fixing the DSDT <sigh>. > > Use the new acpi_quirk_skip_i2c_client_enumeration() helper to > identify known boards with this issue, and on these boards ignore I2C > devices described in ACPI, with a few exceptions which are known to > always be correct (and in case of the audio-codecs where the drivers > heavily rely on the codec being enumerated through ACPI). > > Note these boards typically do actually have I2C devices, just > different ones then the ones described in their DSDT. The devices > which are actually present are manually instantiated by the > drivers/platform/x86/x86-android-tablets.c kernel module. > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>