Update v5.9 patches

Changes:
 - SAM:
   - Remove explicit dGPU power-setting code and rely on (patched)
     PCI/PM core instead for automatic and proper power management. See
     [1] and [2] for details.
   - Minor fixes.

 - GPE:
   - Add copyright notice

Links:
 - SAM: e6338f7b04
 - GPE: 245c264504
 - kernel: 062dca1b26

[1] 4138dabe85
[2] https://github.com/linux-surface/surface-aggregator-module/wiki/Discrete-GPU
This commit is contained in:
Maximilian Luz 2020-11-04 01:48:42 +01:00
parent e420429a23
commit 92f1abfa6a
No known key found for this signature in database
GPG key ID: 70EC0937F6C26F02
9 changed files with 496 additions and 1330 deletions

View file

@ -1,7 +1,6 @@
#
# Surface Aggregator Module
#
CONFIG_GPIO_SYSFS=y # required for SURFACE_HOTPLUG
CONFIG_SURFACE_AGGREGATOR=m
CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION=n
CONFIG_SURFACE_AGGREGATOR_BUS=y

View file

@ -1,4 +1,4 @@
From 98d612006b94231362c3b5f16deb4a8e9a4ea4d0 Mon Sep 17 00:00:00 2001
From 35b94287ce1e118cecd1636c54e0cd931b66ddf0 Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Sun, 18 Oct 2020 16:42:44 +0900
Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
@ -97,5 +97,5 @@ index 2752dc955733..ef36a316e2ed 100644
};
--
2.28.0
2.29.2

View file

