[PATCH 0/3] platform/surface: Add DTX detachment system driver

From: Maximilian Luz
Date: Mon Mar 08 2021 - 13:49:22 EST


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