Hi, On 3/10/21 11:53 PM, Maximilian Luz wrote: > This series adds support for the Surface System Aggregator Module (SSAM) > HID transport subsystem. > > The SSAM is an embedded controller, found on 5th- and later generation > Microsoft Surface devices. On some of these devices (specifically > Surface Laptops 1, 2, and 3, as well as Surface Book 3), built-in input > devices are connected via the SSAM. These devices communicate (mostly) > via normal HID reports, so adding support for them is (mostly) just a > matter of implementing an HID transport driver. > > SSAM actually has two different HID interfaces: One (legacy) interface > used on Surface Laptops 1 and 2, and a newer interface for the rest. The > newer interface allows for multiple HID devices to be addressed and is > implemented in the first patch. The older interface only allows a single > HID device to be connected and, furthermore, only allows a single output > report, specifically one for the caps lock LED. This is implemented in > the second patch. > > See the commit messages of the respective patches for more details. > > Regards, > Max > > Note: This patch depends on the > > platform/surface: Add Surface Aggregator device registry > > series. More specifically patch > > platform/surface: Set up Surface Aggregator device registry > > The full series has been merged into the for-next branch of the > platform-drivers-x86 tree [1]. The commit in question can be found at > [2]. > > [1]: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=for-next > [2]: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/commit/?h=for-next&id=fc622b3d36e6d91330fb21506b9ad1e3206a4dde Jiri, I'll prepare an immutable branch with the necessary pdx86 pre-reqs for this and I'll send you a pull-req for that IM branch, then you can merge these through the HID tree after merging that pull-req. Regards, Hans > > Maximilian Luz (2): > HID: Add support for Surface Aggregator Module HID transport > HID: surface-hid: Add support for legacy keyboard interface > > MAINTAINERS | 7 + > drivers/hid/Kconfig | 2 + > drivers/hid/Makefile | 2 + > drivers/hid/surface-hid/Kconfig | 42 +++ > drivers/hid/surface-hid/Makefile | 7 + > drivers/hid/surface-hid/surface_hid.c | 253 +++++++++++++++++ > drivers/hid/surface-hid/surface_hid_core.c | 272 +++++++++++++++++++ > drivers/hid/surface-hid/surface_hid_core.h | 77 ++++++ > drivers/hid/surface-hid/surface_kbd.c | 300 +++++++++++++++++++++ > 9 files changed, 962 insertions(+) > create mode 100644 drivers/hid/surface-hid/Kconfig > create mode 100644 drivers/hid/surface-hid/Makefile > create mode 100644 drivers/hid/surface-hid/surface_hid.c > create mode 100644 drivers/hid/surface-hid/surface_hid_core.c > create mode 100644 drivers/hid/surface-hid/surface_hid_core.h > create mode 100644 drivers/hid/surface-hid/surface_kbd.c >