@ -1,4 +1,4 @@
From 1040020890118b08d89401905c6c3c63f0127ccf Mon Sep 17 00:00:00 2001
From 344f5a695c99e176964c1d8e3250c8913a0863e6 Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Thu, 24 Sep 2020 18:02:06 +0900
Subject: [PATCH] mwifiex: pcie: skip cancel_work_sync() on reset failure path
@ -154,9 +154,9 @@ index fc59b522f670..048f4db6027a 100644
static inline int
--
2.28.0
2.29.2
From 36c7b429bd54df9e55fbdc653139d4baf16c9953 Mon Sep 17 00:00:00 2001
From f856acbb4ffc08dadde43b012a0b7de8b57cd7c8 Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Mon, 28 Sep 2020 17:46:49 +0900
Subject: [PATCH] mwifiex: pcie: add DMI-based quirk impl for Surface devices
@ -362,9 +362,9 @@ index 000000000000..5326ae7e5671
+
+void mwifiex_initialize_quirks(struct pcie_service_card *card);
--
2.28.0
2.29.2
From e4cedba33eff73175314de2c93bd8c2ddf01e441 Mon Sep 17 00:00:00 2001
From 75190ee0ec83aadac31094c92658b3b2fb60d917 Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Tue, 29 Sep 2020 17:25:22 +0900
Subject: [PATCH] mwifiex: pcie: add reset_d3cold quirk for Surface gen4+
@ -563,9 +563,9 @@ index 5326ae7e5671..8b9dcb5070d8 100644
void mwifiex_initialize_quirks(struct pcie_service_card *card);
+int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
--
2.28.0
2.29.2
From acaf58ea2c66fb0e7141952b54ec2f0eb7d6934e Mon Sep 17 00:00:00 2001
From 7678156d317fb6fe7c8630d0351d7835e159fa0d Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Tue, 29 Sep 2020 17:32:22 +0900
Subject: [PATCH] mwifiex: pcie: add reset_wsid quirk for Surface 3
@ -742,9 +742,9 @@ index 8b9dcb5070d8..3ef7440418e3 100644
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
+int mwifiex_pcie_reset_wsid_quirk(struct pci_dev *pdev);
--
2.28.0
2.29.2
From 4a498b49a7f7141895741fcdd28032b790ff9d35 Mon Sep 17 00:00:00 2001
From 3ce2a07dcc042765314049b4f2ecc67aa0c20d48 Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Wed, 30 Sep 2020 18:08:24 +0900
Subject: [PATCH] mwifiex: pcie: (OEMB) add quirk for Surface 3 with broken DMI
@ -804,9 +804,9 @@ index f0a6fa0a7ae5..34dcd84f02a6 100644
.ident = "Surface Pro 3",
.matches = {
--
2.28.0
2.29.2
From 28158ef411e579c66eb33cafe1b7af5cd9dbcc89 Mon Sep 17 00:00:00 2001
From b7fd7192e0791964c8dd4f9082316c2fdc903324 Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Thu, 24 Sep 2020 01:56:29 +0900
Subject: [PATCH] mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
@ -881,9 +881,9 @@ index 9ee5600351a7..5965999f1b9b 100644
adapter->is_up = false;
--
2.28.0
2.29.2
From f0a8812d81ab425af896717c2ef339d8f7d0557e Mon Sep 17 00:00:00 2001
From e810d3b79d5cb2da17313fb818c0d014160566ee Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Thu, 24 Sep 2020 01:56:34 +0900
Subject: [PATCH] mwifiex: pcie: use shutdown_sw()/reinit_sw() on
@ -1023,9 +1023,9 @@ index daae572ce94e..b46d56389c3b 100644
return 0;
}
--
2.28.0
2.29.2
From 3754079592ed651678caaaf85ba6e974bcc5acf1 Mon Sep 17 00:00:00 2001
From 7b1b2992e5b48ca78e676babefe9ee8742087b2e Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Mon, 24 Aug 2020 17:11:35 +0900
Subject: [PATCH] mwifiex: pcie: add enable_device_dump module parameter
@ -1072,9 +1072,9 @@ index b46d56389c3b..1847a0274991 100644
if (!adapter->devdump_data) {
mwifiex_dbg(adapter, ERROR,
--
2.28.0
2.29.2
From 56e9e15e3c774e324afed5f8e2a9465c36cb0378 Mon Sep 17 00:00:00 2001
From 2135e0c6f4b0a6f8a38e467855c9950bbb066e36 Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Sun, 4 Oct 2020 00:11:49 +0900
Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+
@ -1227,9 +1227,9 @@ index 3ef7440418e3..a95ebac06e13 100644
void mwifiex_initialize_quirks(struct pcie_service_card *card);
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
--
2.28.0
2.29.2
From 532503b8b7b9d60a57fc5d15cae07ddbf6c95627 Mon Sep 17 00:00:00 2001
From 130cdeb74b99af7dcaefe2a7ac8e41d68da82c2c Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Sun, 4 Oct 2020 00:25:48 +0900
Subject: [PATCH] mwifiex: add allow_ps_mode module parameter
@ -1289,9 +1289,9 @@ index 96848fa0e417..786f7a197613 100644
}
--
2.28.0
2.29.2
From 0972cfcfd39efd4e4ef96db7843adb1742b1da7d Mon Sep 17 00:00:00 2001
From 49bb5edf570046c429f7b4c55f1225e840948f1d Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Sun, 4 Oct 2020 00:38:48 +0900
Subject: [PATCH] mwifiex: print message when changing ps_mode
@ -1324,9 +1324,9 @@ index 786f7a197613..8f4b8bc5ff03 100644
}
--
2.28.0
2.29.2
From e22985a52f59503c3e7e85e71dae28f19d333beb Mon Sep 17 00:00:00 2001
From ada5d2a04c623004cbbb6a01d02476dd2ecff07a Mon Sep 17 00:00:00 2001
From: Tsuchiya Yuto <kitakar@gmail.com>
Date: Sun, 4 Oct 2020 00:59:37 +0900
Subject: [PATCH] mwifiex: disable ps_mode explicitly by default instead
@ -1372,5 +1372,5 @@ index d3a968ef21ef..9b7b52fbc9c4 100644
if (drcs) {
--
2.28.0
2.29.2

View file

@ -1,4 +1,4 @@
From 4d69a6adcc5ddac18b1db15c3ac08448f5e9bd39 Mon Sep 17 00:00:00 2001
From 8b515545bffc2eae3dda29600ad2bc9c53216c9b Mon Sep 17 00:00:00 2001
From: Dorian Stoll <dorian.stoll@tmsp.io>
Date: Fri, 25 Sep 2020 18:06:05 +0200
Subject: [PATCH] mei: Remove client devices before shutting down
@ -25,9 +25,9 @@ index bcee77768b91..21ed765003e1 100644
mei_cancel_work(dev);
--
2.28.0
2.29.2
From 2a15f76fdbeeb3f3b1ac1a7ae4a9591d017c5f53 Mon Sep 17 00:00:00 2001
From 358acad2d442d408e4ffb8dad4919dd2d39a63ff Mon Sep 17 00:00:00 2001
From: Dorian Stoll <dorian.stoll@tmsp.io>
Date: Thu, 30 Jul 2020 13:21:53 +0200
Subject: [PATCH] misc: mei: Add missing IPTS device IDs
@ -63,9 +63,9 @@ index 1de9ef7a272b..e12484840f88 100644
{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_H, MEI_ME_PCH15_SPS_CFG)},
--
2.28.0
2.29.2
From 0dfdb2c47e57d7e1511e4b6085424ba8f7e7565e Mon Sep 17 00:00:00 2001
From 5c682c2a3ff988c14e7905935bbca3a7241920d9 Mon Sep 17 00:00:00 2001
From: Dorian Stoll <dorian.stoll@tmsp.io>
Date: Thu, 6 Aug 2020 11:20:41 +0200
Subject: [PATCH] misc: Add support for Intel Precise Touch & Stylus
@ -1412,5 +1412,5 @@ index 000000000000..4c667bb6a7f2
+#endif /* _IPTS_UAPI_H_ */
+
--
2.28.0
2.29.2

