linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] platform/surface: aggregator: Add support for client hot-removal
@ 2022-05-20 18:34 Maximilian Luz
  2022-05-20 18:34 ` [PATCH 01/10] platform/surface: aggregator: Allow devices to be marked as hot-removed Maximilian Luz
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Maximilian Luz @ 2022-05-20 18:34 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maximilian Luz, Mark Gross, Sebastian Reichel, Jiri Kosina,
	Benjamin Tissoires, Jonathan Corbet, platform-driver-x86,
	linux-pm, linux-input, linux-doc, linux-kernel

This series adds support for the type cover of the Surface Pro 8. On the
Pro 8, the type cover is (unlike on previous generations) handled via
the Surface System Aggregator Module (SSAM). As the type cover is
detachable, care needs to be taken and the respective SSAM (HID) client
devices need to be properly removed when detached and re-initialized
when attached.

Therefore, this series does three things:

 1. Improve hot-removal support for SSAM client devices. When
    hot-removing clients, subsequent communication may time out.

    In the worst case, this can lead to problems when devices are
    detached and re-attached quickly, before we can remove their
    respective kernel representations. This can then lead to devices
    being in an uninitialized state, preventing, for example, touchpad
    gestures from working properly as the required HID feature report
    has not been sent.

    Therefore, handle hot-removal of devices more gracefully by avoiding
    communication once it has been detected and ensure that devices are
    actually removed.
 
 2. Generify SSAM subsystem hubs and add a KIP hub. On the Surface Pro
    8, the KIP subsystem (only that abbreviation is known) is
    responsible for managing type-cover devices. This hub acts as the
    controller for device removal similar to the BAS (detachable base)
    subsystem hub on the Surface Book 3 (therefore we can share most of
    the code between them).

 3. Add the (HID) type-cover clients of the Surface Pro 8 to the
    aggregator registry.

Regards,
Max


Maximilian Luz (10):
  platform/surface: aggregator: Allow devices to be marked as
    hot-removed
  platform/surface: aggregator: Allow notifiers to avoid communication
    on unregistering
  platform/surface: aggregator_registry: Use client device wrappers for
    notifier registration
  power/supply: surface_charger: Use client device wrappers for notifier
    registration
  power/supply: surface_battery: Use client device wrappers for notifier
    registration
  HID: surface-hid: Add support for hot-removal
  platform/surface: aggregator: Add comment for KIP subsystem category
  platform/surface: aggregator_registry: Generify subsystem hub
    functionality
  platform/surface: aggregator_registry: Add KIP device hub
  platform/surface: aggregator_registry: Add support for keyboard cover
    on Surface Pro 8

 .../driver-api/surface_aggregator/client.rst  |   6 +-
 drivers/hid/surface-hid/surface_hid_core.c    |  38 +-
 .../platform/surface/aggregator/controller.c  |  53 ++-
 .../surface/surface_aggregator_registry.c     | 401 +++++++++++++-----
 drivers/power/supply/surface_battery.c        |   4 +-
 drivers/power/supply/surface_charger.c        |   4 +-
 include/linux/surface_aggregator/controller.h |  24 +-
 include/linux/surface_aggregator/device.h     | 114 ++++-
 include/linux/surface_aggregator/serial_hub.h |   2 +-
 9 files changed, 501 insertions(+), 145 deletions(-)

-- 
2.36.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-05-26 23:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-20 18:34 [PATCH 00/10] platform/surface: aggregator: Add support for client hot-removal Maximilian Luz
2022-05-20 18:34 ` [PATCH 01/10] platform/surface: aggregator: Allow devices to be marked as hot-removed Maximilian Luz
2022-05-20 18:34 ` [PATCH 02/10] platform/surface: aggregator: Allow notifiers to avoid communication on unregistering Maximilian Luz
2022-05-20 18:34 ` [PATCH 06/10] HID: surface-hid: Add support for hot-removal Maximilian Luz
2022-05-26 23:55   ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).