[PATCH 00/12] ACPI / pdx86: Add support for x86 Android tablets with broken DSDTs
From: Hans de Goede <hidden>
Date: 2021-12-29 23:14:43
Also in:
linux-acpi, linux-i2c, platform-driver-x86
Hi All,
As a small(ish) hoppy project over the holidays I've been looking into
getting some (somewhat older) x86 tablets which ship with Android as the
only OS on their factory image working with the mainline kernel.
These typically have pretty broken DSDTs since the Android image kernel
just has everything hardcoded.
This patch-series makes most things on 3 of these tablets work with the
mainline kernel and lays the groundwork for adding support for similar
tablets.
Since the ACPI tables on these devices clearly are buggy this series is
written so as to add minimal changes to the ACPI core code, leaving all
of the heavy lifting to the recently introduced (in linux-next)
drivers/platform/x86/x86-android-tablets.c module, which when built as
a module only autoloads on affected devices based on DMI matching.
And when this module is disabled the added acpi_quirk_skip_*_enumeration()
helpers are replaced by inline stubs and even the minimally added core
code will be optimized away.
The ACPI core changes are in patches 1-3 of this series. Since the
i2c and serdev ACPI enumeration changes are very small and depend on
patch 1, I believe it would be best for patches 1-3 to all be merged
through Rafael's ACPI tree.
Greg and Wolfram, may we have your acks for this please?
I will take care of merging the rest of the series through the pdx86
tree (these 2 parts of this series can be merged independenly without
issues).
Regards,
Hans
Hans de Goede (12):
ACPI / x86: Add acpi_quirk_skip_[i2c_client|serdev]_enumeration()
helpers
i2c: acpi: Do not instantiate I2C-clients on boards with known bogus
DSDT entries
serdev: Do not instantiate serdevs on boards with known bogus DSDT
entries
platform/x86: x86-android-tablets: Don't return -EPROBE_DEFER from a
non probe() function
platform/x86: x86-android-tablets: Add support for PMIC interrupts
platform/x86: x86-android-tablets: Add support for instantiating
platform-devs
platform/x86: x86-android-tablets: Add support for instantiating
serdevs
platform/x86: x86-android-tablets: Add support for registering GPIO
lookup tables
platform/x86: x86-android-tablets: Add support for preloading modules
platform/x86: x86-android-tablets: Add Asus TF103C data
platform/x86: x86-android-tablets: Add Asus MeMO Pad 7 ME176C data
platform/x86: x86-android-tablets: Add TM800A550L data
drivers/acpi/x86/utils.c | 96 ++++
drivers/i2c/i2c-core-acpi.c | 17 +
drivers/platform/x86/Kconfig | 2 +-
drivers/platform/x86/x86-android-tablets.c | 562 ++++++++++++++++++++-
drivers/tty/serdev/core.c | 14 +
include/acpi/acpi_bus.h | 16 +
6 files changed, 698 insertions(+), 9 deletions(-)
--
2.33.1