View file

@ -1,4 +1,4 @@
From 1e39f55f2a8c3c816fac769e915a898d3f7ed87a Mon Sep 17 00:00:00 2001
From 4ebc750fed6330a867efa48c85918d2996f3d27a Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sun, 16 Aug 2020 23:39:56 +0200
Subject: [PATCH] platform/x86: Add Driver to set up lid GPEs on MS Surface
@ -33,8 +33,8 @@ Patchset: surface-gpe
---
drivers/platform/x86/Kconfig | 9 +
drivers/platform/x86/Makefile | 1 +
drivers/platform/x86/surface_gpe.c | 307 +++++++++++++++++++++++++++++
3 files changed, 317 insertions(+)
drivers/platform/x86/surface_gpe.c | 309 +++++++++++++++++++++++++++++
3 files changed, 319 insertions(+)
create mode 100644 drivers/platform/x86/surface_gpe.c
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
@ -71,15 +71,17 @@ index 5f823f7eff45..c0d1c753eb3c 100644
obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o
diff --git a/drivers/platform/x86/surface_gpe.c b/drivers/platform/x86/surface_gpe.c
new file mode 100644
index 000000000000..2857e3862ca4
index 000000000000..88b952ee9b8b
--- /dev/null
+++ b/drivers/platform/x86/surface_gpe.c
@@ -0,0 +1,307 @@
@@ -0,0 +1,309 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Surface GPE/Lid driver to enable wakeup from suspend via the lid by
+ * properly configuring the respective GPEs. Required for wakeup via lid on
+ * newer Intel-based Microsoft Surface devices.
+ *
+ * Copyright (C) 2020 Maximilian Luz <luzmaximilian@gmail.com>
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@ -383,5 +385,5 @@ index 000000000000..2857e3862ca4
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("dmi:*:svnMicrosoftCorporation:pnSurface*:*");
--
2.28.0
2.29.2

View file

