[PATCH 0/4] platform/surface: Add support for tablet mode switch via Surface Aggregator Module

From: Maximilian Luz
Date: Fri Jun 24 2022 - 14:37:06 EST


This series adds a driver providing a tablet mode switch on the Surface
Pro 8, Surface Pro X, and Surface Laptop Studio.

These devices provide posture information via subsystems of the Surface
Aggregator Module (SAM; embedded controller). While the specific
subsystems used for the Pro and Laptop models differ, large parts of the
respective subsystem drivers would be equal. Therefore, we essentially
provide a generic framework for tablet-mode switches via the Surface
Aggregator module and use that to implement specific support for the KIP
and POS subsystems used on the aforementioned devices.

In addition, this series first introduces some helper macros for
synchronous stack-allocated SAM requests used in the subsequent patches,
extending the already existing ones.

Further, this series adds the respective firmware nodes to the Surface
Aggregator Registry.

Maximilian Luz (4):
platform/surface: aggregator: Add helper macros for requests with
argument and return value
platform/surface: Add KIP/POS tablet-mode switch driver
platform/surface: aggregator_registry: Add support for tablet mode
switch on Surface Pro 8
platform/surface: aggregator_registry: Add support for tablet mode
switch on Surface Laptop Studio

.../sysfs-bus-surface_aggregator-tabletsw | 57 ++
MAINTAINERS | 6 +
drivers/platform/surface/Kconfig | 23 +
drivers/platform/surface/Makefile | 1 +
.../surface/surface_aggregator_registry.c | 15 +-
.../surface/surface_aggregator_tabletsw.c | 533 ++++++++++++++++++
include/linux/surface_aggregator/controller.h | 125 ++++
include/linux/surface_aggregator/device.h | 36 ++
8 files changed, 795 insertions(+), 1 deletion(-)
create mode 100644 Documentation/ABI/testing/sysfs-bus-surface_aggregator-tabletsw
create mode 100644 drivers/platform/surface/surface_aggregator_tabletsw.c

--
2.36.1