Re: [RFC PATCH 0/9] Add support for Microsoft Surface System Aggregator Module

From: Maximilian Luz
Date: Thu Sep 24 2020 - 15:17:29 EST


On 9/24/20 10:30 AM, Andy Shevchenko wrote:
On Wed, Sep 23, 2020 at 6:32 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:

On Wed, Sep 23, 2020 at 5:15 PM Maximilian Luz <luzmaximilian@xxxxxxxxx> wrote:

Hello,

The Surface System Aggregator Module (we'll refer to it as Surface
Aggregator or SAM below) is an embedded controller (EC) found on various
Microsoft Surface devices. Specifically, all 4th and later generation
Surface devices, i.e. Surface Pro 4, Surface Book 1 and later, with the
exception of the Surface Go series and the Surface Duo. Notably, it
seems like this EC can also be found on the ARM-based Surface Pro X [1].

I think this should go to drivers/platform/x86 or drivers/platform/surface/
along with other laptop vendor specific code rather than drivers/misc/.

+1 here. drivers/platform/surface is a good place to start.
And you may begin with moving a few Surface drivers out of PDx86 to
the new folder.

Perfect, thanks! I'll draft up a patch series over the weekend.

A couple questions regarding structure and maintenance:

- Should I CC the platform-driver-x86 list on future submissions to
drivers/platform/surface? I.e. is this something you would want to
review if it doesn't touch the drivers/platform/x86 directory?

- How would you want the layout to be, specifically regarding to the
surface-aggregator stuff? My suggestion would be simply:

drivers/platform/surface/
surface_aggregator/
Kconfig
Makefile
core.c
controller.c
... (all core stuff built into the surface_aggregator module)
Kconfig
Makefile
surface_aggregator_debugfs.c
surface_acpi_notify.c
surface_*.c (any other surface platform driver as well
as drivers dependent on surface_aggregator)

- Regarding future things like HID transport driver, battery/AC driver:
Submit them to drivers/platform/surface or to their respective
subsystem directories?

Thanks,
Max