@ -1,4 +1,4 @@
From 824f294b006f50b558734a7d0240e132dd613ca9 Mon Sep 17 00:00:00 2001
From e127b51248880adf78caa4b2e186aa1f87cbab34 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sat, 25 Jul 2020 17:19:53 +0200
Subject: [PATCH] i2c: acpi: Implement RawBytes read access
@ -54,10 +54,10 @@ Patchset: surface-sam-over-hid
1 file changed, 35 insertions(+)
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
index e627d7b2790f..8820131da748 100644
index 37c510d9347a..aed579942436 100644
--- a/drivers/i2c/i2c-core-acpi.c
+++ b/drivers/i2c/i2c-core-acpi.c
@@ -564,6 +564,28 @@ static int acpi_gsb_i2c_write_bytes(struct i2c_client *client,
@@ -574,6 +574,28 @@ static int acpi_gsb_i2c_write_bytes(struct i2c_client *client,
return (ret == 1) ? 0 : -EIO;
}
@ -86,7 +86,7 @@ index e627d7b2790f..8820131da748 100644
static acpi_status
i2c_acpi_space_handler(u32 function, acpi_physical_address command,
u32 bits, u64 *value64,
@@ -665,6 +687,19 @@ i2c_acpi_space_handler(u32 function, acpi_physical_address command,
@@ -675,6 +697,19 @@ i2c_acpi_space_handler(u32 function, acpi_physical_address command,
}
break;
@ -107,9 +107,9 @@ index e627d7b2790f..8820131da748 100644
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
accessor_type, client->addr);
--
2.28.0
2.29.2
From e47b3deefb0fb2c24b65d7b9271c15c0abf4491e Mon Sep 17 00:00:00 2001
From 3d13ed4cc56176579d0f24f6d70dacf972284456 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sun, 6 Sep 2020 04:01:19 +0200
Subject: [PATCH] platform/x86: Add driver for Surface Book 1 dGPU switch
@ -330,5 +330,5 @@ index 000000000000..8c66ed5110fd
+MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
+MODULE_LICENSE("GPL");
--
2.28.0
2.29.2

File diff suppressed because it is too large Load diff

View file

@ -1,70 +0,0 @@
From 93bb0042f8df962612190d85ffa178477833af51 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 14 Oct 2020 16:41:58 +0200
Subject: [PATCH] i2c: core: Restore acpi_walk_dep_device_list() getting called
after registering the ACPI i2c devs
Commit 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler()
before i2c_acpi_register_devices()")'s intention was to only move the
acpi_install_address_space_handler() call to the point before where
the ACPI declared i2c-children of the adapter where instantiated by
i2c_acpi_register_devices().
But i2c_acpi_install_space_handler() had a call to
acpi_walk_dep_device_list() hidden (that is I missed it) at the end
of it, so as an unwanted side-effect now acpi_walk_dep_device_list()
was also being called before i2c_acpi_register_devices().
Move the acpi_walk_dep_device_list() call to the end of
i2c_acpi_register_devices(), so that it is once again called *after*
the i2c_client-s hanging of the adapter have been created.
This fixes the Microsoft Surface Go 2 hanging at boot.
Fixes: 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()")
Suggested-by: Maximilian Luz <luzmaximilian@gmail.com>
Reported-and-tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/i2c/i2c-core-acpi.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
index 8820131da748..aed579942436 100644
--- a/drivers/i2c/i2c-core-acpi.c
+++ b/drivers/i2c/i2c-core-acpi.c
@@ -264,6 +264,7 @@ static acpi_status i2c_acpi_add_device(acpi_handle handle, u32 level,
void i2c_acpi_register_devices(struct i2c_adapter *adap)
{
acpi_status status;
+ acpi_handle handle;
if (!has_acpi_companion(&adap->dev))
return;
@@ -274,6 +275,15 @@ void i2c_acpi_register_devices(struct i2c_adapter *adap)
adap, NULL);
if (ACPI_FAILURE(status))
dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
+
+ if (!adap->dev.parent)
+ return;
+
+ handle = ACPI_HANDLE(adap->dev.parent);
+ if (!handle)
+ return;
+
+ acpi_walk_dep_device_list(handle);
}
static const struct acpi_device_id i2c_acpi_force_400khz_device_ids[] = {
@@ -754,7 +764,6 @@ int i2c_acpi_install_space_handler(struct i2c_adapter *adapter)
return -ENOMEM;
}
- acpi_walk_dep_device_list(handle);
return 0;
}
--
2.28.0

View file

@ -39,14 +39,14 @@ validpgpkeys=(
)
sha256sums=('d2c06044e80b49a7d029d52d297c86efb1726aa0c66d16dd21c6d1df27d7c314'
'36439a90c9d2f860298d90e141f3bf9d897dd8ece9e21cd46508f4ed7b2151bb'
'7f52b09f0bf62d9b2ba162a424ce99caa50cb671f2b78fca1c1dc81e33e9b57f'
'cad2f23b058938c27ccdeb1944dcc492cf8696651b1ca9c74a86eb73a039f8c1'
'8cd2b019aac6d3807a5cdcbbbe0aad81e63193ff3e8dffd7a79d4a1421b858f6'
'09251faa27823c6e6d7e89f6556d7ed2d7649533ce30e57dd9afdab4713cfc1e'
'e83f95d8336985cfff0ba1f45928f4c6e75902db4cafdebfc2c50eb0d4f940d1'
'60e719ec00b39aea1d0f1527a59c225126e633dd7b80da6264451585d44dfdce'
'd0ea6d34040aeeadabc306b50784a701d97ffbc26786af8948dab2658552c643'
'2513728862cc3f3bc8c32b5de8de13f171b5bed9cbc9e7ce5bdbd88f3c7b021b'
'86b09d0c65a7d1bd04550d39dbced9745a7f5be90d5f92c51c4fb2ba1a6d4d8e')
'ab3886ff7266cf518d409a03261e496ffa992e1e9e5f74160f38907d392810a1'
'affe80a0d097740a0523cbad5dd7657df5772a57e93af3dd318138866987198f'
'c5143277de5086f20f4bd605d5e82f7abdfc725871c103f461b701588b7558e1'
'1bd872785623a547ee0e7f0d4c6e68c2067ebde73fcc96bc2bfabfaf4fda5515'
'8d4fd88b450e9e7bc6050d9a69e42ef255a664f8b70bdb10eb8fff49bd7d6484'
'184693d8003fc85213c5f662a2bbd729402e2ddba6035f67fa360179414fea36')
export KBUILD_BUILD_HOST=archlinux