diff --git a/patches/6.1/0005-surface-sam.patch b/patches/6.1/0005-surface-sam.patch index 513571352..86a792bf3 100644 --- a/patches/6.1/0005-surface-sam.patch +++ b/patches/6.1/0005-surface-sam.patch @@ -1,6 +1,6 @@ -From 49d4e0f3885582fbc2a49dd6cb858ccd2d16a1bc Mon Sep 17 00:00:00 2001 +From d290ffa5b652cbbf0f9d89fa284d5542286a285e Mon Sep 17 00:00:00 2001 From: Maximilian Luz -Date: Sat, 5 Nov 2022 21:23:53 +0100 +Date: Fri, 2 Dec 2022 23:33:20 +0100 Subject: [PATCH] platform/surface: aggregator: Improve documentation and handling of message target and source IDs @@ -10,19 +10,23 @@ indicating the peer from which the message originated and the peer for which it is intended. Change the naming of those fields accordingly and improve the protocol -documenation. Additionally, introduce an enum containing all currently +documentation. Additionally, introduce an enum containing all currently known peers, i.e. targets and sources. Signed-off-by: Maximilian Luz +Link: https://lore.kernel.org/r/20221202223327.690880-3-luzmaximilian@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede Patchset: surface-sam --- .../driver-api/surface_aggregator/client.rst | 4 +- .../driver-api/surface_aggregator/ssh.rst | 36 +++++++++-------- .../platform/surface/aggregator/controller.c | 12 +++--- .../platform/surface/aggregator/ssh_msgb.h | 4 +- + .../surface/aggregator/ssh_request_layer.c | 11 ++--- include/linux/surface_aggregator/controller.h | 4 +- include/linux/surface_aggregator/serial_hub.h | 40 +++++++++++++------ - 6 files changed, 58 insertions(+), 42 deletions(-) + 7 files changed, 64 insertions(+), 47 deletions(-) diff --git a/Documentation/driver-api/surface_aggregator/client.rst b/Documentation/driver-api/surface_aggregator/client.rst index 27f95abdbe99..9d7411223a84 100644 @@ -179,6 +183,30 @@ index f3ecad92eefd..438873e06098 100644 __msgb_push_u8(msgb, rqst->instance_id); /* Instance ID. */ __msgb_push_u16(msgb, rqid); /* Request ID. */ __msgb_push_u8(msgb, rqst->command_id); /* Command ID. */ +diff --git a/drivers/platform/surface/aggregator/ssh_request_layer.c b/drivers/platform/surface/aggregator/ssh_request_layer.c +index 69132976d297..90634dcacabf 100644 +--- a/drivers/platform/surface/aggregator/ssh_request_layer.c ++++ b/drivers/platform/surface/aggregator/ssh_request_layer.c +@@ -920,13 +920,14 @@ static void ssh_rtl_rx_command(struct ssh_ptl *p, const struct ssam_span *data) + * Check if the message was intended for us. If not, drop it. + * + * Note: We will need to change this to handle debug messages. On newer +- * generation devices, these seem to be sent to tid_out=0x03. We as +- * host can still receive them as they can be forwarded via an override +- * option on SAM, but doing so does not change tid_out=0x00. ++ * generation devices, these seem to be sent to SSAM_SSH_TID_DEBUG. We ++ * as host can still receive them as they can be forwarded via an ++ * override option on SAM, but doing so does not change the target ID ++ * to SSAM_SSH_TID_HOST. + */ +- if (command->tid_out != 0x00) { ++ if (command->tid != SSAM_SSH_TID_HOST) { + rtl_warn(rtl, "rtl: dropping message not intended for us (tid = %#04x)\n", +- command->tid_out); ++ command->tid); + return; + } + diff --git a/include/linux/surface_aggregator/controller.h b/include/linux/surface_aggregator/controller.h index d11a1c6e3186..8932bc0bae18 100644 --- a/include/linux/surface_aggregator/controller.h @@ -261,9 +289,9 @@ index 45501b6e54e8..5c4ae1a26183 100644 -- 2.39.1 -From 7bbedf41c6dc00352b90d84bddc951b2ff429b27 Mon Sep 17 00:00:00 2001 +From 9200b29dfce5ec28dba74373a4038c63b6e6feac Mon Sep 17 00:00:00 2001 From: Maximilian Luz -Date: Sat, 5 Nov 2022 21:42:19 +0100 +Date: Fri, 2 Dec 2022 23:33:21 +0100 Subject: [PATCH] platform/surface: aggregator: Add target and source IDs to command trace events @@ -277,6 +305,9 @@ that interface). So it makes sense to also explicitly name the peers involved when tracing. Signed-off-by: Maximilian Luz +Link: https://lore.kernel.org/r/20221202223327.690880-4-luzmaximilian@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede Patchset: surface-sam --- drivers/platform/surface/aggregator/trace.h | 73 +++++++++++++++++++-- @@ -455,9 +486,9 @@ index 2a2c17771d01..55cc61bba1da 100644 -- 2.39.1 -From bdeb5fd1669c2f2235aae296a2ec15d73cd6d160 Mon Sep 17 00:00:00 2001 +From 9279c3f3d6b2ae3efc9bf350837864df421b3c82 Mon Sep 17 00:00:00 2001 From: Maximilian Luz -Date: Sat, 5 Nov 2022 21:32:16 +0100 +Date: Fri, 2 Dec 2022 23:33:22 +0100 Subject: [PATCH] platform/surface: aggregator_hub: Use target-ID enum instead of hard-coding values @@ -465,6 +496,9 @@ Instead of hard-coding the target ID, use the respective enum ssam_ssh_tid value. Signed-off-by: Maximilian Luz +Link: https://lore.kernel.org/r/20221202223327.690880-5-luzmaximilian@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede Patchset: surface-sam --- drivers/platform/surface/surface_aggregator_hub.c | 4 ++-- @@ -495,9 +529,9 @@ index 43061514be38..62f27cdb6ca8 100644 -- 2.39.1 -From 9b8a09ae48a87958a28d941bc5a3424d93e5ac88 Mon Sep 17 00:00:00 2001 +From 3e63472ff80d775dc2bd204125371436f99c6b13 Mon Sep 17 00:00:00 2001 From: Maximilian Luz -Date: Sat, 5 Nov 2022 21:33:26 +0100 +Date: Fri, 2 Dec 2022 23:33:23 +0100 Subject: [PATCH] platform/surface: aggregator_tabletsw: Use target-ID enum instead of hard-coding values @@ -505,6 +539,9 @@ Instead of hard-coding the target ID, use the respective enum ssam_ssh_tid value. Signed-off-by: Maximilian Luz +Link: https://lore.kernel.org/r/20221202223327.690880-6-luzmaximilian@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede Patchset: surface-sam --- drivers/platform/surface/surface_aggregator_tabletsw.c | 6 +++--- @@ -544,9 +581,9 @@ index 27d95a6a7851..bd8cd453c393 100644 -- 2.39.1 -From 9b0a4cdd3f96e6004dc34bba3c6ffbdc6bcb746d Mon Sep 17 00:00:00 2001 +From 5e27e9534629b3867f6512b1d49f7d6622f538e5 Mon Sep 17 00:00:00 2001 From: Maximilian Luz -Date: Sat, 5 Nov 2022 21:34:06 +0100 +Date: Fri, 2 Dec 2022 23:33:24 +0100 Subject: [PATCH] platform/surface: dtx: Use target-ID enum instead of hard-coding values @@ -554,6 +591,9 @@ Instead of hard-coding the target ID, use the respective enum ssam_ssh_tid value. Signed-off-by: Maximilian Luz +Link: https://lore.kernel.org/r/20221202223327.690880-7-luzmaximilian@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede Patchset: surface-sam --- drivers/platform/surface/surface_dtx.c | 18 +++++++++--------- @@ -639,40 +679,9 @@ index ed36944467f9..0de76a784a35 100644 -- 2.39.1 -From 9cc6a8de04a496870726ff69726c004a198530b2 Mon Sep 17 00:00:00 2001 +From ecf46d8a50f1ae2e66f1ae6951a9b28d73abca4e Mon Sep 17 00:00:00 2001 From: Maximilian Luz -Date: Sat, 5 Nov 2022 21:40:06 +0100 -Subject: [PATCH] HID: surface-hid: Use target-ID enum instead of hard-coding - values - -Instead of hard-coding the target ID, use the respective enum -ssam_ssh_tid value. - -Signed-off-by: Maximilian Luz -Patchset: surface-sam ---- - drivers/hid/surface-hid/surface_kbd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/hid/surface-hid/surface_kbd.c b/drivers/hid/surface-hid/surface_kbd.c -index 0635341bc517..42933bf3e925 100644 ---- a/drivers/hid/surface-hid/surface_kbd.c -+++ b/drivers/hid/surface-hid/surface_kbd.c -@@ -250,7 +250,7 @@ static int surface_kbd_probe(struct platform_device *pdev) - - shid->uid.domain = SSAM_DOMAIN_SERIALHUB; - shid->uid.category = SSAM_SSH_TC_KBD; -- shid->uid.target = 2; -+ shid->uid.target = SSAM_SSH_TID_KIP; - shid->uid.instance = 0; - shid->uid.function = 0; - --- -2.39.1 - -From 54e9685da6a18f97a58838547ad07e3baaa01ebf Mon Sep 17 00:00:00 2001 -From: Maximilian Luz -Date: Sat, 5 Nov 2022 21:45:28 +0100 +Date: Fri, 2 Dec 2022 23:33:26 +0100 Subject: [PATCH] platform/surface: aggregator: Enforce use of target-ID enum in device ID macros @@ -687,6 +696,10 @@ know the names for the target IDs, use the same trick for them as well. Also rename the SSAM_ANY_x macros to SSAM_SSH_x_ANY to better fit in. Signed-off-by: Maximilian Luz +Acked-by: Sebastian Reichel +Link: https://lore.kernel.org/r/20221202223327.690880-9-luzmaximilian@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede Patchset: surface-sam --- drivers/hid/surface-hid/surface_hid.c | 2 +- @@ -902,9 +915,9 @@ index 46c45d1b6368..4da20b7a0ee5 100644 -- 2.39.1 -From 795b4ddb4d3dad38b5123e354b25b327632e0ce5 Mon Sep 17 00:00:00 2001 +From 780e33c35efd2ae18ddeacf33dc4ed60f1d0975a Mon Sep 17 00:00:00 2001 From: Maximilian Luz -Date: Sat, 5 Nov 2022 21:46:37 +0100 +Date: Fri, 2 Dec 2022 23:33:27 +0100 Subject: [PATCH] platform/surface: aggregator_registry: Fix target-ID of base-hub @@ -913,7 +926,15 @@ peripherals). However, even though it manages such devices with the KIP target ID, the base hub itself is actually accessed via the SAM target ID. So set it accordingly. +Note that the target ID of the hub can be chosen arbitrarily and does +not directly correspond to any physical or virtual component of the EC. +This change is only a code improvement intended for consistency and +clarity, it does not fix an actual bug. + Signed-off-by: Maximilian Luz +Link: https://lore.kernel.org/r/20221202223327.690880-10-luzmaximilian@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede Patchset: surface-sam --- drivers/platform/surface/surface_aggregator_hub.c | 2 +- @@ -949,3 +970,606 @@ index 023f126121d7..296f72d52e6a 100644 -- 2.39.1 +From 111516425f2a2cd0eef9265cfb70de21e97e7887 Mon Sep 17 00:00:00 2001 +From: Maximilian Luz +Date: Tue, 20 Dec 2022 18:56:08 +0100 +Subject: [PATCH] platform/surface: aggregator: Rename top-level request + functions to avoid ambiguities + +We currently have a struct ssam_request_sync and a function +ssam_request_sync(). While this is valid C, there are some downsides to +it. + +One of these is that current Sphinx versions (>= 3.0) cannot +disambiguate between the two (see disucssion and pull request linked +below). It instead emits a "WARNING: Duplicate C declaration" and links +for the struct and function in the resulting documentation link to the +same entry (i.e. both to either function or struct documentation) +instead of their respective own entries. + +While we could just ignore that and wait for a fix, there's also a point +to be made that the current naming can be somewhat confusing when +searching (e.g. via grep) or trying to understand the levels of +abstraction at play: + +We currently have struct ssam_request_sync and associated functions +ssam_request_sync_[alloc|free|init|wait|...]() operating on this struct. +However, function ssam_request_sync() is one abstraction level above +this. Similarly, ssam_request_sync_with_buffer() is not a function +operating on struct ssam_request_sync, but rather a sibling to +ssam_request_sync(), both using the struct under the hood. + +Therefore, rename the top level request functions: + + ssam_request_sync() -> ssam_request_do_sync() + ssam_request_sync_with_buffer() -> ssam_request_do_sync_with_buffer() + ssam_request_sync_onstack() -> ssam_request_do_sync_onstack() + +Link: https://lore.kernel.org/all/085e0ada65c11da9303d07e70c510dc45f21315b.1656756450.git.mchehab@kernel.org/ +Link: https://github.com/sphinx-doc/sphinx/pull/8313 +Signed-off-by: Maximilian Luz +Link: https://lore.kernel.org/r/20221220175608.1436273-2-luzmaximilian@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede +Patchset: surface-sam +--- + .../driver-api/surface_aggregator/client.rst | 8 +-- + drivers/hid/surface-hid/surface_hid.c | 6 +- + drivers/hid/surface-hid/surface_kbd.c | 6 +- + drivers/platform/surface/aggregator/bus.c | 6 +- + .../platform/surface/aggregator/controller.c | 32 +++++------ + .../platform/surface/surface_acpi_notify.c | 2 +- + .../surface/surface_aggregator_cdev.c | 6 +- + .../surface/surface_aggregator_tabletsw.c | 2 +- + include/linux/surface_aggregator/controller.h | 56 +++++++++---------- + include/linux/surface_aggregator/device.h | 8 +-- + 10 files changed, 66 insertions(+), 66 deletions(-) + +diff --git a/Documentation/driver-api/surface_aggregator/client.rst b/Documentation/driver-api/surface_aggregator/client.rst +index 9d7411223a84..e100ab0a24cc 100644 +--- a/Documentation/driver-api/surface_aggregator/client.rst ++++ b/Documentation/driver-api/surface_aggregator/client.rst +@@ -19,7 +19,7 @@ + .. |ssam_notifier_unregister| replace:: :c:func:`ssam_notifier_unregister` + .. |ssam_device_notifier_register| replace:: :c:func:`ssam_device_notifier_register` + .. |ssam_device_notifier_unregister| replace:: :c:func:`ssam_device_notifier_unregister` +-.. |ssam_request_sync| replace:: :c:func:`ssam_request_sync` ++.. |ssam_request_do_sync| replace:: :c:func:`ssam_request_do_sync` + .. |ssam_event_mask| replace:: :c:type:`enum ssam_event_mask ` + + +@@ -209,12 +209,12 @@ data received from it is converted from little-endian to host endianness. + * with the SSAM_REQUEST_HAS_RESPONSE flag set in the specification + * above. + */ +- status = ssam_request_sync(ctrl, &rqst, &resp); ++ status = ssam_request_do_sync(ctrl, &rqst, &resp); + + /* + * Alternatively use + * +- * ssam_request_sync_onstack(ctrl, &rqst, &resp, sizeof(arg_le)); ++ * ssam_request_do_sync_onstack(ctrl, &rqst, &resp, sizeof(arg_le)); + * + * to perform the request, allocating the message buffer directly + * on the stack as opposed to allocation via kzalloc(). +@@ -230,7 +230,7 @@ data received from it is converted from little-endian to host endianness. + return status; + } + +-Note that |ssam_request_sync| in its essence is a wrapper over lower-level ++Note that |ssam_request_do_sync| in its essence is a wrapper over lower-level + request primitives, which may also be used to perform requests. Refer to its + implementation and documentation for more details. + +diff --git a/drivers/hid/surface-hid/surface_hid.c b/drivers/hid/surface-hid/surface_hid.c +index aa80d83a83d1..61e5814b0ad7 100644 +--- a/drivers/hid/surface-hid/surface_hid.c ++++ b/drivers/hid/surface-hid/surface_hid.c +@@ -80,7 +80,7 @@ static int ssam_hid_get_descriptor(struct surface_hid_device *shid, u8 entry, u8 + + rsp.length = 0; + +- status = ssam_retry(ssam_request_sync_onstack, shid->ctrl, &rqst, &rsp, ++ status = ssam_retry(ssam_request_do_sync_onstack, shid->ctrl, &rqst, &rsp, + sizeof(*slice)); + if (status) + return status; +@@ -131,7 +131,7 @@ static int ssam_hid_set_raw_report(struct surface_hid_device *shid, u8 rprt_id, + + buf[0] = rprt_id; + +- return ssam_retry(ssam_request_sync, shid->ctrl, &rqst, NULL); ++ return ssam_retry(ssam_request_do_sync, shid->ctrl, &rqst, NULL); + } + + static int ssam_hid_get_raw_report(struct surface_hid_device *shid, u8 rprt_id, u8 *buf, size_t len) +@@ -151,7 +151,7 @@ static int ssam_hid_get_raw_report(struct surface_hid_device *shid, u8 rprt_id, + rsp.length = 0; + rsp.pointer = buf; + +- return ssam_retry(ssam_request_sync_onstack, shid->ctrl, &rqst, &rsp, sizeof(rprt_id)); ++ return ssam_retry(ssam_request_do_sync_onstack, shid->ctrl, &rqst, &rsp, sizeof(rprt_id)); + } + + static u32 ssam_hid_event_fn(struct ssam_event_notifier *nf, const struct ssam_event *event) +diff --git a/drivers/hid/surface-hid/surface_kbd.c b/drivers/hid/surface-hid/surface_kbd.c +index 0635341bc517..7ca8038026ce 100644 +--- a/drivers/hid/surface-hid/surface_kbd.c ++++ b/drivers/hid/surface-hid/surface_kbd.c +@@ -49,7 +49,7 @@ static int ssam_kbd_get_descriptor(struct surface_hid_device *shid, u8 entry, u8 + rsp.length = 0; + rsp.pointer = buf; + +- status = ssam_retry(ssam_request_sync_onstack, shid->ctrl, &rqst, &rsp, sizeof(entry)); ++ status = ssam_retry(ssam_request_do_sync_onstack, shid->ctrl, &rqst, &rsp, sizeof(entry)); + if (status) + return status; + +@@ -75,7 +75,7 @@ static int ssam_kbd_set_caps_led(struct surface_hid_device *shid, bool value) + rqst.length = sizeof(value_u8); + rqst.payload = &value_u8; + +- return ssam_retry(ssam_request_sync_onstack, shid->ctrl, &rqst, NULL, sizeof(value_u8)); ++ return ssam_retry(ssam_request_do_sync_onstack, shid->ctrl, &rqst, NULL, sizeof(value_u8)); + } + + static int ssam_kbd_get_feature_report(struct surface_hid_device *shid, u8 *buf, size_t len) +@@ -97,7 +97,7 @@ static int ssam_kbd_get_feature_report(struct surface_hid_device *shid, u8 *buf, + rsp.length = 0; + rsp.pointer = buf; + +- status = ssam_retry(ssam_request_sync_onstack, shid->ctrl, &rqst, &rsp, sizeof(payload)); ++ status = ssam_retry(ssam_request_do_sync_onstack, shid->ctrl, &rqst, &rsp, sizeof(payload)); + if (status) + return status; + +diff --git a/drivers/platform/surface/aggregator/bus.c b/drivers/platform/surface/aggregator/bus.c +index de539938896e..7004eb4a63a2 100644 +--- a/drivers/platform/surface/aggregator/bus.c ++++ b/drivers/platform/surface/aggregator/bus.c +@@ -136,9 +136,9 @@ int ssam_device_add(struct ssam_device *sdev) + * is always valid and can be used for requests as long as the client + * device we add here is registered as child under it. This essentially + * guarantees that the client driver can always expect the preconditions +- * for functions like ssam_request_sync (controller has to be started +- * and is not suspended) to hold and thus does not have to check for +- * them. ++ * for functions like ssam_request_do_sync() (controller has to be ++ * started and is not suspended) to hold and thus does not have to check ++ * for them. + * + * Note that for this to work, the controller has to be a parent device. + * If it is not a direct parent, care has to be taken that the device is +diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c +index 2c99f51ccd4e..535581c0471c 100644 +--- a/drivers/platform/surface/aggregator/controller.c ++++ b/drivers/platform/surface/aggregator/controller.c +@@ -1674,7 +1674,7 @@ int ssam_request_sync_submit(struct ssam_controller *ctrl, + EXPORT_SYMBOL_GPL(ssam_request_sync_submit); + + /** +- * ssam_request_sync() - Execute a synchronous request. ++ * ssam_request_do_sync() - Execute a synchronous request. + * @ctrl: The controller via which the request will be submitted. + * @spec: The request specification and payload. + * @rsp: The response buffer. +@@ -1686,9 +1686,9 @@ EXPORT_SYMBOL_GPL(ssam_request_sync_submit); + * + * Return: Returns the status of the request or any failure during setup. + */ +-int ssam_request_sync(struct ssam_controller *ctrl, +- const struct ssam_request *spec, +- struct ssam_response *rsp) ++int ssam_request_do_sync(struct ssam_controller *ctrl, ++ const struct ssam_request *spec, ++ struct ssam_response *rsp) + { + struct ssam_request_sync *rqst; + struct ssam_span buf; +@@ -1722,10 +1722,10 @@ int ssam_request_sync(struct ssam_controller *ctrl, + ssam_request_sync_free(rqst); + return status; + } +-EXPORT_SYMBOL_GPL(ssam_request_sync); ++EXPORT_SYMBOL_GPL(ssam_request_do_sync); + + /** +- * ssam_request_sync_with_buffer() - Execute a synchronous request with the ++ * ssam_request_do_sync_with_buffer() - Execute a synchronous request with the + * provided buffer as back-end for the message buffer. + * @ctrl: The controller via which the request will be submitted. + * @spec: The request specification and payload. +@@ -1738,17 +1738,17 @@ EXPORT_SYMBOL_GPL(ssam_request_sync); + * SSH_COMMAND_MESSAGE_LENGTH() macro can be used to compute the required + * message buffer size. + * +- * This function does essentially the same as ssam_request_sync(), but instead +- * of dynamically allocating the request and message data buffer, it uses the +- * provided message data buffer and stores the (small) request struct on the +- * heap. ++ * This function does essentially the same as ssam_request_do_sync(), but ++ * instead of dynamically allocating the request and message data buffer, it ++ * uses the provided message data buffer and stores the (small) request struct ++ * on the heap. + * + * Return: Returns the status of the request or any failure during setup. + */ +-int ssam_request_sync_with_buffer(struct ssam_controller *ctrl, +- const struct ssam_request *spec, +- struct ssam_response *rsp, +- struct ssam_span *buf) ++int ssam_request_do_sync_with_buffer(struct ssam_controller *ctrl, ++ const struct ssam_request *spec, ++ struct ssam_response *rsp, ++ struct ssam_span *buf) + { + struct ssam_request_sync rqst; + ssize_t len; +@@ -1772,7 +1772,7 @@ int ssam_request_sync_with_buffer(struct ssam_controller *ctrl, + + return status; + } +-EXPORT_SYMBOL_GPL(ssam_request_sync_with_buffer); ++EXPORT_SYMBOL_GPL(ssam_request_do_sync_with_buffer); + + + /* -- Internal SAM requests. ------------------------------------------------ */ +@@ -1864,7 +1864,7 @@ static int __ssam_ssh_event_request(struct ssam_controller *ctrl, + result.length = 0; + result.pointer = &buf; + +- status = ssam_retry(ssam_request_sync_onstack, ctrl, &rqst, &result, ++ status = ssam_retry(ssam_request_do_sync_onstack, ctrl, &rqst, &result, + sizeof(params)); + + return status < 0 ? status : buf; +diff --git a/drivers/platform/surface/surface_acpi_notify.c b/drivers/platform/surface/surface_acpi_notify.c +index 50500e562963..897cdd9c3aae 100644 +--- a/drivers/platform/surface/surface_acpi_notify.c ++++ b/drivers/platform/surface/surface_acpi_notify.c +@@ -590,7 +590,7 @@ static acpi_status san_rqst(struct san_data *d, struct gsb_buffer *buffer) + return san_rqst_fixup_suspended(d, &rqst, buffer); + } + +- status = __ssam_retry(ssam_request_sync_onstack, SAN_REQUEST_NUM_TRIES, ++ status = __ssam_retry(ssam_request_do_sync_onstack, SAN_REQUEST_NUM_TRIES, + d->ctrl, &rqst, &rsp, SAN_GSB_MAX_RQSX_PAYLOAD); + + if (!status) { +diff --git a/drivers/platform/surface/surface_aggregator_cdev.c b/drivers/platform/surface/surface_aggregator_cdev.c +index 492c82e69182..07f0ed658369 100644 +--- a/drivers/platform/surface/surface_aggregator_cdev.c ++++ b/drivers/platform/surface/surface_aggregator_cdev.c +@@ -302,8 +302,8 @@ static long ssam_cdev_request(struct ssam_cdev_client *client, struct ssam_cdev_ + * theoretical maximum (SSH_COMMAND_MAX_PAYLOAD_SIZE) of the + * underlying protocol (note that nothing remotely this size + * should ever be allocated in any normal case). This size is +- * validated later in ssam_request_sync(), for allocation the +- * bound imposed by u16 should be enough. ++ * validated later in ssam_request_do_sync(), for allocation ++ * the bound imposed by u16 should be enough. + */ + spec.payload = kzalloc(spec.length, GFP_KERNEL); + if (!spec.payload) { +@@ -342,7 +342,7 @@ static long ssam_cdev_request(struct ssam_cdev_client *client, struct ssam_cdev_ + } + + /* Perform request. */ +- status = ssam_request_sync(client->cdev->ctrl, &spec, &rsp); ++ status = ssam_request_do_sync(client->cdev->ctrl, &spec, &rsp); + if (status) + goto out; + +diff --git a/drivers/platform/surface/surface_aggregator_tabletsw.c b/drivers/platform/surface/surface_aggregator_tabletsw.c +index 6147aa887939..9fed800c7cc0 100644 +--- a/drivers/platform/surface/surface_aggregator_tabletsw.c ++++ b/drivers/platform/surface/surface_aggregator_tabletsw.c +@@ -382,7 +382,7 @@ static int ssam_pos_get_sources_list(struct ssam_tablet_sw *sw, struct ssam_sour + rsp.length = 0; + rsp.pointer = (u8 *)sources; + +- status = ssam_retry(ssam_request_sync_onstack, sw->sdev->ctrl, &rqst, &rsp, 0); ++ status = ssam_retry(ssam_request_do_sync_onstack, sw->sdev->ctrl, &rqst, &rsp, 0); + if (status) + return status; + +diff --git a/include/linux/surface_aggregator/controller.h b/include/linux/surface_aggregator/controller.h +index 8932bc0bae18..cb7980805920 100644 +--- a/include/linux/surface_aggregator/controller.h ++++ b/include/linux/surface_aggregator/controller.h +@@ -207,17 +207,17 @@ static inline int ssam_request_sync_wait(struct ssam_request_sync *rqst) + return rqst->status; + } + +-int ssam_request_sync(struct ssam_controller *ctrl, +- const struct ssam_request *spec, +- struct ssam_response *rsp); ++int ssam_request_do_sync(struct ssam_controller *ctrl, ++ const struct ssam_request *spec, ++ struct ssam_response *rsp); + +-int ssam_request_sync_with_buffer(struct ssam_controller *ctrl, +- const struct ssam_request *spec, +- struct ssam_response *rsp, +- struct ssam_span *buf); ++int ssam_request_do_sync_with_buffer(struct ssam_controller *ctrl, ++ const struct ssam_request *spec, ++ struct ssam_response *rsp, ++ struct ssam_span *buf); + + /** +- * ssam_request_sync_onstack - Execute a synchronous request on the stack. ++ * ssam_request_do_sync_onstack - Execute a synchronous request on the stack. + * @ctrl: The controller via which the request is submitted. + * @rqst: The request specification. + * @rsp: The response buffer. +@@ -227,7 +227,7 @@ int ssam_request_sync_with_buffer(struct ssam_controller *ctrl, + * fully initializes it via the provided request specification, submits it, + * and finally waits for its completion before returning its status. This + * helper macro essentially allocates the request message buffer on the stack +- * and then calls ssam_request_sync_with_buffer(). ++ * and then calls ssam_request_do_sync_with_buffer(). + * + * Note: The @payload_len parameter specifies the maximum payload length, used + * for buffer allocation. The actual payload length may be smaller. +@@ -235,12 +235,12 @@ int ssam_request_sync_with_buffer(struct ssam_controller *ctrl, + * Return: Returns the status of the request or any failure during setup, i.e. + * zero on success and a negative value on failure. + */ +-#define ssam_request_sync_onstack(ctrl, rqst, rsp, payload_len) \ ++#define ssam_request_do_sync_onstack(ctrl, rqst, rsp, payload_len) \ + ({ \ + u8 __data[SSH_COMMAND_MESSAGE_LENGTH(payload_len)]; \ + struct ssam_span __buf = { &__data[0], ARRAY_SIZE(__data) }; \ + \ +- ssam_request_sync_with_buffer(ctrl, rqst, rsp, &__buf); \ ++ ssam_request_do_sync_with_buffer(ctrl, rqst, rsp, &__buf); \ + }) + + /** +@@ -349,7 +349,7 @@ struct ssam_request_spec_md { + * zero on success and negative on failure. The ``ctrl`` parameter is the + * controller via which the request is being sent. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_N(name, spec...) \ +@@ -366,7 +366,7 @@ struct ssam_request_spec_md { + rqst.length = 0; \ + rqst.payload = NULL; \ + \ +- return ssam_request_sync_onstack(ctrl, &rqst, NULL, 0); \ ++ return ssam_request_do_sync_onstack(ctrl, &rqst, NULL, 0); \ + } + + /** +@@ -389,7 +389,7 @@ struct ssam_request_spec_md { + * parameter is the controller via which the request is sent. The request + * argument is specified via the ``arg`` pointer. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_W(name, atype, spec...) \ +@@ -406,8 +406,8 @@ struct ssam_request_spec_md { + rqst.length = sizeof(atype); \ + rqst.payload = (u8 *)arg; \ + \ +- return ssam_request_sync_onstack(ctrl, &rqst, NULL, \ +- sizeof(atype)); \ ++ return ssam_request_do_sync_onstack(ctrl, &rqst, NULL, \ ++ sizeof(atype)); \ + } + + /** +@@ -430,7 +430,7 @@ struct ssam_request_spec_md { + * the controller via which the request is sent. The request's return value is + * written to the memory pointed to by the ``ret`` parameter. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_R(name, rtype, spec...) \ +@@ -453,7 +453,7 @@ struct ssam_request_spec_md { + rsp.length = 0; \ + rsp.pointer = (u8 *)ret; \ + \ +- status = ssam_request_sync_onstack(ctrl, &rqst, &rsp, 0); \ ++ status = ssam_request_do_sync_onstack(ctrl, &rqst, &rsp, 0); \ + if (status) \ + return status; \ + \ +@@ -491,7 +491,7 @@ struct ssam_request_spec_md { + * request argument is specified via the ``arg`` pointer. The request's return + * value is written to the memory pointed to by the ``ret`` parameter. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_WR(name, atype, rtype, spec...) \ +@@ -514,7 +514,7 @@ struct ssam_request_spec_md { + rsp.length = 0; \ + rsp.pointer = (u8 *)ret; \ + \ +- status = ssam_request_sync_onstack(ctrl, &rqst, &rsp, sizeof(atype)); \ ++ status = ssam_request_do_sync_onstack(ctrl, &rqst, &rsp, sizeof(atype)); \ + if (status) \ + return status; \ + \ +@@ -550,7 +550,7 @@ struct ssam_request_spec_md { + * parameter is the controller via which the request is sent, ``tid`` the + * target ID for the request, and ``iid`` the instance ID. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_MD_N(name, spec...) \ +@@ -567,7 +567,7 @@ struct ssam_request_spec_md { + rqst.length = 0; \ + rqst.payload = NULL; \ + \ +- return ssam_request_sync_onstack(ctrl, &rqst, NULL, 0); \ ++ return ssam_request_do_sync_onstack(ctrl, &rqst, NULL, 0); \ + } + + /** +@@ -592,7 +592,7 @@ struct ssam_request_spec_md { + * ``tid`` the target ID for the request, and ``iid`` the instance ID. The + * request argument is specified via the ``arg`` pointer. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_MD_W(name, atype, spec...) \ +@@ -609,7 +609,7 @@ struct ssam_request_spec_md { + rqst.length = sizeof(atype); \ + rqst.payload = (u8 *)arg; \ + \ +- return ssam_request_sync_onstack(ctrl, &rqst, NULL, \ ++ return ssam_request_do_sync_onstack(ctrl, &rqst, NULL, \ + sizeof(atype)); \ + } + +@@ -635,7 +635,7 @@ struct ssam_request_spec_md { + * the target ID for the request, and ``iid`` the instance ID. The request's + * return value is written to the memory pointed to by the ``ret`` parameter. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_MD_R(name, rtype, spec...) \ +@@ -658,7 +658,7 @@ struct ssam_request_spec_md { + rsp.length = 0; \ + rsp.pointer = (u8 *)ret; \ + \ +- status = ssam_request_sync_onstack(ctrl, &rqst, &rsp, 0); \ ++ status = ssam_request_do_sync_onstack(ctrl, &rqst, &rsp, 0); \ + if (status) \ + return status; \ + \ +@@ -698,7 +698,7 @@ struct ssam_request_spec_md { + * The request argument is specified via the ``arg`` pointer. The request's + * return value is written to the memory pointed to by the ``ret`` parameter. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_MD_WR(name, atype, rtype, spec...) \ +@@ -722,7 +722,7 @@ struct ssam_request_spec_md { + rsp.length = 0; \ + rsp.pointer = (u8 *)ret; \ + \ +- status = ssam_request_sync_onstack(ctrl, &rqst, &rsp, sizeof(atype)); \ ++ status = ssam_request_do_sync_onstack(ctrl, &rqst, &rsp, sizeof(atype)); \ + if (status) \ + return status; \ + \ +diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h +index 4da20b7a0ee5..1545e5567b15 100644 +--- a/include/linux/surface_aggregator/device.h ++++ b/include/linux/surface_aggregator/device.h +@@ -456,7 +456,7 @@ static inline int ssam_device_register_clients(struct ssam_device *sdev) + * device of the request and by association the controller via which the + * request is sent. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_CL_N(name, spec...) \ +@@ -490,7 +490,7 @@ static inline int ssam_device_register_clients(struct ssam_device *sdev) + * which the request is sent. The request's argument is specified via the + * ``arg`` pointer. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_CL_W(name, atype, spec...) \ +@@ -524,7 +524,7 @@ static inline int ssam_device_register_clients(struct ssam_device *sdev) + * the request is sent. The request's return value is written to the memory + * pointed to by the ``ret`` parameter. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_CL_R(name, rtype, spec...) \ +@@ -560,7 +560,7 @@ static inline int ssam_device_register_clients(struct ssam_device *sdev) + * specified via the ``arg`` pointer. The request's return value is written to + * the memory pointed to by the ``ret`` parameter. + * +- * Refer to ssam_request_sync_onstack() for more details on the behavior of ++ * Refer to ssam_request_do_sync_onstack() for more details on the behavior of + * the generated function. + */ + #define SSAM_DEFINE_SYNC_REQUEST_CL_WR(name, atype, rtype, spec...) \ +-- +2.39.1 + +From 4f6ea2783dac3c33d2b20d5d640a37d446a78f3e Mon Sep 17 00:00:00 2001 +From: Andy Shevchenko +Date: Wed, 18 Jan 2023 11:38:23 +0200 +Subject: [PATCH] platform/surface: Switch to use acpi_evaluate_dsm_typed() + +The acpi_evaluate_dsm_typed() provides a way to check the type of the +object evaluated by _DSM call. Use it instead of open coded variant. + +Signed-off-by: Andy Shevchenko +Reviewed-by: Maximilian Luz +Link: https://lore.kernel.org/r/20230118093823.39679-1-andriy.shevchenko@linux.intel.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede +Patchset: surface-sam +--- + drivers/platform/surface/surface_hotplug.c | 13 +++---------- + 1 file changed, 3 insertions(+), 10 deletions(-) + +diff --git a/drivers/platform/surface/surface_hotplug.c b/drivers/platform/surface/surface_hotplug.c +index f004a2495201..7b6d887dccdb 100644 +--- a/drivers/platform/surface/surface_hotplug.c ++++ b/drivers/platform/surface/surface_hotplug.c +@@ -101,18 +101,12 @@ static void shps_dsm_notify_irq(struct platform_device *pdev, enum shps_irq_type + param.type = ACPI_TYPE_INTEGER; + param.integer.value = value; + +- result = acpi_evaluate_dsm(handle, &shps_dsm_guid, SHPS_DSM_REVISION, +- shps_dsm_fn_for_irq(type), ¶m); +- ++ result = acpi_evaluate_dsm_typed(handle, &shps_dsm_guid, SHPS_DSM_REVISION, ++ shps_dsm_fn_for_irq(type), ¶m, ACPI_TYPE_BUFFER); + if (!result) { + dev_err(&pdev->dev, "IRQ notification via DSM failed (irq=%d, gpio=%d)\n", + type, value); + +- } else if (result->type != ACPI_TYPE_BUFFER) { +- dev_err(&pdev->dev, +- "IRQ notification via DSM failed: unexpected result type (irq=%d, gpio=%d)\n", +- type, value); +- + } else if (result->buffer.length != 1 || result->buffer.pointer[0] != 0) { + dev_err(&pdev->dev, + "IRQ notification via DSM failed: unexpected result value (irq=%d, gpio=%d)\n", +@@ -121,8 +115,7 @@ static void shps_dsm_notify_irq(struct platform_device *pdev, enum shps_irq_type + + mutex_unlock(&sdev->lock[type]); + +- if (result) +- ACPI_FREE(result); ++ ACPI_FREE(result); + } + + static irqreturn_t shps_handle_irq(int irq, void *data) +-- +2.39.1 + diff --git a/patches/6.1/0006-surface-sam-over-hid.patch b/patches/6.1/0006-surface-sam-over-hid.patch index 6fd941c6b..29d4c89d9 100644 --- a/patches/6.1/0006-surface-sam-over-hid.patch +++ b/patches/6.1/0006-surface-sam-over-hid.patch @@ -1,4 +1,4 @@ -From 979716988ad9089d7c514f2bd46af44bba8e4c15 Mon Sep 17 00:00:00 2001 +From 530b9f4a9877371ee7979b6c7e5736f07a88dbc5 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 25 Jul 2020 17:19:53 +0200 Subject: [PATCH] i2c: acpi: Implement RawBytes read access @@ -110,7 +110,7 @@ index 4dd777cc0c89..b2338618163a 100644 -- 2.39.1 -From 509a5fbfc31b5493b852b1733cf4e10f1d868e34 Mon Sep 17 00:00:00 2001 +From 289d008855c4a025e3a38a79f540417421b2b4fc Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 13 Feb 2021 16:41:18 +0100 Subject: [PATCH] platform/surface: Add driver for Surface Book 1 dGPU switch diff --git a/patches/6.1/0007-surface-button.patch b/patches/6.1/0007-surface-button.patch index 9e4428efe..cda4ff672 100644 --- a/patches/6.1/0007-surface-button.patch +++ b/patches/6.1/0007-surface-button.patch @@ -1,4 +1,4 @@ -From c624d3beb3b35ff81f7039743e0327adf244c6a3 Mon Sep 17 00:00:00 2001 +From 6c110e9561690e917329edf70cfb3cbdb821061b Mon Sep 17 00:00:00 2001 From: Sachi King Date: Tue, 5 Oct 2021 00:05:09 +1100 Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices @@ -75,7 +75,7 @@ index 09489380afda..0f02411a60f1 100644 -- 2.39.1 -From 1e0b7fe3e1b09f1c8833c8e3b2243577e5bd66d2 Mon Sep 17 00:00:00 2001 +From 289c3004aa7582e0c4041fb12d433b277e0955ae Mon Sep 17 00:00:00 2001 From: Sachi King Date: Tue, 5 Oct 2021 00:22:57 +1100 Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd diff --git a/patches/6.1/0008-surface-typecover.patch b/patches/6.1/0008-surface-typecover.patch index 5a1e7a4ce..7de3abdba 100644 --- a/patches/6.1/0008-surface-typecover.patch +++ b/patches/6.1/0008-surface-typecover.patch @@ -1,4 +1,4 @@ -From 8ee33077bf928467ebec5b139729e1091e2a1579 Mon Sep 17 00:00:00 2001 +From 0fea1fb65ab4117880dc921c3987c69b73d2e3bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Thu, 5 Nov 2020 13:09:45 +0100 Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when @@ -231,7 +231,7 @@ index 372cbdd223e0..fe849df6a948 100644 -- 2.39.1 -From 752f2f89096ba2555c3123d388f076ab8054110e Mon Sep 17 00:00:00 2001 +From b9590f3c749aa5b5ef0af36a03d653cc0a3493c4 Mon Sep 17 00:00:00 2001 From: PJungkamp Date: Fri, 25 Feb 2022 12:04:25 +0100 Subject: [PATCH] hid/multitouch: Add support for surface pro type cover tablet diff --git a/patches/6.1/0009-cameras.patch b/patches/6.1/0009-cameras.patch index 69ee90101..fbad30dd4 100644 --- a/patches/6.1/0009-cameras.patch +++ b/patches/6.1/0009-cameras.patch @@ -1,4 +1,4 @@ -From 3b3d5bc599a2d574cbbea9bd9441242d94334127 Mon Sep 17 00:00:00 2001 +From bab23929e82b78566d2fdac13616155f8fb42538 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:56:57 +0200 Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an @@ -74,7 +74,7 @@ index dbfa58e799e2..ccbd3f8b523e 100644 -- 2.39.1 -From 75a1c8fad69de12e2d6fe05401ea02413c02bb15 Mon Sep 17 00:00:00 2001 +From f4c96c247fb7d0c853d7ff996e673cfba4423891 Mon Sep 17 00:00:00 2001 From: zouxiaoh Date: Fri, 25 Jun 2021 08:52:59 +0800 Subject: [PATCH] iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs @@ -191,7 +191,7 @@ index 408c321b929a..6e58effbe12b 100644 -- 2.39.1 -From 87759669409640b92e2d66b1c6644d205d80d9ca Mon Sep 17 00:00:00 2001 +From f89ff4f5168eadf316680bc1b392f8556e4e1576 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sun, 10 Oct 2021 20:57:02 +0200 Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain @@ -228,7 +228,7 @@ index 5b8d1a9620a5..6a0ff035cf20 100644 -- 2.39.1 -From 2af8c34fdf6b8686341b269082ac53c65869fcf5 Mon Sep 17 00:00:00 2001 +From af9dd99da0373d9002e94583832ecaf416e86016 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Thu, 28 Oct 2021 21:55:16 +0100 Subject: [PATCH] media: i2c: Add driver for DW9719 VCM @@ -732,7 +732,7 @@ index 000000000000..180b04d2a6b3 -- 2.39.1 -From c809a70d80cd54972431868f3a4f24332574ea92 Mon Sep 17 00:00:00 2001 +From 9cda3dd05371ba1b2fec7ccf28784dea5f9851bb Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 4 May 2022 23:21:45 +0100 Subject: [PATCH] media: ipu3-cio2: Move functionality from .complete() to @@ -847,7 +847,7 @@ index 390bd5ea3472..76339fb842bf 100644 -- 2.39.1 -From 4850a7dba77284e47ef1d3cdb0da237ff61c86d2 Mon Sep 17 00:00:00 2001 +From f0db2c63da4fd2cdbf63a19c16f8f7935518fcdf Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Thu, 2 Jun 2022 22:15:56 +0100 Subject: [PATCH] media: ipu3-cio2: Re-add .complete() to ipu3-cio2 @@ -890,7 +890,7 @@ index 76339fb842bf..eb7aa269ec2b 100644 -- 2.39.1 -From 6dcadafc4dda4a5cd0549170fd066485711cc778 Mon Sep 17 00:00:00 2001 +From 4770fef6949ae8bebdce271ce33f0269ba4c13a1 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Fri, 15 Jul 2022 23:48:00 +0200 Subject: [PATCH] drivers/media/i2c: Fix DW9719 dependencies diff --git a/patches/6.1/0010-amd-gpio.patch b/patches/6.1/0010-amd-gpio.patch index e926f0373..e18ede24d 100644 --- a/patches/6.1/0010-amd-gpio.patch +++ b/patches/6.1/0010-amd-gpio.patch @@ -1,4 +1,4 @@ -From b33468d1241a2c99ebf0e85f18504dcea8922054 Mon Sep 17 00:00:00 2001 +From 74c8d421521a5a1699b479cdcab3c58432b776dc Mon Sep 17 00:00:00 2001 From: Sachi King Date: Sat, 29 May 2021 17:47:38 +1000 Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7 @@ -65,7 +65,7 @@ index 907cc98b1938..0116d27b29ea 100644 -- 2.39.1 -From b61c1aae91104e9a1a4eb0da6cc2830e612979e8 Mon Sep 17 00:00:00 2001 +From 0911f1d9e188e47e57819f667320cd865baef420 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Thu, 3 Jun 2021 14:04:26 +0200 Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override diff --git a/patches/6.1/0011-rtc.patch b/patches/6.1/0011-rtc.patch index 5558d8f28..0033e3cfb 100644 --- a/patches/6.1/0011-rtc.patch +++ b/patches/6.1/0011-rtc.patch @@ -1,4 +1,4 @@ -From a3547b23b77a3069fd6eb4cc7444f48a71eb3405 Mon Sep 17 00:00:00 2001 +From a5f2e7f9d7b7f6e831e229558f6fd39a6d82cf52 Mon Sep 17 00:00:00 2001 From: "Bart Groeneveld | GPX Solutions B.V" Date: Mon, 5 Dec 2022 16:08:46 +0100 Subject: [PATCH] acpi: allow usage of acpi_tad on HW-reduced platforms