2021-10-28 01:30:59

by Maximilian Luz

[permalink] [raw]
Subject: [PATCH] platform/surface: aggregator_registry: Add initial support for Surface Pro 8

Add preliminary support for the Surface Pro 8 to the Surface Aggregator
registry. This includes battery/charger status and platform profile
support.

In contrast to earlier Surface Pro generations, the keyboard cover is
now also connected via the Surface Aggregator Module (whereas it was
previously connected via USB or HID-over-I2C). To properly support the
HID devices of that cover, however, more changes regarding hot-removal
of Surface Aggregator client devices as well as a new device hub driver
are required. We will address those things in a follow-up series, so do
not add any HID device IDs just yet.

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

diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
index 2e0d3a808d47..ce2bd88feeaa 100644
--- a/drivers/platform/surface/surface_aggregator_registry.c
+++ b/drivers/platform/surface/surface_aggregator_registry.c
@@ -228,6 +228,15 @@ static const struct software_node *ssam_node_group_sp7[] = {
NULL,
};

+static const struct software_node *ssam_node_group_sp8[] = {
+ &ssam_node_root,
+ &ssam_node_bat_ac,
+ &ssam_node_bat_main,
+ &ssam_node_tmp_pprof,
+ /* TODO: Add support for keyboard cover. */
+ NULL,
+};
+

/* -- Device registry helper functions. ------------------------------------- */

@@ -520,6 +529,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
/* Surface Pro 7+ */
{ "MSHW0119", (unsigned long)ssam_node_group_sp7 },

+ /* Surface Pro 8 */
+ { "MSHW0263", (unsigned long)ssam_node_group_sp8 },
+
/* Surface Book 2 */
{ "MSHW0107", (unsigned long)ssam_node_group_gen5 },

--
2.33.1


2021-10-28 08:02:59

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] platform/surface: aggregator_registry: Add initial support for Surface Pro 8

Hi Maximilian,

On 10/28/21 03:28, Maximilian Luz wrote:
> Add preliminary support for the Surface Pro 8 to the Surface Aggregator
> registry. This includes battery/charger status and platform profile
> support.
>
> In contrast to earlier Surface Pro generations, the keyboard cover is
> now also connected via the Surface Aggregator Module (whereas it was
> previously connected via USB or HID-over-I2C). To properly support the
> HID devices of that cover, however, more changes regarding hot-removal
> of Surface Aggregator client devices as well as a new device hub driver
> are required. We will address those things in a follow-up series, so do
> not add any HID device IDs just yet.
>
> Signed-off-by: Maximilian Luz <[email protected]>

Since it is just device-id additions I can still pick this up for
5.16 if you want / if this is useful.

Do you want me to pick this up for 5.16 ?

Regards,

Hans



> ---
> .../platform/surface/surface_aggregator_registry.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
> index 2e0d3a808d47..ce2bd88feeaa 100644
> --- a/drivers/platform/surface/surface_aggregator_registry.c
> +++ b/drivers/platform/surface/surface_aggregator_registry.c
> @@ -228,6 +228,15 @@ static const struct software_node *ssam_node_group_sp7[] = {
> NULL,
> };
>
> +static const struct software_node *ssam_node_group_sp8[] = {
> + &ssam_node_root,
> + &ssam_node_bat_ac,
> + &ssam_node_bat_main,
> + &ssam_node_tmp_pprof,
> + /* TODO: Add support for keyboard cover. */
> + NULL,
> +};
> +
>
> /* -- Device registry helper functions. ------------------------------------- */
>
> @@ -520,6 +529,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
> /* Surface Pro 7+ */
> { "MSHW0119", (unsigned long)ssam_node_group_sp7 },
>
> + /* Surface Pro 8 */
> + { "MSHW0263", (unsigned long)ssam_node_group_sp8 },
> +
> /* Surface Book 2 */
> { "MSHW0107", (unsigned long)ssam_node_group_gen5 },
>
>

2021-10-28 08:53:33

by Maximilian Luz

[permalink] [raw]
Subject: Re: [PATCH] platform/surface: aggregator_registry: Add initial support for Surface Pro 8



