On Thu, Dec 8, 2022 at 5:03 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > Hi Maximilian, > > On 12/2/22 23:33, Maximilian Luz wrote: > > We have some new insights into the Serial Hub protocol, obtained through > > reverse engineering. In particular, regarding the command structure. The > > input/output target IDs actually represent source and target IDs of > > (what looks like) physical entities (specifically: host, SAM EC, KIP EC, > > debug connector, and SurfLink connector). > > > > This series aims to improve handling of messages with regards to those > > new findings and, mainly, improve clarity of the documentation and usage > > around those fields. > > > > See the discussion in > > > > https://github.com/linux-surface/surface-aggregator-module/issues/64 > > > > for more details. > > > > There are a couple of standouts: > > > > - Patch 1 ensures that we only handle commands actually intended for us. > > It's possible that we receive messages not intended for us when we > > enable debugging. I've kept it intentionally minimal to simplify > > backporting. The rest of the series patch 9 focuses more on clarity > > and documentation, which is probably too much to backport. > > > > - Patch 8 touches on multiple subsystems. The intention is to enforce > > proper usage and documentation of target IDs in the SSAM_SDEV() / > > SSAM_VDEV() macros. As it directly touches those macros I > > unfortunately can't split it up by subsystem. > > > > - Patch 9 is a loosely connected cleanup for consistency. > > Thank you for the patches. Unfortunately I don't have time atm to > review this. > > And the next 2 weeks are the merge window, followed by 2 weeks > of christmas vacation. > > So I'm afraid that I likely won't get around to reviewing > this until the week of January 9th. > > > Hans, Jiri, Benjamin, Sebastian: While patch 8 ("platform/surface: > > aggregator: Enforce use of target-ID enum in device ID macros") touches > > multiple subsystems, it should be possible to take the whole series > > through the pdx86 tree. The changes in other subsystems are fairly > > limited. > > I agree that it will be best to take all of this upstream through the > pdx86 tree. Sebastian thank you for the ack for patch 8/9. > > Jiri or Benjamin may we have your ack for merging patch 7/9 + 8/9 > through the pdx86 tree ? I can give you an ack for taking those through your tree, but I can not review the patches themselves because I was only CC-ed to those 2, and so was linux-input. Given that SSAM_SSH_TID_KIP is not in my current tree I assume it comes from this series. Anyway, enough ranting :) If you think the patches are OK, they are really small concerning the HID part, so feel free to take them through your tree Hans. Cheers, Benjamin > > Regards, > > Hans > > > > > > Maximilian Luz (9): > > platform/surface: aggregator: Ignore command messages not intended for > > us > > platform/surface: aggregator: Improve documentation and handling of > > message target and source IDs > > platform/surface: aggregator: Add target and source IDs to command > > trace events > > platform/surface: aggregator_hub: Use target-ID enum instead of > > hard-coding values > > platform/surface: aggregator_tabletsw: Use target-ID enum instead of > > hard-coding values > > platform/surface: dtx: Use target-ID enum instead of hard-coding > > values > > HID: surface-hid: Use target-ID enum instead of hard-coding values > > platform/surface: aggregator: Enforce use of target-ID enum in device > > ID macros > > platform/surface: aggregator_registry: Fix target-ID of base-hub > > > > .../driver-api/surface_aggregator/client.rst | 4 +- > > .../driver-api/surface_aggregator/ssh.rst | 36 ++++----- > > drivers/hid/surface-hid/surface_hid.c | 2 +- > > drivers/hid/surface-hid/surface_kbd.c | 2 +- > > .../platform/surface/aggregator/controller.c | 12 +-- > > .../platform/surface/aggregator/ssh_msgb.h | 4 +- > > .../surface/aggregator/ssh_request_layer.c | 15 ++++ > > drivers/platform/surface/aggregator/trace.h | 73 +++++++++++++++++-- > > .../platform/surface/surface_aggregator_hub.c | 8 +- > > .../surface/surface_aggregator_registry.c | 2 +- > > .../surface/surface_aggregator_tabletsw.c | 10 +-- > > drivers/platform/surface/surface_dtx.c | 20 ++--- > > .../surface/surface_platform_profile.c | 2 +- > > drivers/power/supply/surface_battery.c | 4 +- > > drivers/power/supply/surface_charger.c | 2 +- > > include/linux/surface_aggregator/controller.h | 4 +- > > include/linux/surface_aggregator/device.h | 50 ++++++------- > > include/linux/surface_aggregator/serial_hub.h | 40 ++++++---- > > 18 files changed, 191 insertions(+), 99 deletions(-) > > >