linux-xiaomi-chiron/drivers/platform/surface
Maximilian Luz 7518eefeb7 platform/surface: aggregator_registry: Add support for keyboard cover on Surface Pro 8
Add support for the detachable keyboard cover on the Surface Pro 8.

The keyboard cover on the Surface Pro 8 is, unlike the keyboard covers
of earlier Surface Pro generations, handled via the Surface System
Aggregator Module (SSAM). The keyboard and touchpad (as well as other
HID input devices) of this cover are standard SSAM HID client devices
(just like keyboard and touchpad on e.g. the Surface Laptop 3 and 4),
however, some care needs to be taken as they can be physically detached
(similarly to the Surface Book 3). Specifically, the respective SSAM
client devices need to be removed when the keyboard cover has been
detached and (re-)initialized when the keyboard cover has been
(re-)attached.

On the Surface Pro 8, detachment of the keyboard cover (and by extension
its devices) is managed via the KIP subsystem. Therefore, said devices
need to be registered under the KIP device hub, which in turn will
remove and re-create/re-initialize those devices as needed.

Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Link: https://lore.kernel.org/r/20220527023447.2460025-13-luzmaximilian@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-06-13 17:25:09 +02:00
..
aggregator platform/surface: aggregator: Allow notifiers to avoid communication on unregistering 2022-06-13 17:25:07 +02:00
Kconfig platform/surface: Remove Surface 3 Button driver 2022-03-02 12:33:00 +01:00
Makefile platform/surface: Remove Surface 3 Button driver 2022-03-02 12:33:00 +01:00
surface3-wmi.c platform/surface: surface3-wmi: Simplify resource management 2022-02-03 11:56:04 +01:00
surface3_power.c surface: surface3_power: Fix battery readings on batteries without a serial number 2022-03-02 11:42:36 +01:00
surface_acpi_notify.c platform/surface: Replace acpi_bus_get_device() 2022-02-03 11:56:01 +01:00
surface_aggregator_cdev.c platform/surface: aggregator_cdev: Add lockdep support 2021-06-16 17:47:53 +02:00
surface_aggregator_registry.c platform/surface: aggregator_registry: Add support for keyboard cover on Surface Pro 8 2022-06-13 17:25:09 +02:00
surface_dtx.c platform/surface: dtx: Add missing mutex_destroy() call in failure path 2021-06-16 17:47:52 +02:00
surface_gpe.c platform/surface: gpe: Add support for Surface Pro 8 2022-05-06 13:05:57 +02:00
surface_hotplug.c platform/surface: Add Surface Hot-Plug driver 2021-02-08 16:59:21 +01:00
surface_platform_profile.c platform/surface: aggregator: Make SSAM_DEFINE_SYNC_REQUEST_x define static functions 2021-03-08 11:33:28 +01:00
surfacepro3_button.c platform: x86: ACPI: Get rid of ACPICA message printing 2021-03-08 11:33:39 +01:00