[PATCH 0/3] platform/surface: Add support for tablet-mode switch on Surface Pro 9

From: Maximilian Luz
Date: Sat Mar 04 2023 - 14:46:45 EST


This series adds support for the tablet-mode switch on the Surface Pro
9. On that device, the posture subsystem (POS) can be used to query the
state of the Type-Cover (detached, laptop-mode, flipped-back, ...) and
receive notifications when it changes. We can use this to implement a
tablet mode switch, extending the driver already in use on the Surface
Laptop Studio.

More specifically, the posture subsystem allows for different posture
sources, identified by a numerical ID, each of which can have different
states. At the moment, however, the tablet-mode switch driver using the
POS subsystem only supports the Surface Laptop Studio, and support for
that is hard-coded.

To support the Surface Pro 9, we therefore need to adapt the driver to
properly disambiguate between different posture sources (patch 1) and
then implement the respective functions for the source ID representing
the Type-Cover (patch 2). Finally, we also need to add the respective
device to the Surface Pro 9 entry in the aggregator registry, to allow
the driver to load (patch 3).

Maximilian Luz (3):
platform/surface: aggregator_tabletsw: Properly handle different
posture source IDs
platform/surface: aggregator_tabletsw: Add support for Type-Cover
posture source
platform/surface: aggregator_registry: Add support for tablet-mode
switch on Surface Pro 9

.../surface/surface_aggregator_registry.c | 2 +-
.../surface/surface_aggregator_tabletsw.c | 180 ++++++++++++++----
2 files changed, 142 insertions(+), 40 deletions(-)

--
2.39.2