platform/x86: x86-android-tablets: New driver for x86 Android tablets
authorHans de Goede <hdegoede@redhat.com>
Thu, 23 Dec 2021 19:07:50 +0000 (20:07 +0100)
committerHans de Goede <hdegoede@redhat.com>
Sat, 25 Dec 2021 11:41:06 +0000 (12:41 +0100)
commit55fa3c9665bfcf32b21af8ecdeb48d5c5177d8d7
treeb73d04d84a08922132451d7ccd4e885cc70ad619
parentda78fc797fa4126f626303fe4d6cb474c1a80d26
platform/x86: x86-android-tablets: New driver for x86 Android tablets

x86 tablets which ship with Android as (part of) the factory image
typically have various problems with their DSDTs. The factory kernels
shipped on these devices typically have device addresses and GPIOs
hardcoded in the kernel, rather then specified in their DSDT.

With the DSDT containing a random collection of devices which may or
may not actually be present as well as missing devices which are
actually present.

This driver, which loads only on affected models based on DMI matching,
adds DMI based instantiating of kernel devices for devices which are
missing from the DSDT, fixing e.g. battery monitoring, touchpads and/or
accelerometers not working.

Note the Kconfig help text also refers to "various fixes" ATM there are
no such fixes, but there are also known cases where entries are present
in the DSDT but they contain bugs, such as missing/wrong GPIOs. The plan
is to also add fixes for things like this here in the future.

This is the least ugly option to get these devices to fully work and to
do so without adding any extra code to the main kernel image (vmlinuz)
when built as a module.

Link: https://lore.kernel.org/platform-driver-x86/20211031162428.22368-1-hdegoede@redhat.com/
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20211223190750.397487-1-hdegoede@redhat.com
MAINTAINERS
drivers/platform/x86/Kconfig
drivers/platform/x86/Makefile
drivers/platform/x86/x86-android-tablets.c [new file with mode: 0644]