From: Maximilian Luz <luzmaximilian@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: "Maximilian Luz" <luzmaximilian@gmail.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Mark Gross" <mgross@linux.intel.com>,
"Andy Shevchenko" <andy.shevchenko@gmail.com>,
"Barnabás Pőcze" <pobrn@protonmail.com>,
"Arnd Bergmann" <arnd@arndb.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Rob Herring" <robh@kernel.org>,
"Jiri Slaby" <jirislaby@kernel.org>,
"Rafael J . Wysocki" <rjw@rjwysocki.net>,
"Len Brown" <lenb@kernel.org>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Masahiro Yamada" <masahiroy@kernel.org>,
"Michal Marek" <michal.lkml@markovi.net>,
"Jonathan Corbet" <corbet@lwn.net>,
"Blaž Hrastnik" <blaz@mxxn.io>,
"Dorian Stoll" <dorian.stoll@tmsp.io>,
platform-driver-x86@vger.kernel.org,
linux-serial@vger.kernel.org, linux-acpi@vger.kernel.org,
linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org
Subject: [PATCH v3 0/9] Add support for Microsoft Surface System Aggregator Module
Date: Mon, 21 Dec 2020 19:39:50 +0100 [thread overview]
Message-ID: <20201221183959.1186143-1-luzmaximilian@gmail.com> (raw)
Hello,
Here is version three of the Surface System Aggregator Module (SAM/SSAM)
driver series, adding initial support for the embedded controller on 5th
and later generation Microsoft Surface devices. Initial support includes
the ACPI interface to the controller, via which battery and thermal
information is provided on some of these devices.
The first version and cover letter detailing what this series is about
can be found at
https://lore.kernel.org/platform-driver-x86/20201115192143.21571-1-luzmaximilian@gmail.com/
the previous version (v2) at
https://lore.kernel.org/platform-driver-x86/20201203212640.663931-1-luzmaximilian@gmail.com/
This patch-set can also be found at the following repository and
reference, if you prefer to look at a kernel tree instead of these
emails:
https://github.com/linux-surface/kernel tags/s/surface-aggregator/v3
Thank you all for the feedback to and reviews of the previous versions,
I hope I have addressed all comments.
Regards,
Max
Note: In v3, I have dropped the explicit dependency of the core module
and driver on CONFIG_ACPI due to the incoming
[PATCH] platform/surface: SURFACE_PLATFORMS should depend on ACPI
Thus, this series depends on said patch. This patch can be found at
https://www.spinics.net/lists/platform-driver-x86/msg23929.html
Changes in v1 (from RFC, overview):
- move to platform/surface
- add copyright lines
- change SPDX identifier to GPL-2.0+ (was GPL-2.0-or-later)
- change user-space interface from debugfs to misc-device
- address issues in user-space interface
- fix typos in commit messages and documentation
- fix some bugs, address other issues
Changes in v2 (overview):
- simplify some code, mostly with regards to concurrency
- add architectural overview to documentation
- improve comments for documentation
- use printk specifier for hex prefix instead of hard-coding it
- spell check comments and strings, fix typos
- unify comment style
- run checkpatch --strict, fix these and other style issues
Changes in v3 (overview):
- remove explicit dependency on ACPI as this is going to be covered by
CONFIG_SURFACE_PLATFORMS
- simplify locking requirements
- help enforce locking requirements via lockdep assertions
- fix false-positive lockdep warning
- warn on event enablement reference counter exhaustion
- don't warn about unhandled event if event handling failed
- validate flags on request initialization
- improve documentation/add comments
- replace 'iff' with 'if' in documentation and comments
Changes regarding specific patches (and more details) can be found on
the individual patch.
Maximilian Luz (9):
platform/surface: Add Surface Aggregator subsystem
platform/surface: aggregator: Add control packet allocation caching
platform/surface: aggregator: Add event item allocation caching
platform/surface: aggregator: Add trace points
platform/surface: aggregator: Add error injection capabilities
platform/surface: aggregator: Add dedicated bus and device type
docs: driver-api: Add Surface Aggregator subsystem documentation
platform/surface: Add Surface Aggregator user-space interface
platform/surface: Add Surface ACPI Notify driver
Documentation/driver-api/index.rst | 1 +
.../surface_aggregator/client-api.rst | 38 +
.../driver-api/surface_aggregator/client.rst | 393 +++
.../surface_aggregator/clients/cdev.rst | 87 +
.../surface_aggregator/clients/index.rst | 21 +
.../surface_aggregator/clients/san.rst | 44 +
.../driver-api/surface_aggregator/index.rst | 21 +
.../surface_aggregator/internal-api.rst | 67 +
.../surface_aggregator/internal.rst | 577 ++++
.../surface_aggregator/overview.rst | 77 +
.../driver-api/surface_aggregator/ssh.rst | 344 +++
.../userspace-api/ioctl/ioctl-number.rst | 2 +
MAINTAINERS | 13 +
drivers/platform/surface/Kconfig | 38 +
drivers/platform/surface/Makefile | 3 +
drivers/platform/surface/aggregator/Kconfig | 68 +
drivers/platform/surface/aggregator/Makefile | 17 +
drivers/platform/surface/aggregator/bus.c | 415 +++
drivers/platform/surface/aggregator/bus.h | 27 +
.../platform/surface/aggregator/controller.c | 2579 +++++++++++++++++
.../platform/surface/aggregator/controller.h | 285 ++
drivers/platform/surface/aggregator/core.c | 839 ++++++
.../platform/surface/aggregator/ssh_msgb.h | 205 ++
.../surface/aggregator/ssh_packet_layer.c | 2057 +++++++++++++
.../surface/aggregator/ssh_packet_layer.h | 190 ++
.../platform/surface/aggregator/ssh_parser.c | 228 ++
.../platform/surface/aggregator/ssh_parser.h | 154 +
.../surface/aggregator/ssh_request_layer.c | 1264 ++++++++
.../surface/aggregator/ssh_request_layer.h | 143 +
drivers/platform/surface/aggregator/trace.h | 632 ++++
.../platform/surface/surface_acpi_notify.c | 886 ++++++
.../surface/surface_aggregator_cdev.c | 303 ++
include/linux/mod_devicetable.h | 18 +
include/linux/surface_acpi_notify.h | 39 +
include/linux/surface_aggregator/controller.h | 824 ++++++
include/linux/surface_aggregator/device.h | 423 +++
include/linux/surface_aggregator/serial_hub.h | 672 +++++
include/uapi/linux/surface_aggregator/cdev.h | 78 +
scripts/mod/devicetable-offsets.c | 8 +
scripts/mod/file2alias.c | 23 +
40 files changed, 14103 insertions(+)
create mode 100644 Documentation/driver-api/surface_aggregator/client-api.rst
create mode 100644 Documentation/driver-api/surface_aggregator/client.rst
create mode 100644 Documentation/driver-api/surface_aggregator/clients/cdev.rst
create mode 100644 Documentation/driver-api/surface_aggregator/clients/index.rst
create mode 100644 Documentation/driver-api/surface_aggregator/clients/san.rst
create mode 100644 Documentation/driver-api/surface_aggregator/index.rst
create mode 100644 Documentation/driver-api/surface_aggregator/internal-api.rst
create mode 100644 Documentation/driver-api/surface_aggregator/internal.rst
create mode 100644 Documentation/driver-api/surface_aggregator/overview.rst
create mode 100644 Documentation/driver-api/surface_aggregator/ssh.rst
create mode 100644 drivers/platform/surface/aggregator/Kconfig
create mode 100644 drivers/platform/surface/aggregator/Makefile
create mode 100644 drivers/platform/surface/aggregator/bus.c
create mode 100644 drivers/platform/surface/aggregator/bus.h
create mode 100644 drivers/platform/surface/aggregator/controller.c
create mode 100644 drivers/platform/surface/aggregator/controller.h
create mode 100644 drivers/platform/surface/aggregator/core.c
create mode 100644 drivers/platform/surface/aggregator/ssh_msgb.h
create mode 100644 drivers/platform/surface/aggregator/ssh_packet_layer.c
create mode 100644 drivers/platform/surface/aggregator/ssh_packet_layer.h
create mode 100644 drivers/platform/surface/aggregator/ssh_parser.c
create mode 100644 drivers/platform/surface/aggregator/ssh_parser.h
create mode 100644 drivers/platform/surface/aggregator/ssh_request_layer.c
create mode 100644 drivers/platform/surface/aggregator/ssh_request_layer.h
create mode 100644 drivers/platform/surface/aggregator/trace.h
create mode 100644 drivers/platform/surface/surface_acpi_notify.c
create mode 100644 drivers/platform/surface/surface_aggregator_cdev.c
create mode 100644 include/linux/surface_acpi_notify.h
create mode 100644 include/linux/surface_aggregator/controller.h
create mode 100644 include/linux/surface_aggregator/device.h
create mode 100644 include/linux/surface_aggregator/serial_hub.h
create mode 100644 include/uapi/linux/surface_aggregator/cdev.h
--
2.29.2
next reply other threads:[~2020-12-21 18:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-21 18:39 Maximilian Luz [this message]
2020-12-21 18:39 ` [PATCH v3 6/9] platform/surface: aggregator: Add dedicated bus and device type Maximilian Luz
2021-01-06 23:40 ` [PATCH v3 0/9] Add support for Microsoft Surface System Aggregator Module Hans de Goede
2021-01-07 2:13 ` Maximilian Luz
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=20201221183959.1186143-1-luzmaximilian@gmail.com \
--to=luzmaximilian@gmail.com \
--cc=andy.shevchenko@gmail.com \
--cc=arnd@arndb.de \
--cc=blaz@mxxn.io \
--cc=corbet@lwn.net \
--cc=dorian.stoll@tmsp.io \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=jirislaby@kernel.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=mgross@linux.intel.com \
--cc=michal.lkml@markovi.net \
--cc=mingo@redhat.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=pobrn@protonmail.com \
--cc=rjw@rjwysocki.net \
--cc=robh@kernel.org \
--cc=rostedt@goodmis.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