Microsoft Surface "DTX" Driver Slated For Linux 5.13
While Microsoft often likes to proclaim their "love" for Linux, it's been independent open-source developer Maximilian Luz that has been spearheading improvements for Microsoft Surface devices on Linux. With Linux 5.13 his latest work on better handling Microsoft Surface device detachment handling should land.
Queued into the x86 platform driver area's for-next code is this Microsoft Surface DTX driver written by Luz.
The Microsoft Surface DTX driver is basically for better handling the detachment process from the "clipboard" system portion from the keyboard when wanting to act as a tablet. This DTX driver will ultimately allow interested user-space software to handle the requests or make detachment requests itself. With this DTX driver it's possible with a user-space daemon for then handling the safe unmounting of USB devices connected to the base when being detached, among other similar use-cases. Perhaps most important is user-space simply being able to query now the status of the base on Microsoft Surface devices and the driver providing a simple tablet-mode switch.
Surface DTX (Detachment System) Driver
Driver for the Surface Book clipboard detachment system (DTX). On the Surface Book series devices, the display part containing the CPU (called the clipboard) can be detached from the base (containing a battery, the keyboard, and, optionally, a discrete GPU) by (if necessary) unlocking and opening the latch connecting both parts.
This driver provides a user-space interface that can influence the behavior of this process, which includes the option to abort it in case the base is still in use or speed it up in case it is not.
With this driver in the x86 platform driver's for-next code, this should make it a feature of the upcoming Linux 5.13 cycle unless any last minute issues come up. Kudos to Maximilian Luz on this latest Microsoft Surface driver and he continues to maintain other Microsoft Surface drivers including for lid handling, the hardware platform support, hot-plugging, platform profile, system aggregator, and more.