On 10/28/21 09:58, Hans de Goede wrote:
> Hi Maximilian,
>
> On 10/28/21 03:28, Maximilian Luz wrote:
>> Add preliminary support for the Surface Pro 8 to the Surface Aggregator
>> registry. This includes battery/charger status and platform profile
>> support.
>>
>> In contrast to earlier Surface Pro generations, the keyboard cover is
>> now also connected via the Surface Aggregator Module (whereas it was
>> previously connected via USB or HID-over-I2C). To properly support the
>> HID devices of that cover, however, more changes regarding hot-removal
>> of Surface Aggregator client devices as well as a new device hub driver
>> are required. We will address those things in a follow-up series, so do
>> not add any HID device IDs just yet.
>>
>> Signed-off-by: Maximilian Luz <[email protected]>
>
> Since it is just device-id additions I can still pick this up for
> 5.16 if you want / if this is useful.
>
> Do you want me to pick this up for 5.16 ?

Hmm, usefulness is somewhat limited, because the device currently has
neither touchscreen nor keyboard cover support, so external peripherals
are required.

I think including it might still be a good idea though because it at
least makes that scenario somewhat viable by providing battery stats.

Thanks,
Max

> Regards,
>
> Hans
>
>
>
>> ---
>> .../platform/surface/surface_aggregator_registry.c | 12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>>
>> diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
>> index 2e0d3a808d47..ce2bd88feeaa 100644
>> --- a/drivers/platform/surface/surface_aggregator_registry.c
>> +++ b/drivers/platform/surface/surface_aggregator_registry.c
>> @@ -228,6 +228,15 @@ static const struct software_node *ssam_node_group_sp7[] = {
>> NULL,
>> };
>>
>> +static const struct software_node *ssam_node_group_sp8[] = {
>> + &ssam_node_root,
>> + &ssam_node_bat_ac,
>> + &ssam_node_bat_main,
>> + &ssam_node_tmp_pprof,
>> + /* TODO: Add support for keyboard cover. */
>> + NULL,
>> +};
>> +
>>
>> /* -- Device registry helper functions. ------------------------------------- */
>>
>> @@ -520,6 +529,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
>> /* Surface Pro 7+ */
>> { "MSHW0119", (unsigned long)ssam_node_group_sp7 },
>>
>> + /* Surface Pro 8 */
>> + { "MSHW0263", (unsigned long)ssam_node_group_sp8 },
>> +
>> /* Surface Book 2 */
>> { "MSHW0107", (unsigned long)ssam_node_group_gen5 },
>>
>>
>

2021-10-28 09:37:54

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] platform/surface: aggregator_registry: Add initial support for Surface Pro 8

Hi,

On 10/28/21 03:28, Maximilian Luz wrote:
> Add preliminary support for the Surface Pro 8 to the Surface Aggregator
> registry. This includes battery/charger status and platform profile
> support.
>
> In contrast to earlier Surface Pro generations, the keyboard cover is
> now also connected via the Surface Aggregator Module (whereas it was
> previously connected via USB or HID-over-I2C). To properly support the
> HID devices of that cover, however, more changes regarding hot-removal
> of Surface Aggregator client devices as well as a new device hub driver
> are required. We will address those things in a follow-up series, so do
> not add any HID device IDs just yet.
>
> Signed-off-by: Maximilian Luz <[email protected]>

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


> ---
> .../platform/surface/surface_aggregator_registry.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
> index 2e0d3a808d47..ce2bd88feeaa 100644
> --- a/drivers/platform/surface/surface_aggregator_registry.c
> +++ b/drivers/platform/surface/surface_aggregator_registry.c
> @@ -228,6 +228,15 @@ static const struct software_node *ssam_node_group_sp7[] = {
> NULL,
> };
>
> +static const struct software_node *ssam_node_group_sp8[] = {
> + &ssam_node_root,
> + &ssam_node_bat_ac,
> + &ssam_node_bat_main,
> + &ssam_node_tmp_pprof,
> + /* TODO: Add support for keyboard cover. */
> + NULL,
> +};
> +
>
> /* -- Device registry helper functions. ------------------------------------- */
>
> @@ -520,6 +529,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
> /* Surface Pro 7+ */
> { "MSHW0119", (unsigned long)ssam_node_group_sp7 },
>
> + /* Surface Pro 8 */
> + { "MSHW0263", (unsigned long)ssam_node_group_sp8 },
> +
> /* Surface Book 2 */
> { "MSHW0107", (unsigned long)ssam_node_group_gen5 },
>
>