2022-08-10 15:39:54

by Maximilian Luz

[permalink] [raw]
Subject: [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes

This series is twofold:

Patch 1 and 2 rename existing HID firmware nodes to better reflect the
devices they represent and the hierarchy they are placed under. In
particular, the three previously unknown nodes are for sensors, firmware
updates via the CFU mechanism, and for a USB Type-C Connector System
Software Interface (UCSI) HID client.

Patch 3 adds support for sensors and the UCSI client to the Surface Pro
8 by adding the missing SAM-connected HID nodes.

Regards,
Max

Maximilian Luz (3):
platform/surface: aggregator_registry: Rename HID device nodes based
on their function
platform/surface: aggregator_registry: Rename HID device nodes based
on new findings
platform/surface: aggregator_registry: Add HID devices for sensors and
UCSI client to SP8

.../surface/surface_aggregator_registry.c | 44 ++++++++++---------
1 file changed, 23 insertions(+), 21 deletions(-)

--
2.37.1


2022-08-10 15:50:01

by Maximilian Luz

[permalink] [raw]
Subject: [PATCH 3/3] platform/surface: aggregator_registry: Add HID devices for sensors and UCSI client to SP8

Add software nodes for the HID sensor collection and the UCM UCSI HID
client to the Surface Pro 8. In contrast to the type-cover devices,
these devices are directly attached to the SAM controller, without any
hub.

This enables support for HID-based sensors, including the ones used for
automatic screen rotation, on the Surface Pro 8.

Signed-off-by: Maximilian Luz <[email protected]>
---
drivers/platform/surface/surface_aggregator_registry.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
index 805c7bd4b15e..cf6e213db223 100644
--- a/drivers/platform/surface/surface_aggregator_registry.c
+++ b/drivers/platform/surface/surface_aggregator_registry.c
@@ -279,6 +279,8 @@ static const struct software_node *ssam_node_group_sp8[] = {
&ssam_node_hid_kip_penstash,
&ssam_node_hid_kip_touchpad,
&ssam_node_hid_kip_fwupd,
+ &ssam_node_hid_sam_sensors,
+ &ssam_node_hid_sam_ucm_ucsi,
NULL,
};

--
2.37.1

2022-08-10 15:50:34

by Maximilian Luz

[permalink] [raw]
Subject: [PATCH 1/3] platform/surface: aggregator_registry: Rename HID device nodes based on their function

Rename HID device nodes based on their function. In particular, these
are nodes for firmware updates via the CFU mechanism (component firmware
update), HID based sensors, and a USB-C UCSI client.

Signed-off-by: Maximilian Luz <[email protected]>
---
.../surface/surface_aggregator_registry.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
index d5655f6a4a41..c1ee8af7996d 100644
--- a/drivers/platform/surface/surface_aggregator_registry.c
+++ b/drivers/platform/surface/surface_aggregator_registry.c
@@ -104,14 +104,14 @@ static const struct software_node ssam_node_hid_tid1_touchpad = {
.parent = &ssam_node_root,
};

-/* HID device instance 6 (TID1, unknown HID device). */
-static const struct software_node ssam_node_hid_tid1_iid6 = {
+/* HID device instance 6 (TID1, HID sensor collection). */
+static const struct software_node ssam_node_hid_tid1_sensors = {
.name = "ssam:01:15:01:06:00",
.parent = &ssam_node_root,
};

-/* HID device instance 7 (TID1, unknown HID device). */
-static const struct software_node ssam_node_hid_tid1_iid7 = {
+/* HID device instance 7 (TID1, UCM UCSI HID client). */
+static const struct software_node ssam_node_hid_tid1_ucm_ucsi = {
.name = "ssam:01:15:01:07:00",
.parent = &ssam_node_root,
};
@@ -182,8 +182,8 @@ static const struct software_node ssam_node_hid_kip_touchpad = {
.parent = &ssam_node_hub_kip,
};

-/* HID device instance 5 (KIP hub, unknown HID device). */
-static const struct software_node ssam_node_hid_kip_iid5 = {
+/* HID device instance 5 (KIP hub, type-cover firmware update). */
+static const struct software_node ssam_node_hid_kip_fwupd = {
.name = "ssam:01:15:02:05:00",
.parent = &ssam_node_hub_kip,
};
@@ -244,8 +244,8 @@ static const struct software_node *ssam_node_group_sls[] = {
&ssam_node_hid_tid1_keyboard,
&ssam_node_hid_tid1_penstash,
&ssam_node_hid_tid1_touchpad,
- &ssam_node_hid_tid1_iid6,
- &ssam_node_hid_tid1_iid7,
+ &ssam_node_hid_tid1_sensors,
+ &ssam_node_hid_tid1_ucm_ucsi,
&ssam_node_hid_tid1_sysctrl,
NULL,
};
@@ -278,7 +278,7 @@ static const struct software_node *ssam_node_group_sp8[] = {
&ssam_node_hid_kip_keyboard,
&ssam_node_hid_kip_penstash,
&ssam_node_hid_kip_touchpad,
- &ssam_node_hid_kip_iid5,
+ &ssam_node_hid_kip_fwupd,
NULL,
};

--
2.37.1

2022-08-15 13:10:31

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes

Hi,

On 8/10/22 16:41, Maximilian Luz wrote:
> This series is twofold:
>
> Patch 1 and 2 rename existing HID firmware nodes to better reflect the
> devices they represent and the hierarchy they are placed under. In
> particular, the three previously unknown nodes are for sensors, firmware
> updates via the CFU mechanism, and for a USB Type-C Connector System
> Software Interface (UCSI) HID client.
>
> Patch 3 adds support for sensors and the UCSI client to the Surface Pro
> 8 by adding the missing SAM-connected HID nodes.

Thank you for your patch, I've applied this patch to my review-hans
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans


>
> Regards,
> Max
>
> Maximilian Luz (3):
> platform/surface: aggregator_registry: Rename HID device nodes based
> on their function
> platform/surface: aggregator_registry: Rename HID device nodes based
> on new findings
> platform/surface: aggregator_registry: Add HID devices for sensors and
> UCSI client to SP8
>
> .../surface/surface_aggregator_registry.c | 44 ++++++++++---------
> 1 file changed, 23 insertions(+), 21 deletions(-)
>