The Microsoft Surface Book series devices consist of a so-called clipboard part (containing the CPU, touchscreen, and primary battery) and a base part (containing keyboard, secondary battery, and optional discrete GPU). These parts can be separated, i.e. the clipboard can be detached and used as tablet. This detachment process is managed by a subsystem of the Surface System Aggregator Module (SSAM). As that process is a bit more complex, i.e. can involve user interaction, it seems the best way to implement this is to provide a somewhat cleaned-up version of this interface to userspace. This series adds a driver (and documentation) for the detachment system which provides such an interface. See the commit message of the first patch for more details and a link to a user-space daemon using this interface. Support for the Surface Book 3 is added in patch 2, user-space API documentation in patch 3. Regards, Max Maximilian Luz (3): platform/surface: Add DTX driver platform/surface: dtx: Add support for native SSAM devices docs: driver-api: Add Surface DTX driver documentation .../surface_aggregator/clients/dtx.rst | 718 +++++++++ .../surface_aggregator/clients/index.rst | 1 + .../userspace-api/ioctl/ioctl-number.rst | 2 + MAINTAINERS | 8 + drivers/platform/surface/Kconfig | 20 + drivers/platform/surface/Makefile | 1 + drivers/platform/surface/surface_dtx.c | 1289 +++++++++++++++++ include/uapi/linux/surface_aggregator/dtx.h | 146 ++ 8 files changed, 2185 insertions(+) create mode 100644 Documentation/driver-api/surface_aggregator/clients/dtx.rst create mode 100644 drivers/platform/surface/surface_dtx.c create mode 100644 include/uapi/linux/surface_aggregator/dtx.h -- 2.30.1