From d978030eb8d2df6c3ccae635349a69064ffae6fe Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Fri, 18 Sep 2020 03:30:54 +0200 Subject: [PATCH] Update v4.19 patches Changes: - Fix a bug preventing the Surface Serial Hub driver from probing successfully under certain conditions. Links: - SAM: https://github.com/linux-surface/surface-aggregator-module/commit/f973e273e1a5a5120a9cc8f49dcde439230c0485 - kernel: https://github.com/linux-surface/kernel/commit/c594ad26470add549cdf69e1d3676d615f517f92 --- patches/4.19/0008-surface-sam.patch | 21 +++++++++++--------- patches/4.19/0009-surface-sam-over-hid.patch | 2 +- patches/4.19/0010-surface-gpe.patch | 2 +- pkg/arch/kernel-lts/PKGBUILD | 6 +++--- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/patches/4.19/0008-surface-sam.patch b/patches/4.19/0008-surface-sam.patch index d24f3f4f0..c06dcbab7 100644 --- a/patches/4.19/0008-surface-sam.patch +++ b/patches/4.19/0008-surface-sam.patch @@ -1,4 +1,4 @@ -From 136fb03656e450bd05f8bda630d90858b20a23eb Mon Sep 17 00:00:00 2001 +From 0b7ad1bdaa9a3deced72912b89897e65f0906295 Mon Sep 17 00:00:00 2001 From: qzed Date: Mon, 26 Aug 2019 01:15:40 +0200 Subject: [PATCH 08/10] surface-sam @@ -25,7 +25,7 @@ Subject: [PATCH 08/10] surface-sam drivers/misc/surface_aggregator/bus.h | 22 + .../misc/surface_aggregator/clients/Kconfig | 154 + .../misc/surface_aggregator/clients/Makefile | 11 + - .../clients/surface_acpi_notify.c | 844 ++++++ + .../clients/surface_acpi_notify.c | 847 ++++++ .../clients/surface_aggregator_debugfs.c | 280 ++ .../clients/surface_aggregator_registry.c | 601 ++++ .../clients/surface_battery.c | 1096 +++++++ @@ -53,7 +53,7 @@ Subject: [PATCH 08/10] surface-sam include/linux/surface_aggregator/serial_hub.h | 653 +++++ scripts/mod/devicetable-offsets.c | 8 + scripts/mod/file2alias.c | 23 + - 49 files changed, 17966 insertions(+), 29 deletions(-) + 49 files changed, 17969 insertions(+), 29 deletions(-) create mode 100644 Documentation/driver-api/surface_aggregator/client-api.rst create mode 100644 Documentation/driver-api/surface_aggregator/client.rst create mode 100644 Documentation/driver-api/surface_aggregator/clients/dbgdev.rst @@ -2162,10 +2162,10 @@ index 000000000000..a859fecae8d5 +obj-$(CONFIG_SURFACE_PERFMODE) += surface_perfmode.o diff --git a/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c b/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c new file mode 100644 -index 000000000000..3bf715c32c24 +index 000000000000..10a623d1afda --- /dev/null +++ b/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c -@@ -0,0 +1,844 @@ +@@ -0,0 +1,847 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Driver for the Surface ACPI Notify (SAN) interface/shim. @@ -2690,7 +2690,8 @@ index 000000000000..3bf715c32c24 + memcpy(&gsb->data.out.pld[0], ptr, len); +} + -+static acpi_status san_rqst_fixup_suspended(struct ssam_request *rqst, ++static acpi_status san_rqst_fixup_suspended(struct san_data *d, ++ struct ssam_request *rqst, + struct gsb_buffer *gsb) +{ + if (rqst->target_category == SSAM_SSH_TC_BAS && rqst->command_id == 0x0D) { @@ -2711,6 +2712,8 @@ index 000000000000..3bf715c32c24 + * delay. + */ + ++ dev_dbg(d->dev, "rqst: fixup: base-state quirk\n"); ++ + gsb_rqsx_response_success(gsb, &base_state, sizeof(base_state)); + return AE_OK; + } @@ -2746,7 +2749,7 @@ index 000000000000..3bf715c32c24 + // handle suspended device + if (d->dev->power.is_suspended) { + dev_warn(d->dev, "rqst: device is suspended, not executing\n"); -+ return san_rqst_fixup_suspended(&rqst, buffer); ++ return san_rqst_fixup_suspended(d, &rqst, buffer); + } + + status = ssam_retry(ssam_request_sync_onstack, SAN_REQUEST_NUM_TRIES, @@ -7926,7 +7929,7 @@ index 000000000000..ed93596adcf6 +MODULE_LICENSE("GPL"); diff --git a/drivers/misc/surface_aggregator/controller.c b/drivers/misc/surface_aggregator/controller.c new file mode 100644 -index 000000000000..ef75094ba845 +index 000000000000..947aa546fd09 --- /dev/null +++ b/drivers/misc/surface_aggregator/controller.c @@ -0,0 +1,2507 @@ @@ -9004,7 +9007,7 @@ index 000000000000..ef75094ba845 +static int ssam_controller_caps_load_from_acpi( + acpi_handle handle, struct ssam_controller_caps *caps) +{ -+ u32 d3_closes_handle; ++ u32 d3_closes_handle = false; + u64 funcs; + int status; + diff --git a/patches/4.19/0009-surface-sam-over-hid.patch b/patches/4.19/0009-surface-sam-over-hid.patch index 76083c222..067f0ea31 100644 --- a/patches/4.19/0009-surface-sam-over-hid.patch +++ b/patches/4.19/0009-surface-sam-over-hid.patch @@ -1,4 +1,4 @@ -From 711691ddab0a98cb09113240e4f80984c50e2ae3 Mon Sep 17 00:00:00 2001 +From 3c4621e6c99c0bde5f4750c114b7926f70bdff46 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 25 Jul 2020 17:19:53 +0200 Subject: [PATCH 09/10] surface-sam-over-hid diff --git a/patches/4.19/0010-surface-gpe.patch b/patches/4.19/0010-surface-gpe.patch index d42f6fcac..c302cbbf5 100644 --- a/patches/4.19/0010-surface-gpe.patch +++ b/patches/4.19/0010-surface-gpe.patch @@ -1,4 +1,4 @@ -From ca134c63332b2a2150f7911a2b86d17b94c5a6bb Mon Sep 17 00:00:00 2001 +From 6437ec83d8803414faa5a4168b2860c47ab4814e Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 16 Aug 2020 23:39:56 +0200 Subject: [PATCH 10/10] surface-gpe diff --git a/pkg/arch/kernel-lts/PKGBUILD b/pkg/arch/kernel-lts/PKGBUILD index a64b6fc4c..cfc860bd1 100644 --- a/pkg/arch/kernel-lts/PKGBUILD +++ b/pkg/arch/kernel-lts/PKGBUILD @@ -48,9 +48,9 @@ sha256sums=('355a0ce67229f96b142e1ea2ecf593c3d355a40b34d10144d7e05f37a63f814a' 'f57711a13160591f32998806c720db2b07d2423d38400db4d0e11bc47ad61d61' 'b503f3a88f9dfdf6da509f26c6dc40bb3ee44bfa021bda2c3f69b9b02948e5aa' '0f5bd61aeb2e821a28f4ad20975960f11bb6875ecc36572200776513b92fb390' - 'acfd95afd81d06d51dd7ee18bb779ddbc545ca69ee1b013f8ea3b24f883ab589' - '14012117a70e1ab55c822ba1497aaa35c0cbb1931c0a33cd5b0ae0e4bb01cf1e' - '5b3650a407cb62f2dabf582d392ec60d199adfdba6a4380a2ef8c02ed68fb64e') + '973b67ee25efe321114cd33be43366262a28889288d358d276323cce32ec5330' + 'b15156fe231074b1b518933f81587e8d4552b76d6d085d9a7d02d3e78d14ffec' + '6c31d0836fe23122118146f9a2b2c87fb97eaf0f6cbd3ffc7752a2e06738adb3') export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_USER=$pkgbase