linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maximilian Luz <luzmaximilian@gmail.com>
To: Hans de Goede <hdegoede@redhat.com>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <benjamin.tissoires@redhat.com>,
	Sebastian Reichel <sre@kernel.org>
Cc: Maximilian Luz <luzmaximilian@gmail.com>,
	Mark Gross <markgross@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	platform-driver-x86@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-input@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 0/9] platform/surface: aggregator: Improve target/source handling in SSH messages
Date: Fri,  2 Dec 2022 23:33:18 +0100	[thread overview]
Message-ID: <20221202223327.690880-1-luzmaximilian@gmail.com> (raw)

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.

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.


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(-)

-- 
2.38.1


             reply	other threads:[~2022-12-02 22:33 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-02 22:33 Maximilian Luz [this message]
2022-12-02 22:33 ` [PATCH 7/9] HID: surface-hid: Use target-ID enum instead of hard-coding values Maximilian Luz
2022-12-02 22:33 ` [PATCH 8/9] platform/surface: aggregator: Enforce use of target-ID enum in device ID macros Maximilian Luz
2022-12-03  0:41   ` Sebastian Reichel
2022-12-08 16:03 ` [PATCH 0/9] platform/surface: aggregator: Improve target/source handling in SSH messages Hans de Goede
2022-12-08 16:18   ` Maximilian Luz
2022-12-08 16:24   ` Benjamin Tissoires
2022-12-08 16:38     ` Hans de Goede
2022-12-08 16:48     ` Maximilian Luz
2022-12-08 18:25       ` Benjamin Tissoires
2023-01-23 15:37 ` Hans de Goede

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221202223327.690880-1-luzmaximilian@gmail.com \
    --to=luzmaximilian@gmail.com \
    --cc=benjamin.tissoires@redhat.com \
    --cc=corbet@lwn.net \
    --cc=hdegoede@redhat.com \
    --cc=jikos@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=markgross@kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sre@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).