platform-driver-x86.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes
@ 2022-08-10 14:41 Maximilian Luz
  2022-08-10 14:41 ` [PATCH 1/3] platform/surface: aggregator_registry: Rename HID device nodes based on their function Maximilian Luz
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Maximilian Luz @ 2022-08-10 14:41 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Mark Gross, platform-driver-x86, linux-kernel, Maximilian Luz

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] platform/surface: aggregator_registry: Rename HID device nodes based on their function
  2022-08-10 14:41 [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes Maximilian Luz
@ 2022-08-10 14:41 ` Maximilian Luz
  2022-08-10 14:41 ` [PATCH 2/3] platform/surface: aggregator_registry: Rename HID device nodes based on new findings Maximilian Luz
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Maximilian Luz @ 2022-08-10 14:41 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Mark Gross, platform-driver-x86, linux-kernel, Maximilian Luz

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 <luzmaximilian@gmail.com>
---
 .../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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] platform/surface: aggregator_registry: Rename HID device nodes based on new findings
  2022-08-10 14:41 [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes Maximilian Luz
  2022-08-10 14:41 ` [PATCH 1/3] platform/surface: aggregator_registry: Rename HID device nodes based on their function Maximilian Luz
@ 2022-08-10 14:41 ` Maximilian Luz
  2022-08-10 14:41 ` [PATCH 3/3] platform/surface: aggregator_registry: Add HID devices for sensors and UCSI client to SP8 Maximilian Luz
  2022-08-15 13:03 ` [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes Hans de Goede
  3 siblings, 0 replies; 5+ messages in thread
From: Maximilian Luz @ 2022-08-10 14:41 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Mark Gross, platform-driver-x86, linux-kernel, Maximilian Luz

On Windows, the HID devices with target ID 1 are grouped as "Surface Hot
Plug - SAM". Rename their device nodes in the registry to reflect that
and update the comments accordingly.

Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
---
 .../surface/surface_aggregator_registry.c     | 36 +++++++++----------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
index c1ee8af7996d..805c7bd4b15e 100644
--- a/drivers/platform/surface/surface_aggregator_registry.c
+++ b/drivers/platform/surface/surface_aggregator_registry.c
@@ -86,38 +86,38 @@ static const struct software_node ssam_node_bas_dtx = {
 	.parent = &ssam_node_root,
 };
 
-/* HID keyboard (TID1). */
-static const struct software_node ssam_node_hid_tid1_keyboard = {
+/* HID keyboard (SAM, TID=1). */
+static const struct software_node ssam_node_hid_sam_keyboard = {
 	.name = "ssam:01:15:01:01:00",
 	.parent = &ssam_node_root,
 };
 
-/* HID pen stash (TID1; pen taken / stashed away evens). */
-static const struct software_node ssam_node_hid_tid1_penstash = {
+/* HID pen stash (SAM, TID=1; pen taken / stashed away evens). */
+static const struct software_node ssam_node_hid_sam_penstash = {
 	.name = "ssam:01:15:01:02:00",
 	.parent = &ssam_node_root,
 };
 
-/* HID touchpad (TID1). */
-static const struct software_node ssam_node_hid_tid1_touchpad = {
+/* HID touchpad (SAM, TID=1). */
+static const struct software_node ssam_node_hid_sam_touchpad = {
 	.name = "ssam:01:15:01:03:00",
 	.parent = &ssam_node_root,
 };
 
-/* HID device instance 6 (TID1, HID sensor collection). */
-static const struct software_node ssam_node_hid_tid1_sensors = {
+/* HID device instance 6 (SAM, TID=1, HID sensor collection). */
+static const struct software_node ssam_node_hid_sam_sensors = {
 	.name = "ssam:01:15:01:06:00",
 	.parent = &ssam_node_root,
 };
 
-/* HID device instance 7 (TID1, UCM UCSI HID client). */
-static const struct software_node ssam_node_hid_tid1_ucm_ucsi = {
+/* HID device instance 7 (SAM, TID=1, UCM UCSI HID client). */
+static const struct software_node ssam_node_hid_sam_ucm_ucsi = {
 	.name = "ssam:01:15:01:07:00",
 	.parent = &ssam_node_root,
 };
 
-/* HID system controls (TID1). */
-static const struct software_node ssam_node_hid_tid1_sysctrl = {
+/* HID system controls (SAM, TID=1). */
+static const struct software_node ssam_node_hid_sam_sysctrl = {
 	.name = "ssam:01:15:01:08:00",
 	.parent = &ssam_node_root,
 };
@@ -241,12 +241,12 @@ static const struct software_node *ssam_node_group_sls[] = {
 	&ssam_node_bat_main,
 	&ssam_node_tmp_pprof,
 	&ssam_node_pos_tablet_switch,
-	&ssam_node_hid_tid1_keyboard,
-	&ssam_node_hid_tid1_penstash,
-	&ssam_node_hid_tid1_touchpad,
-	&ssam_node_hid_tid1_sensors,
-	&ssam_node_hid_tid1_ucm_ucsi,
-	&ssam_node_hid_tid1_sysctrl,
+	&ssam_node_hid_sam_keyboard,
+	&ssam_node_hid_sam_penstash,
+	&ssam_node_hid_sam_touchpad,
+	&ssam_node_hid_sam_sensors,
+	&ssam_node_hid_sam_ucm_ucsi,
+	&ssam_node_hid_sam_sysctrl,
 	NULL,
 };
 
-- 
2.37.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] platform/surface: aggregator_registry: Add HID devices for sensors and UCSI client to SP8
  2022-08-10 14:41 [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes Maximilian Luz
  2022-08-10 14:41 ` [PATCH 1/3] platform/surface: aggregator_registry: Rename HID device nodes based on their function Maximilian Luz
  2022-08-10 14:41 ` [PATCH 2/3] platform/surface: aggregator_registry: Rename HID device nodes based on new findings Maximilian Luz
@ 2022-08-10 14:41 ` Maximilian Luz
  2022-08-15 13:03 ` [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes Hans de Goede
  3 siblings, 0 replies; 5+ messages in thread
From: Maximilian Luz @ 2022-08-10 14:41 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Mark Gross, platform-driver-x86, linux-kernel, Maximilian Luz

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 <luzmaximilian@gmail.com>
---
 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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes
  2022-08-10 14:41 [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes Maximilian Luz
                   ` (2 preceding siblings ...)
  2022-08-10 14:41 ` [PATCH 3/3] platform/surface: aggregator_registry: Add HID devices for sensors and UCSI client to SP8 Maximilian Luz
@ 2022-08-15 13:03 ` Hans de Goede
  3 siblings, 0 replies; 5+ messages in thread
From: Hans de Goede @ 2022-08-15 13:03 UTC (permalink / raw)
  To: Maximilian Luz; +Cc: Mark Gross, platform-driver-x86, linux-kernel

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-08-15 13:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-10 14:41 [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes Maximilian Luz
2022-08-10 14:41 ` [PATCH 1/3] platform/surface: aggregator_registry: Rename HID device nodes based on their function Maximilian Luz
2022-08-10 14:41 ` [PATCH 2/3] platform/surface: aggregator_registry: Rename HID device nodes based on new findings Maximilian Luz
2022-08-10 14:41 ` [PATCH 3/3] platform/surface: aggregator_registry: Add HID devices for sensors and UCSI client to SP8 Maximilian Luz
2022-08-15 13:03 ` [PATCH 0/3] platform/surface: aggregator_registry: Rename and add more HID device nodes Hans de Goede

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