Linux 5.17 To Introduce A New Driver Just To Deal With Buggy x86 Tablets
Longtime Linux developer Hans de Goede of Red Hat has been responsible for numerous x86 laptop/tablet improvements in recent years along with other desktop-related improvements at Red Hat. He has now queued up into the x86 platform drivers tree the x86-android-tablets driver he wrote for dealing with the mess of x86 (mostly Android) tablets that don't behave properly out-of-the-box with Linux.
As part of the ACPI DSDT (Differentiated System Description Table), many x86 tablets have simply invalid entries and other problems that cause issue when trying to run mainline Linux on said hardware.
Hans explains as part of the commit currently in the platform-drivers-x86 "for-next" branch, "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."
This new x86-android-tablets driver will basically be a catch-all solution for overrides based on device matching. Hans ended the patch message with, "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."
The Chuwi Hi8 is one of the Intel x86 tablets initially being corrected by this new driver.
As part of the initial workarounds in x86-android-tablets, the Chuwi Hi8's DSDT is known to contain a lot of bogus ACPI I2C devices for the touchscreen and accelerometer that are now corrected. The initial driver also fixes Xiaomi tablet issues if the bootloader is not the Xiaomi own signed Android loader and in turn it then hides devices. Additional quirks/workarounds are expected to be added to this driver moving forward.