lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 121/849] platform/surface: aggregator_registry: Add support for Surface Laptop Studio
    Date
    From: Maximilian Luz <luzmaximilian@gmail.com>

    commit 4f042e40199ce8bac6bc2b853e81744ee4ea759c upstream.

    Add support for the Surface Laptop Studio.

    In contrast to previous Surface Laptop models, this one has its HID
    devices attached to target ID 1 (instead of 2). It also has a couple
    more of them, including a new notifier for when the pen is stashed /
    taken out of its place, a "Sys Control" device, and two other
    unidentified HID devices with unknown usages.

    Battery and performance profile interfaces remain the same.

    Cc: stable@vger.kernel.org # 5.14+
    Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
    Link: https://lore.kernel.org/r/20211021130904.862610-2-luzmaximilian@gmail.com
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/platform/surface/surface_aggregator_registry.c | 54 +++++++++++++++++
    1 file changed, 54 insertions(+)

    --- a/drivers/platform/surface/surface_aggregator_registry.c
    +++ b/drivers/platform/surface/surface_aggregator_registry.c
    @@ -77,6 +77,42 @@ static const struct software_node ssam_n
    .parent = &ssam_node_root,
    };

    +/* HID keyboard (TID1). */
    +static const struct software_node ssam_node_hid_tid1_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 = {
    + .name = "ssam:01:15:01:02:00",
    + .parent = &ssam_node_root,
    +};
    +
    +/* HID touchpad (TID1). */
    +static const struct software_node ssam_node_hid_tid1_touchpad = {
    + .name = "ssam:01:15:01:03:00",
    + .parent = &ssam_node_root,
    +};
    +
    +/* HID device instance 6 (TID1, unknown HID device). */
    +static const struct software_node ssam_node_hid_tid1_iid6 = {
    + .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 = {
    + .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 = {
    + .name = "ssam:01:15:01:08:00",
    + .parent = &ssam_node_root,
    +};
    +
    /* HID keyboard. */
    static const struct software_node ssam_node_hid_main_keyboard = {
    .name = "ssam:01:15:02:01:00",
    @@ -159,6 +195,21 @@ static const struct software_node *ssam_
    NULL,
    };

    +/* Devices for Surface Laptop Studio. */
    +static const struct software_node *ssam_node_group_sls[] = {
    + &ssam_node_root,
    + &ssam_node_bat_ac,
    + &ssam_node_bat_main,
    + &ssam_node_tmp_pprof,
    + &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_sysctrl,
    + NULL,
    +};
    +
    /* Devices for Surface Laptop Go. */
    static const struct software_node *ssam_node_group_slg1[] = {
    &ssam_node_root,
    @@ -507,6 +558,9 @@ static const struct acpi_device_id ssam_
    /* Surface Laptop Go 1 */
    { "MSHW0118", (unsigned long)ssam_node_group_slg1 },

    + /* Surface Laptop Studio */
    + { "MSHW0123", (unsigned long)ssam_node_group_sls },
    +
    { },
    };
    MODULE_DEVICE_TABLE(acpi, ssam_platform_hub_match);

    \
     
     \ /
      Last update: 2021-11-15 22:50    [W:2.458 / U:1.188 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site