Browse Source

Update v5.14 patches

Changes:
 - Clean up and re-work Surface Aggregator Module support for the
   Surface Pro 8.
 - Fix a bug causing time-outs when unloading drivers of detached
   Surface Aggregator Module devices such as contained in the Surface
   Book 3 base and the Surface Pro 8 keyboard cover.
 - Move Surface Aggregator devices of the Surface Book 3 base from the
   base hub to the KIP hub introduced for the Surface Pro 8.

Links:
 - kernel: https://github.com/linux-surface/kernel/commit/e716df100b78e2fb5018c5437286604b3a9dcdd2
 - SAM: https://github.com/linux-surface/surface-aggregator-module/commit/3cfb0b76c812f4ff474278ae604d1bb630d4cbdf
Maximilian Luz 3 years ago
parent
commit
ca6d4ff954

+ 1 - 1
patches/5.14/0001-surface3-oemb.patch

@@ -1,4 +1,4 @@
-From 659af129afaf4269548f72b50f4f859edee2c748 Mon Sep 17 00:00:00 2001
+From 728e9a3ead86211b104816f5b6a7f12ef40e557a Mon Sep 17 00:00:00 2001
 From: Tsuchiya Yuto <kitakar@gmail.com>
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Sun, 18 Oct 2020 16:42:44 +0900
 Date: Sun, 18 Oct 2020 16:42:44 +0900
 Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
 Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI

+ 25 - 25
patches/5.14/0002-mwifiex.patch

@@ -1,4 +1,4 @@
-From 0e9e73e3d3a51849432679cf94e61c7b6c5c26ec Mon Sep 17 00:00:00 2001
+From e5ba04fb640401a4059e9b9c59143466c5db43f2 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Fri, 20 Aug 2021 16:20:49 +0200
 Date: Fri, 20 Aug 2021 16:20:49 +0200
 Subject: [PATCH] mwifiex: pcie: add DMI-based quirk implementation for Surface
 Subject: [PATCH] mwifiex: pcie: add DMI-based quirk implementation for Surface
@@ -148,7 +148,7 @@ index 000000000000..18eacc8c2d3a
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 95f800e9c9b0a97edf5500678ed376fa824903c5 Mon Sep 17 00:00:00 2001
+From 1a06a6339a90793dd3c929bfa1fc295a0df2161f Mon Sep 17 00:00:00 2001
 From: Tsuchiya Yuto <kitakar@gmail.com>
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Fri, 20 Aug 2021 16:20:50 +0200
 Date: Fri, 20 Aug 2021 16:20:50 +0200
 Subject: [PATCH] mwifiex: pcie: add reset_d3cold quirk for Surface gen4+
 Subject: [PATCH] mwifiex: pcie: add reset_d3cold quirk for Surface gen4+
@@ -353,7 +353,7 @@ index 18eacc8c2d3a..8ec4176d698f 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 94856972be4ad8fb7527e30360bf51bc93b15dce Mon Sep 17 00:00:00 2001
+From 486fe30526e7be0e852c9346d22ec5be2034487c Mon Sep 17 00:00:00 2001
 From: Tsuchiya Yuto <kitakar@gmail.com>
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Tue, 29 Sep 2020 17:32:22 +0900
 Date: Tue, 29 Sep 2020 17:32:22 +0900
 Subject: [PATCH] mwifiex: pcie: add reset_wsid quirk for Surface 3
 Subject: [PATCH] mwifiex: pcie: add reset_wsid quirk for Surface 3
@@ -538,7 +538,7 @@ index 8ec4176d698f..25370c5a4f59 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From b65a320577eff6e57e397b1e6ed71e68c6e40733 Mon Sep 17 00:00:00 2001
+From 1c5c097c74c5f991a1e3017f125290c1b8369a6a Mon Sep 17 00:00:00 2001
 From: Tsuchiya Yuto <kitakar@gmail.com>
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Wed, 30 Sep 2020 18:08:24 +0900
 Date: Wed, 30 Sep 2020 18:08:24 +0900
 Subject: [PATCH] mwifiex: pcie: (OEMB) add quirk for Surface 3 with broken DMI
 Subject: [PATCH] mwifiex: pcie: (OEMB) add quirk for Surface 3 with broken DMI
@@ -600,7 +600,7 @@ index 563dd0d5ac79..32e2f000e57b 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From a1d2be3230d3aa5a832938570cb0167580c3d96e Mon Sep 17 00:00:00 2001
+From 898dd573528db114ea87218abc24274d18fd7223 Mon Sep 17 00:00:00 2001
 From: Tsuchiya Yuto <kitakar@gmail.com>
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Sun, 4 Oct 2020 00:11:49 +0900
 Date: Sun, 4 Oct 2020 00:11:49 +0900
 Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+
 Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+
@@ -755,7 +755,7 @@ index 25370c5a4f59..a1de111ad1db 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From f195b059b1b354880411b6cb285f1906c9c6fb84 Mon Sep 17 00:00:00 2001
+From a1ee6b357312830d31808692bc4002c12a0a5bcd Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 3 Nov 2020 13:28:04 +0100
 Date: Tue, 3 Nov 2020 13:28:04 +0100
 Subject: [PATCH] mwifiex: Add quirk resetting the PCI bridge on MS Surface
 Subject: [PATCH] mwifiex: Add quirk resetting the PCI bridge on MS Surface
@@ -922,7 +922,7 @@ index a1de111ad1db..0e429779bb04 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 9089879a9e59c63e3de1b8640a2f03fb5f83d2e5 Mon Sep 17 00:00:00 2001
+From 1ecccf3a7c25b72b927ed941aa420436e8d3e76a Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Thu, 25 Mar 2021 11:33:02 +0100
 Date: Thu, 25 Mar 2021 11:33:02 +0100
 Subject: [PATCH] Bluetooth: btusb: Lower passive lescan interval on Marvell
 Subject: [PATCH] Bluetooth: btusb: Lower passive lescan interval on Marvell
@@ -1000,7 +1000,7 @@ index bd37d6fb88c2..d12fb2034d46 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 5b1160d606010f6f879db9b5417f219ce2e2fd8a Mon Sep 17 00:00:00 2001
+From 85bff0a7e40a973cb0a0214e36cea725ca880f6a Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Wed, 11 Nov 2020 12:31:26 +0100
 Date: Wed, 11 Nov 2020 12:31:26 +0100
 Subject: [PATCH] mwifiex: Small cleanup for handling virtual interface type
 Subject: [PATCH] mwifiex: Small cleanup for handling virtual interface type
@@ -1101,7 +1101,7 @@ index 0961f4a5e415..e8deba119ff1 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 2b6a093f97f292b78ecaba53cd2084e3ce49ef10 Mon Sep 17 00:00:00 2001
+From 0c552e9622aef2b617164f87d52ca7bab6fcbaad Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 10 Nov 2020 12:49:56 +0100
 Date: Tue, 10 Nov 2020 12:49:56 +0100
 Subject: [PATCH] mwifiex: Use non-posted PCI register writes
 Subject: [PATCH] mwifiex: Use non-posted PCI register writes
@@ -1158,7 +1158,7 @@ index ca06eb7ac4aa..95e5851d2d0a 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From d5fc8e2106e6ed277a08f6d03d11852ca869105b Mon Sep 17 00:00:00 2001
+From 694ceebf5656e17a9058cf91ad5bc227c37621a0 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Wed, 11 Nov 2020 12:44:39 +0100
 Date: Wed, 11 Nov 2020 12:44:39 +0100
 Subject: [PATCH] mwifiex: Use function to check whether interface type change
 Subject: [PATCH] mwifiex: Use function to check whether interface type change
@@ -1391,7 +1391,7 @@ index e8deba119ff1..dabc59c47de3 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 59fb11db8c688ce93db35e715fec2b1a2af82bd3 Mon Sep 17 00:00:00 2001
+From d35e9eb8b1b56c0f7b30ad24d4c9f439ca3b875c Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Wed, 11 Nov 2020 13:33:04 +0100
 Date: Wed, 11 Nov 2020 13:33:04 +0100
 Subject: [PATCH] mwifiex: Run SET_BSS_MODE when changing from P2P to STATION
 Subject: [PATCH] mwifiex: Run SET_BSS_MODE when changing from P2P to STATION
@@ -1459,7 +1459,7 @@ index dabc59c47de3..146aabe14753 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 794a0a951a96ab3c1d72cb4a134f67788cc24e32 Mon Sep 17 00:00:00 2001
+From 6e7e79d9ff0c7419a9aeb10abf8245b6f728a286 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Wed, 11 Nov 2020 14:42:54 +0100
 Date: Wed, 11 Nov 2020 14:42:54 +0100
 Subject: [PATCH] mwifiex: Use helper function for counting interface types
 Subject: [PATCH] mwifiex: Use helper function for counting interface types
@@ -1635,7 +1635,7 @@ index 146aabe14753..8b9517c243c8 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From b21838facca599fcf4af2df4753fadedb1275a35 Mon Sep 17 00:00:00 2001
+From b8471c1f176f8439a9a91ab31e6f567f382cf522 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Fri, 26 Mar 2021 15:56:58 +0100
 Date: Fri, 26 Mar 2021 15:56:58 +0100
 Subject: [PATCH] mwifiex: Update virtual interface counters right after
 Subject: [PATCH] mwifiex: Update virtual interface counters right after
@@ -1738,7 +1738,7 @@ index 8b9517c243c8..f2797102c5a2 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 69534d41b085682fbeeb9e9d3793530bc985d58b Mon Sep 17 00:00:00 2001
+From 3ca87f6e68ed366bb9c7cf0fd316f14a33790874 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Wed, 11 Nov 2020 13:42:40 +0100
 Date: Wed, 11 Nov 2020 13:42:40 +0100
 Subject: [PATCH] mwifiex: Allow switching interface type from P2P_CLIENT to
 Subject: [PATCH] mwifiex: Allow switching interface type from P2P_CLIENT to
@@ -1827,7 +1827,7 @@ index f2797102c5a2..ed4041ff9c89 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From b6aeb4f99d59c5da8aff49dfe1af930657385225 Mon Sep 17 00:00:00 2001
+From c29d5731d103808250eb5825a527aada89a19956 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Fri, 26 Mar 2021 15:31:08 +0100
 Date: Fri, 26 Mar 2021 15:31:08 +0100
 Subject: [PATCH] mwifiex: Handle interface type changes from AP to STATION
 Subject: [PATCH] mwifiex: Handle interface type changes from AP to STATION
@@ -1854,7 +1854,7 @@ index ed4041ff9c89..64caa5c4350d 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 15ef40a4f584d08d35897bd39968dd166578a039 Mon Sep 17 00:00:00 2001
+From 13d008b74ff4534e2ffa22dc4ec9310e782f7dc0 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Fri, 26 Mar 2021 15:32:16 +0100
 Date: Fri, 26 Mar 2021 15:32:16 +0100
 Subject: [PATCH] mwifiex: Properly initialize private structure on interface
 Subject: [PATCH] mwifiex: Properly initialize private structure on interface
@@ -1909,7 +1909,7 @@ index 64caa5c4350d..0eb31201a82b 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From b0ef209e94d211821a1f217c04e0de773bf85a5d Mon Sep 17 00:00:00 2001
+From 3af52b5cbb0801254083134d7b82f9d5e2a481e7 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Sat, 27 Mar 2021 12:19:14 +0100
 Date: Sat, 27 Mar 2021 12:19:14 +0100
 Subject: [PATCH] mwifiex: Fix copy-paste mistake when creating virtual
 Subject: [PATCH] mwifiex: Fix copy-paste mistake when creating virtual
@@ -1941,7 +1941,7 @@ index 0eb31201a82b..d62a20de3ada 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 22b1fbfea43aed90fca1e57dc54acd963b0be06d Mon Sep 17 00:00:00 2001
+From 18346a7c7bb7bab87ae46e32d851d9172d5f3b6b Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Sun, 28 Mar 2021 21:10:06 +0200
 Date: Sun, 28 Mar 2021 21:10:06 +0200
 Subject: [PATCH] mwifiex: Try waking the firmware until we get an interrupt
 Subject: [PATCH] mwifiex: Try waking the firmware until we get an interrupt
@@ -2030,7 +2030,7 @@ index 95e5851d2d0a..ccae1532a580 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From c9382a520e783ef22c56fd70ed6f92e4a3f1aec1 Mon Sep 17 00:00:00 2001
+From 4673314158e61c8de371760072309c67ccf76983 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 13 Apr 2021 14:30:28 +0200
 Date: Tue, 13 Apr 2021 14:30:28 +0200
 Subject: [PATCH] mwifiex: Deactive host sleep using HSCFG after it was
 Subject: [PATCH] mwifiex: Deactive host sleep using HSCFG after it was
@@ -2186,7 +2186,7 @@ index 48ea00da1fc9..1e2798dce18f 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 08b51a325cd5f15909ac49d793f0bcfc4c62b3b1 Mon Sep 17 00:00:00 2001
+From e642cf41c2a26fc1fbdb2235bb4c29f2ec0f950c Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 13 Apr 2021 14:23:05 +0200
 Date: Tue, 13 Apr 2021 14:23:05 +0200
 Subject: [PATCH] mwifiex: Add quirk to disable deep sleep with certain
 Subject: [PATCH] mwifiex: Add quirk to disable deep sleep with certain
@@ -2289,7 +2289,7 @@ index 6b5d35d9e69f..8e49ebca1847 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 5ce47dc8c5332815a21d0fe7044bbbafde02141a Mon Sep 17 00:00:00 2001
+From 8d489393389bcfd1cdf7cad51ba82c2f75853805 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Wed, 11 Nov 2020 15:17:07 +0100
 Date: Wed, 11 Nov 2020 15:17:07 +0100
 Subject: [PATCH] mwifiex: Don't log error on suspend if wake-on-wlan is
 Subject: [PATCH] mwifiex: Don't log error on suspend if wake-on-wlan is
@@ -2321,7 +2321,7 @@ index d62a20de3ada..18b1a6d54bc8 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 4dea21d0be7d4cc6f5cb130d0f05b45b95d5c28e Mon Sep 17 00:00:00 2001
+From ab66f38ff034fcad78b24a2f4feea20c4a609aec Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Sun, 28 Mar 2021 21:42:54 +0200
 Date: Sun, 28 Mar 2021 21:42:54 +0200
 Subject: [PATCH] mwifiex: Log an error on command failure during key-material
 Subject: [PATCH] mwifiex: Log an error on command failure during key-material
@@ -2361,7 +2361,7 @@ index 18b1a6d54bc8..c00791701d78 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 4355c80cc4e93d3df6bc154c08221444b7bf5e07 Mon Sep 17 00:00:00 2001
+From d5d792042614e685da2335bd4ee7e445167fb074 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 13 Apr 2021 12:44:03 +0200
 Date: Tue, 13 Apr 2021 12:44:03 +0200
 Subject: [PATCH] mwifiex: Fix an incorrect comment
 Subject: [PATCH] mwifiex: Fix an incorrect comment
@@ -2389,7 +2389,7 @@ index 6696bce56178..b0695432b26a 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From b6ceee070897f613cebdd964b99f220369a6d4e4 Mon Sep 17 00:00:00 2001
+From fa961ed320076062d816d2ab97e57eb2731afb19 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 13 Apr 2021 12:45:59 +0200
 Date: Tue, 13 Apr 2021 12:45:59 +0200
 Subject: [PATCH] mwifiex: Send DELBA requests according to spec
 Subject: [PATCH] mwifiex: Send DELBA requests according to spec
@@ -2432,7 +2432,7 @@ index b0695432b26a..9ff2058bcd7e 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 18760299a6b79db576c05da54f3f5ba19c9cde64 Mon Sep 17 00:00:00 2001
+From 358cb67766bf1767eefaaf996eae058f8026d482 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 13 Apr 2021 12:57:41 +0200
 Date: Tue, 13 Apr 2021 12:57:41 +0200
 Subject: [PATCH] mwifiex: Ignore BTCOEX events from the firmware
 Subject: [PATCH] mwifiex: Ignore BTCOEX events from the firmware

+ 1 - 1
patches/5.14/0003-ath10k.patch

@@ -1,4 +1,4 @@
-From d7e348126f8ebca91498133ef6ca442bdc081b4a Mon Sep 17 00:00:00 2001
+From e637947850d015659a002aecfb3cfbd1909254ef Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 27 Feb 2021 00:45:52 +0100
 Date: Sat, 27 Feb 2021 00:45:52 +0100
 Subject: [PATCH] ath10k: Add module parameters to override board files
 Subject: [PATCH] ath10k: Add module parameters to override board files

+ 2 - 2
patches/5.14/0004-ipts.patch

@@ -1,4 +1,4 @@
-From 358612bc5f2fec71ef7442b3e30d0f0cdd13c5f6 Mon Sep 17 00:00:00 2001
+From bc11b0e52d9bbbb679a51fb99272c94ac9ed78ce Mon Sep 17 00:00:00 2001
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 Date: Thu, 30 Jul 2020 13:21:53 +0200
 Date: Thu, 30 Jul 2020 13:21:53 +0200
 Subject: [PATCH] misc: mei: Add missing IPTS device IDs
 Subject: [PATCH] misc: mei: Add missing IPTS device IDs
@@ -36,7 +36,7 @@ index 3a45aaf002ac..55b8ee30a03c 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 7a738bf61fae8f94a02296d56e02170d53d004c2 Mon Sep 17 00:00:00 2001
+From ef47a59f285220b5c6a711d165ff19ea583d7255 Mon Sep 17 00:00:00 2001
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 Date: Thu, 6 Aug 2020 11:20:41 +0200
 Date: Thu, 6 Aug 2020 11:20:41 +0200
 Subject: [PATCH] misc: Add support for Intel Precise Touch & Stylus
 Subject: [PATCH] misc: Add support for Intel Precise Touch & Stylus

+ 845 - 218
patches/5.14/0005-surface-sam.patch

@@ -1,4 +1,4 @@
-From 93c1103857ae9557a867a378268c76d8d52dba09 Mon Sep 17 00:00:00 2001
+From dd8529f3d89fd96e800812ab9a0e24419536b559 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 10 Oct 2021 01:27:17 +0200
 Date: Sun, 10 Oct 2021 01:27:17 +0200
 Subject: [PATCH] platform/surface: aggregator_registry: Add support for
 Subject: [PATCH] platform/surface: aggregator_registry: Add support for
@@ -102,7 +102,7 @@ index 4428c4330229..1679811eff50 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 8cf31537f7ad6798f881b0cb65e32a6bb5dc787c Mon Sep 17 00:00:00 2001
+From 9186614dfdc63331b761af7ae6bff110207f125c Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 10 Oct 2021 15:07:42 +0200
 Date: Sun, 10 Oct 2021 15:07:42 +0200
 Subject: [PATCH] HID: surface-hid: Use correct event registry for managing HID
 Subject: [PATCH] HID: surface-hid: Use correct event registry for managing HID
@@ -165,7 +165,7 @@ index 068e1982ad37..74bfdffaf7b0 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From e37ee323ec827c2ef5ad30f7105203715afc76f4 Mon Sep 17 00:00:00 2001
+From 6414b7dc4b773f96785ed08005b491c71d9ebb4a Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 10 Oct 2021 19:48:10 +0200
 Date: Sun, 10 Oct 2021 19:48:10 +0200
 Subject: [PATCH] HID: surface-hid: Allow driver matching for target ID 1
 Subject: [PATCH] HID: surface-hid: Allow driver matching for target ID 1
@@ -198,7 +198,67 @@ index daa452367c0b..d4aa8c81903a 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 00dbcbeeae4d15358e9af0e9a4cee711f09e896d Mon Sep 17 00:00:00 2001
+From a67db7ca93a6460f040946d58ef47dfecda960ab Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Thu, 28 Oct 2021 03:28:45 +0200
+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 <luzmaximilian@gmail.com>
+Link: https://lore.kernel.org/r/20211028012845.1887219-1-luzmaximilian@gmail.com
+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Patchset: surface-sam
+---
+ .../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 1679811eff50..e70f4c63554e 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. ------------------------------------- */
+ 
+@@ -534,6 +543,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
+
+From b82755eb5d767d05ae4c05aa0d5c40d3232145c7 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Wed, 2 Jun 2021 03:34:06 +0200
 Date: Wed, 2 Jun 2021 03:34:06 +0200
 Subject: [PATCH] platform/surface: aggregator: Make client device removal more
 Subject: [PATCH] platform/surface: aggregator: Make client device removal more
@@ -323,7 +383,7 @@ index f636c5310321..cc257097eb05 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From f0aaf21cefd42ce8f828d54a11207d72fea9e579 Mon Sep 17 00:00:00 2001
+From ebd74b2d1ff13074fa1ee538886888fcae3c1dbf Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Wed, 27 Oct 2021 02:06:38 +0200
 Date: Wed, 27 Oct 2021 02:06:38 +0200
 Subject: [PATCH] platform/surface: aggregator_registry: Use generic client
 Subject: [PATCH] platform/surface: aggregator_registry: Use generic client
@@ -339,10 +399,10 @@ Patchset: surface-sam
  1 file changed, 5 insertions(+), 19 deletions(-)
  1 file changed, 5 insertions(+), 19 deletions(-)
 
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index 1679811eff50..d63f975bfd4c 100644
+index e70f4c63554e..f6c639342b9d 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
-@@ -249,20 +249,6 @@ static int ssam_uid_from_string(const char *str, struct ssam_device_uid *uid)
+@@ -258,20 +258,6 @@ static int ssam_uid_from_string(const char *str, struct ssam_device_uid *uid)
  	return 0;
  	return 0;
  }
  }
  
  
@@ -363,7 +423,7 @@ index 1679811eff50..d63f975bfd4c 100644
  static int ssam_hub_add_device(struct device *parent, struct ssam_controller *ctrl,
  static int ssam_hub_add_device(struct device *parent, struct ssam_controller *ctrl,
  			       struct fwnode_handle *node)
  			       struct fwnode_handle *node)
  {
  {
-@@ -308,7 +294,7 @@ static int ssam_hub_add_devices(struct device *parent, struct ssam_controller *c
+@@ -317,7 +303,7 @@ static int ssam_hub_add_devices(struct device *parent, struct ssam_controller *c
  
  
  	return 0;
  	return 0;
  err:
  err:
@@ -372,7 +432,7 @@ index 1679811eff50..d63f975bfd4c 100644
  	return status;
  	return status;
  }
  }
  
  
-@@ -405,7 +391,7 @@ static void ssam_base_hub_update_workfn(struct work_struct *work)
+@@ -414,7 +400,7 @@ static void ssam_base_hub_update_workfn(struct work_struct *work)
  	if (hub->state == SSAM_BASE_HUB_CONNECTED)
  	if (hub->state == SSAM_BASE_HUB_CONNECTED)
  		status = ssam_hub_add_devices(&hub->sdev->dev, hub->sdev->ctrl, node);
  		status = ssam_hub_add_devices(&hub->sdev->dev, hub->sdev->ctrl, node);
  	else
  	else
@@ -381,7 +441,7 @@ index 1679811eff50..d63f975bfd4c 100644
  
  
  	if (status)
  	if (status)
  		dev_err(&hub->sdev->dev, "failed to update base-hub devices: %d\n", status);
  		dev_err(&hub->sdev->dev, "failed to update base-hub devices: %d\n", status);
-@@ -487,7 +473,7 @@ static int ssam_base_hub_probe(struct ssam_device *sdev)
+@@ -496,7 +482,7 @@ static int ssam_base_hub_probe(struct ssam_device *sdev)
  err:
  err:
  	ssam_notifier_unregister(sdev->ctrl, &hub->notif);
  	ssam_notifier_unregister(sdev->ctrl, &hub->notif);
  	cancel_delayed_work_sync(&hub->update_work);
  	cancel_delayed_work_sync(&hub->update_work);
@@ -390,7 +450,7 @@ index 1679811eff50..d63f975bfd4c 100644
  	return status;
  	return status;
  }
  }
  
  
-@@ -499,7 +485,7 @@ static void ssam_base_hub_remove(struct ssam_device *sdev)
+@@ -508,7 +494,7 @@ static void ssam_base_hub_remove(struct ssam_device *sdev)
  
  
  	ssam_notifier_unregister(sdev->ctrl, &hub->notif);
  	ssam_notifier_unregister(sdev->ctrl, &hub->notif);
  	cancel_delayed_work_sync(&hub->update_work);
  	cancel_delayed_work_sync(&hub->update_work);
@@ -399,7 +459,7 @@ index 1679811eff50..d63f975bfd4c 100644
  }
  }
  
  
  static const struct ssam_device_id ssam_base_hub_match[] = {
  static const struct ssam_device_id ssam_base_hub_match[] = {
-@@ -613,7 +599,7 @@ static int ssam_platform_hub_remove(struct platform_device *pdev)
+@@ -625,7 +611,7 @@ static int ssam_platform_hub_remove(struct platform_device *pdev)
  {
  {
  	const struct software_node **nodes = platform_get_drvdata(pdev);
  	const struct software_node **nodes = platform_get_drvdata(pdev);
  
  
@@ -411,7 +471,7 @@ index 1679811eff50..d63f975bfd4c 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From e86647069fa14e01aff6a31583743f271d666d95 Mon Sep 17 00:00:00 2001
+From 08e1e9275e9f104a9f2c84ef02d98b8c327be26e Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Wed, 27 Oct 2021 02:07:33 +0200
 Date: Wed, 27 Oct 2021 02:07:33 +0200
 Subject: [PATCH] platform/surface: aggregator_registry: Rename device
 Subject: [PATCH] platform/surface: aggregator_registry: Rename device
@@ -427,10 +487,10 @@ Patchset: surface-sam
  1 file changed, 4 insertions(+), 4 deletions(-)
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index d63f975bfd4c..2e0d3a808d47 100644
+index f6c639342b9d..ce2bd88feeaa 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
-@@ -274,8 +274,8 @@ static int ssam_hub_add_device(struct device *parent, struct ssam_controller *ct
+@@ -283,8 +283,8 @@ static int ssam_hub_add_device(struct device *parent, struct ssam_controller *ct
  	return status;
  	return status;
  }
  }
  
  
@@ -441,7 +501,7 @@ index d63f975bfd4c..2e0d3a808d47 100644
  {
  {
  	struct fwnode_handle *child;
  	struct fwnode_handle *child;
  	int status;
  	int status;
-@@ -389,7 +389,7 @@ static void ssam_base_hub_update_workfn(struct work_struct *work)
+@@ -398,7 +398,7 @@ static void ssam_base_hub_update_workfn(struct work_struct *work)
  	hub->state = state;
  	hub->state = state;
  
  
  	if (hub->state == SSAM_BASE_HUB_CONNECTED)
  	if (hub->state == SSAM_BASE_HUB_CONNECTED)
@@ -450,7 +510,7 @@ index d63f975bfd4c..2e0d3a808d47 100644
  	else
  	else
  		ssam_remove_clients(&hub->sdev->dev);
  		ssam_remove_clients(&hub->sdev->dev);
  
  
-@@ -585,7 +585,7 @@ static int ssam_platform_hub_probe(struct platform_device *pdev)
+@@ -597,7 +597,7 @@ static int ssam_platform_hub_probe(struct platform_device *pdev)
  
  
  	set_secondary_fwnode(&pdev->dev, root);
  	set_secondary_fwnode(&pdev->dev, root);
  
  
@@ -462,27 +522,28 @@ index d63f975bfd4c..2e0d3a808d47 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 88d3d04fcfc74c04cb2b406f6b68cd589cfc5d63 Mon Sep 17 00:00:00 2001
+From 139b613c82971c45c1887f0f36b1e4e8f211fe8c Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Tue, 8 Jun 2021 00:24:47 +0200
 Date: Tue, 8 Jun 2021 00:24:47 +0200
 Subject: [PATCH] platform/surface: aggregator: Allow devices to be marked as
 Subject: [PATCH] platform/surface: aggregator: Allow devices to be marked as
  hot-removed
  hot-removed
 
 
-Some SSAM devices, notably keyboard and touchpad on the Surface Book 3
-and Surface Pro 8, can be hot-removed. When this occurs, communication
-with the device may fail and time out. This timeout may unnecessarily
+Some SSAM devices, notably the keyboard cover (keyboard and touchpad) on
+the Surface Pro 8, can be hot-removed. When this occurs, communication
+with the device may fail and time out. This timeout can unnecessarily
 block and slow down device removal and even cause issues when the
 block and slow down device removal and even cause issues when the
 devices are detached and re-attached quickly. Thus, communication should
 devices are detached and re-attached quickly. Thus, communication should
 generally be avoided once hot-removal is detected.
 generally be avoided once hot-removal is detected.
 
 
-While we already remove a device as soon as we detect its hot-removal,
+While we already remove a device as soon as we detect its (hot-)removal,
 the corresponding device driver may still attempt to communicate with
 the corresponding device driver may still attempt to communicate with
 the device during teardown. This is especially critical as communication
 the device during teardown. This is especially critical as communication
-failure may also extend to event disablement.
+failure may also extend to disabling of events, which is typically done
+at that stage.
 
 
 Add a flag to allow marking devices as hot-removed. This can then be
 Add a flag to allow marking devices as hot-removed. This can then be
 used during client driver teardown to check if any communication
 used during client driver teardown to check if any communication
-attemtps should be avoided.
+attempts should be avoided.
 
 
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Patchset: surface-sam
 Patchset: surface-sam
@@ -623,7 +684,7 @@ index cc257097eb05..b474a9baab42 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From d74f2c3b78911fb6cb98c23f345c03d01f84f148 Mon Sep 17 00:00:00 2001
+From 702fae57de9a9737c58c1413f894002e8f2ffc71 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Tue, 8 Jun 2021 00:48:22 +0200
 Date: Tue, 8 Jun 2021 00:48:22 +0200
 Subject: [PATCH] platform/surface: aggregator: Allow notifiers to avoid
 Subject: [PATCH] platform/surface: aggregator: Allow notifiers to avoid
@@ -678,7 +739,7 @@ index e519d374c378..27f95abdbe99 100644
  Event notifiers are registered by providing (at minimum) a callback to call
  Event notifiers are registered by providing (at minimum) a callback to call
  in case an event has been received, the registry specifying how the event
  in case an event has been received, the registry specifying how the event
 diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c
 diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c
-index b8c377b3f932..dc0f22be2630 100644
+index b8c377b3f932..6de834b52b63 100644
 --- a/drivers/platform/surface/aggregator/controller.c
 --- a/drivers/platform/surface/aggregator/controller.c
 +++ b/drivers/platform/surface/aggregator/controller.c
 +++ b/drivers/platform/surface/aggregator/controller.c
 @@ -2199,16 +2199,26 @@ static int ssam_nf_refcount_enable(struct ssam_controller *ctrl,
 @@ -2199,16 +2199,26 @@ static int ssam_nf_refcount_enable(struct ssam_controller *ctrl,
@@ -698,7 +759,7 @@ index b8c377b3f932..dc0f22be2630 100644
 - * any client, the event will be disabled and the corresponding reference count
 - * any client, the event will be disabled and the corresponding reference count
 - * entry freed. The reference count entry must not be used any more after a
 - * entry freed. The reference count entry must not be used any more after a
 - * call to this function.
 - * call to this function.
-+ * If ``ec`` equals ``true`` and the reference count equals zero (i.e.  the
++ * If ``ec`` equals ``true`` and the reference count equals zero (i.e. the
 + * event is no longer requested by any client), the specified event will be
 + * event is no longer requested by any client), the specified event will be
 + * disabled on the EC via the corresponding request.
 + * disabled on the EC via the corresponding request.
 + *
 + *
@@ -910,14 +971,14 @@ index b474a9baab42..76e6300b07d5 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From c737f87cc26eaa28a6d44637478cf0835d395a94 Mon Sep 17 00:00:00 2001
+From bacfef7b5c1402eb359f6b3b306472fc9ecb160a Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Tue, 8 Jun 2021 01:20:49 +0200
 Date: Tue, 8 Jun 2021 01:20:49 +0200
 Subject: [PATCH] platform/surface: aggregator_registry: Use client device
 Subject: [PATCH] platform/surface: aggregator_registry: Use client device
  wrappers for notifier registration
  wrappers for notifier registration
 
 
 Use newly introduced client device wrapper functions for notifier
 Use newly introduced client device wrapper functions for notifier
-registration and deregistration.
+registration and unregistration.
 
 
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Patchset: surface-sam
 Patchset: surface-sam
@@ -926,10 +987,10 @@ Patchset: surface-sam
  1 file changed, 3 insertions(+), 3 deletions(-)
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index 2e0d3a808d47..64c83b846907 100644
+index ce2bd88feeaa..9f630e890ff7 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
-@@ -459,7 +459,7 @@ static int ssam_base_hub_probe(struct ssam_device *sdev)
+@@ -468,7 +468,7 @@ static int ssam_base_hub_probe(struct ssam_device *sdev)
  
  
  	ssam_device_set_drvdata(sdev, hub);
  	ssam_device_set_drvdata(sdev, hub);
  
  
@@ -938,7 +999,7 @@ index 2e0d3a808d47..64c83b846907 100644
  	if (status)
  	if (status)
  		return status;
  		return status;
  
  
-@@ -471,7 +471,7 @@ static int ssam_base_hub_probe(struct ssam_device *sdev)
+@@ -480,7 +480,7 @@ static int ssam_base_hub_probe(struct ssam_device *sdev)
  	return 0;
  	return 0;
  
  
  err:
  err:
@@ -947,7 +1008,7 @@ index 2e0d3a808d47..64c83b846907 100644
  	cancel_delayed_work_sync(&hub->update_work);
  	cancel_delayed_work_sync(&hub->update_work);
  	ssam_remove_clients(&sdev->dev);
  	ssam_remove_clients(&sdev->dev);
  	return status;
  	return status;
-@@ -483,7 +483,7 @@ static void ssam_base_hub_remove(struct ssam_device *sdev)
+@@ -492,7 +492,7 @@ static void ssam_base_hub_remove(struct ssam_device *sdev)
  
  
  	sysfs_remove_group(&sdev->dev.kobj, &ssam_base_hub_group);
  	sysfs_remove_group(&sdev->dev.kobj, &ssam_base_hub_group);
  
  
@@ -959,62 +1020,26 @@ index 2e0d3a808d47..64c83b846907 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 8f2340e6b616e25cdf4e9f8a75ec95287172f918 Mon Sep 17 00:00:00 2001
+From 73819d3f596735d225d562e6334133de761d92ec Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
-Date: Tue, 8 Jun 2021 01:08:29 +0200
-Subject: [PATCH] power/supply: surface_charger: Add support for hot-removal
+Date: Thu, 28 Oct 2021 03:37:06 +0200
+Subject: [PATCH] power/supply: surface_charger: Use client device wrappers for
+ notifier registration
 
 
-In cases of hot-removal, further communication with the device should be
-avoided as it may fail and time out.
-
-Use the client device wrapper functions to register and unregister the
-notifiers as those check during unregistration if the device has been
-marked as hot-removed and handle this case appropriately.
+Use newly introduced client device wrapper functions for notifier
+registration and unregistration.
 
 
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Patchset: surface-sam
 Patchset: surface-sam
 ---
 ---
- drivers/power/supply/surface_charger.c | 16 +++++++++++-----
- 1 file changed, 11 insertions(+), 5 deletions(-)
+ drivers/power/supply/surface_charger.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 
 diff --git a/drivers/power/supply/surface_charger.c b/drivers/power/supply/surface_charger.c
 diff --git a/drivers/power/supply/surface_charger.c b/drivers/power/supply/surface_charger.c
-index a060c36c7766..9a3525c32aca 100644
+index a060c36c7766..59182d55742d 100644
 --- a/drivers/power/supply/surface_charger.c
 --- a/drivers/power/supply/surface_charger.c
 +++ b/drivers/power/supply/surface_charger.c
 +++ b/drivers/power/supply/surface_charger.c
-@@ -69,6 +69,9 @@ static int spwr_ac_update_unlocked(struct spwr_ac_device *ac)
- 	__le32 old = ac->state;
- 	int status;
- 
-+	if (ssam_device_is_hot_removed(ac->sdev))
-+		return -ENODEV;
-+
- 	lockdep_assert_held(&ac->lock);
- 
- 	status = ssam_retry(ssam_bat_get_psrc, ac->sdev, &ac->state);
-@@ -103,7 +106,6 @@ static int spwr_ac_recheck(struct spwr_ac_device *ac)
- static u32 spwr_notify_ac(struct ssam_event_notifier *nf, const struct ssam_event *event)
- {
- 	struct spwr_ac_device *ac;
--	int status;
- 
- 	ac = container_of(nf, struct spwr_ac_device, notif);
- 
-@@ -121,8 +123,12 @@ static u32 spwr_notify_ac(struct ssam_event_notifier *nf, const struct ssam_even
- 
- 	switch (event->command_id) {
- 	case SAM_EVENT_CID_BAT_ADP:
--		status = spwr_ac_recheck(ac);
--		return ssam_notifier_from_errno(status) | SSAM_NOTIF_HANDLED;
-+		/*
-+		 * Any errors here should not be critical and logged in the
-+		 * corresponding functions, so ignore them.
-+		 */
-+		spwr_ac_recheck(ac);
-+		return SSAM_NOTIF_HANDLED;
- 
- 	default:
- 		return 0;
-@@ -216,7 +222,7 @@ static int spwr_ac_register(struct spwr_ac_device *ac)
+@@ -216,7 +216,7 @@ static int spwr_ac_register(struct spwr_ac_device *ac)
  	if (IS_ERR(ac->psy))
  	if (IS_ERR(ac->psy))
  		return PTR_ERR(ac->psy);
  		return PTR_ERR(ac->psy);
  
  
@@ -1023,7 +1048,7 @@ index a060c36c7766..9a3525c32aca 100644
  }
  }
  
  
  
  
-@@ -251,7 +257,7 @@ static void surface_ac_remove(struct ssam_device *sdev)
+@@ -251,7 +251,7 @@ static void surface_ac_remove(struct ssam_device *sdev)
  {
  {
  	struct spwr_ac_device *ac = ssam_device_get_drvdata(sdev);
  	struct spwr_ac_device *ac = ssam_device_get_drvdata(sdev);
  
  
@@ -1035,49 +1060,26 @@ index a060c36c7766..9a3525c32aca 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From c7ee552c8c906928968838f8d5798d495bddea35 Mon Sep 17 00:00:00 2001
+From 21a1e4bc2e14a8d023d411b0ad4122e160a96b78 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
-Date: Tue, 8 Jun 2021 01:15:34 +0200
-Subject: [PATCH] power/supply: surface_battery: Add support for hot-removal
-
-In cases of hot-removal, further communication with the device should be
-avoided as it may fail and time out.
+Date: Thu, 28 Oct 2021 03:38:09 +0200
+Subject: [PATCH] power/supply: surface_battery: Use client device wrappers for
+ notifier registration
 
 
-Use the client device wrapper functions to register and unregister the
-notifiers as those check during unregistration if the device has been
-marked as hot-removed and handle this case appropriately.
+Use newly introduced client device wrapper functions for notifier
+registration and unregistration.
 
 
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Patchset: surface-sam
 Patchset: surface-sam
 ---
 ---
- drivers/power/supply/surface_battery.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
+ drivers/power/supply/surface_battery.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 
 diff --git a/drivers/power/supply/surface_battery.c b/drivers/power/supply/surface_battery.c
 diff --git a/drivers/power/supply/surface_battery.c b/drivers/power/supply/surface_battery.c
-index 5ec2e6bb2465..ebf1f96e9a89 100644
+index 5ec2e6bb2465..540707882bb0 100644
 --- a/drivers/power/supply/surface_battery.c
 --- a/drivers/power/supply/surface_battery.c
 +++ b/drivers/power/supply/surface_battery.c
 +++ b/drivers/power/supply/surface_battery.c
-@@ -156,6 +156,9 @@ static bool spwr_battery_present(struct spwr_battery_device *bat)
- {
- 	lockdep_assert_held(&bat->lock);
- 
-+	if (ssam_device_is_hot_removed(bat->sdev))
-+		return false;
-+
- 	return le32_to_cpu(bat->sta) & SAM_BATTERY_STA_PRESENT;
- }
- 
-@@ -245,6 +248,9 @@ static int spwr_battery_update_bix_unlocked(struct spwr_battery_device *bat)
- 
- 	lockdep_assert_held(&bat->lock);
- 
-+	if (ssam_device_is_hot_removed(bat->sdev))
-+		return 0;
-+
- 	status = spwr_battery_load_sta(bat);
- 	if (status)
- 		return status;
-@@ -802,7 +808,7 @@ static int spwr_battery_register(struct spwr_battery_device *bat)
+@@ -802,7 +802,7 @@ static int spwr_battery_register(struct spwr_battery_device *bat)
  	if (IS_ERR(bat->psy))
  	if (IS_ERR(bat->psy))
  		return PTR_ERR(bat->psy);
  		return PTR_ERR(bat->psy);
  
  
@@ -1086,7 +1088,7 @@ index 5ec2e6bb2465..ebf1f96e9a89 100644
  }
  }
  
  
  
  
-@@ -837,7 +843,7 @@ static void surface_battery_remove(struct ssam_device *sdev)
+@@ -837,7 +837,7 @@ static void surface_battery_remove(struct ssam_device *sdev)
  {
  {
  	struct spwr_battery_device *bat = ssam_device_get_drvdata(sdev);
  	struct spwr_battery_device *bat = ssam_device_get_drvdata(sdev);
  
  
@@ -1098,7 +1100,7 @@ index 5ec2e6bb2465..ebf1f96e9a89 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 585bb3af623931c535785688993097083e273865 Mon Sep 17 00:00:00 2001
+From 106cb5106b1aa0100cca496b18d2baf48594b5d9 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Tue, 8 Jun 2021 01:33:02 +0200
 Date: Tue, 8 Jun 2021 01:33:02 +0200
 Subject: [PATCH] HID: surface-hid: Add support for hot-removal
 Subject: [PATCH] HID: surface-hid: Add support for hot-removal
@@ -1122,7 +1124,7 @@ Patchset: surface-sam
  1 file changed, 37 insertions(+), 1 deletion(-)
  1 file changed, 37 insertions(+), 1 deletion(-)
 
 
 diff --git a/drivers/hid/surface-hid/surface_hid_core.c b/drivers/hid/surface-hid/surface_hid_core.c
 diff --git a/drivers/hid/surface-hid/surface_hid_core.c b/drivers/hid/surface-hid/surface_hid_core.c
-index 5571e74abe91..63a7963ed345 100644
+index 5571e74abe91..d2e695e942b6 100644
 --- a/drivers/hid/surface-hid/surface_hid_core.c
 --- a/drivers/hid/surface-hid/surface_hid_core.c
 +++ b/drivers/hid/surface-hid/surface_hid_core.c
 +++ b/drivers/hid/surface-hid/surface_hid_core.c
 @@ -19,12 +19,30 @@
 @@ -19,12 +19,30 @@
@@ -1174,7 +1176,7 @@ index 5571e74abe91..63a7963ed345 100644
 +
 +
 +	/*
 +	/*
 +	 * Communication may fail for devices that have been hot-removed. This
 +	 * Communication may fail for devices that have been hot-removed. This
-+	 * also includes registration of HID events, so we need to check this
++	 * also includes unregistration of HID events, so we need to check this
 +	 * here. Only if the device has not been marked as hot-removed, we can
 +	 * here. Only if the device has not been marked as hot-removed, we can
 +	 * safely disable events.
 +	 * safely disable events.
 +	 */
 +	 */
@@ -1209,23 +1211,85 @@ index 5571e74abe91..63a7963ed345 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 06fee01ca55ec43027b5bc5fcd3c3f26a63d0c72 Mon Sep 17 00:00:00 2001
+From 572da964e194dd13f387477c55bff23668ff01b8 Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Sun, 31 Oct 2021 12:34:08 +0100
+Subject: [PATCH] platform/surface: aggregator: Add comment for KIP subsystem
+ category
+
+The KIP subsystem (full name unknown, abbreviation has been obtained
+through reverse engineering) handles detachable peripherals such as the
+keyboard cover on the Surface Pro X and Surface Pro 8.
+
+It is currently not entirely clear what this subsystem entails, but at
+the very least it provides event notifications for when the keyboard
+cover on the Surface Pro X and Surface Pro 8 have been detached or
+re-attached, as well as the state that the keyboard cover is currently
+in (e.g. folded-back, folded laptop-like, closed, etc.).
+
+Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
+Patchset: surface-sam
+---
+ include/linux/surface_aggregator/serial_hub.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/surface_aggregator/serial_hub.h b/include/linux/surface_aggregator/serial_hub.h
+index c3de43edcffa..d1efac85caf1 100644
+--- a/include/linux/surface_aggregator/serial_hub.h
++++ b/include/linux/surface_aggregator/serial_hub.h
+@@ -306,7 +306,7 @@ enum ssam_ssh_tc {
+ 	SSAM_SSH_TC_LPC = 0x0b,
+ 	SSAM_SSH_TC_TCL = 0x0c,
+ 	SSAM_SSH_TC_SFL = 0x0d,
+-	SSAM_SSH_TC_KIP = 0x0e,
++	SSAM_SSH_TC_KIP = 0x0e, /* Manages detachable peripherals (Pro X/8 keyboard cover) */
+ 	SSAM_SSH_TC_EXT = 0x0f,
+ 	SSAM_SSH_TC_BLD = 0x10,
+ 	SSAM_SSH_TC_BAS = 0x11,	/* Detachment system (Surface Book 2/3). */
+-- 
+2.33.1
+
+From 7a78b92326ddd1addab03605a5b57417101d2169 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 10 Oct 2021 23:56:23 +0200
 Date: Sun, 10 Oct 2021 23:56:23 +0200
-Subject: [PATCH] wip! platform/surface: aggregator_registry: Add KIP device
- hub
+Subject: [PATCH] platform/surface: aggregator_registry: Add KIP device hub
+
+Add a Surface System Aggregator Module (SSAM) client device hub for
+hot-removable devices managed via the KIP subsystem.
+
+The KIP subsystem (full name unknown, abbreviation has been obtained
+through reverse engineering) is a subsystem that manages hot-removable
+SSAM client devices. Specifically, it manages HID input devices
+contained in the detachable keyboard cover of the Surface Pro 8 and
+Surface Pro X.
+
+To properly handle detachable devices, we need to remove their kernel
+representation when the physical device has been detached and (re-)add
+and (re-)initialize said representation when the physical device has
+been (re-)attached. Note that we need to hot-remove those devices, as
+communication (especially during event notifier unregistration) may time
+out when the physical device is no longer present, which would lead to
+an unnecessary delay. This delay might become problematic when devices
+are detached and re-attached quickly.
+
+The KIP subsystem handles a single group of devices (e.g. all devices
+contained in the keyboard cover) and cannot handle devices individually.
+Thus we model it as a client device hub, which removes all devices
+contained under it once removal of the hub (e.g. keyboard cover) has
+been detected and (re-)adds all devices once the physical hub device has
+been (re-)attached.
 
 
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Patchset: surface-sam
 Patchset: surface-sam
 ---
 ---
- .../surface/surface_aggregator_registry.c     | 210 +++++++++++++++++-
- 1 file changed, 208 insertions(+), 2 deletions(-)
+ .../surface/surface_aggregator_registry.c     | 233 +++++++++++++++++-
+ 1 file changed, 231 insertions(+), 2 deletions(-)
 
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index 64c83b846907..e02fe833fde8 100644
+index 9f630e890ff7..5b39047985dd 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
-@@ -505,6 +505,200 @@ static struct ssam_device_driver ssam_base_hub_driver = {
+@@ -514,6 +514,223 @@ static struct ssam_device_driver ssam_base_hub_driver = {
  };
  };
  
  
  
  
@@ -1279,9 +1343,33 @@ index 64c83b846907..e02fe833fde8 100644
 +static ssize_t ssam_kip_hub_state_show(struct device *dev, struct device_attribute *attr, char *buf)
 +static ssize_t ssam_kip_hub_state_show(struct device *dev, struct device_attribute *attr, char *buf)
 +{
 +{
 +	struct ssam_kip_hub *hub = dev_get_drvdata(dev);
 +	struct ssam_kip_hub *hub = dev_get_drvdata(dev);
-+	bool connected = hub->state == SSAM_KIP_HUB_CONNECTED;
++	const char *state;
 +
 +
-+	return sysfs_emit(buf, "%d\n", connected);
++	switch (hub->state) {
++	case SSAM_KIP_HUB_UNINITIALIZED:
++		state = "uninitialized";
++		break;
++
++	case SSAM_KIP_HUB_CONNECTED:
++		state = "connected";
++		break;
++
++	case SSAM_KIP_HUB_DISCONNECTED:
++		state = "disconnected";
++		break;
++
++	default:
++		/*
++		 * Any value not handled in the above cases is invalid and
++		 * should never have been set. Thus this case should be
++		 * impossible to reach.
++		 */
++		WARN(1, "invalid KIP hub state: %d\n", hub->state);
++		state = "<invalid>";
++		break;
++	}
++
++	return sysfs_emit(buf, "%s\n", state);
 +}
 +}
 +
 +
 +static struct device_attribute ssam_kip_hub_attr_state =
 +static struct device_attribute ssam_kip_hub_attr_state =
@@ -1314,7 +1402,7 @@ index 64c83b846907..e02fe833fde8 100644
 +	if (hub->state == SSAM_KIP_HUB_CONNECTED)
 +	if (hub->state == SSAM_KIP_HUB_CONNECTED)
 +		status = ssam_hub_register_clients(&hub->sdev->dev, hub->sdev->ctrl, node);
 +		status = ssam_hub_register_clients(&hub->sdev->dev, hub->sdev->ctrl, node);
 +	else
 +	else
-+		ssam_remove_clients(&hub->sdev->dev);
++		ssam_hot_remove_clients(&hub->sdev->dev);
 +
 +
 +	if (status)
 +	if (status)
 +		dev_err(&hub->sdev->dev, "failed to update KIP-hub devices: %d\n", status);
 +		dev_err(&hub->sdev->dev, "failed to update KIP-hub devices: %d\n", status);
@@ -1338,7 +1426,6 @@ index 64c83b846907..e02fe833fde8 100644
 +	 * some time to set up.
 +	 * some time to set up.
 +	 */
 +	 */
 +	delay = event->data[0] ? SSAM_KIP_UPDATE_CONNECT_DELAY : 0;
 +	delay = event->data[0] ? SSAM_KIP_UPDATE_CONNECT_DELAY : 0;
-+
 +	schedule_delayed_work(&hub->update_work, delay);
 +	schedule_delayed_work(&hub->update_work, delay);
 +
 +
 +	return SSAM_NOTIF_HANDLED;
 +	return SSAM_NOTIF_HANDLED;
@@ -1426,7 +1513,7 @@ index 64c83b846907..e02fe833fde8 100644
  /* -- SSAM platform/meta-hub driver. ---------------------------------------- */
  /* -- SSAM platform/meta-hub driver. ---------------------------------------- */
  
  
  static const struct acpi_device_id ssam_platform_hub_match[] = {
  static const struct acpi_device_id ssam_platform_hub_match[] = {
-@@ -624,18 +818,30 @@ static int __init ssam_device_hub_init(void)
+@@ -636,18 +853,30 @@ static int __init ssam_device_hub_init(void)
  
  
  	status = platform_driver_register(&ssam_platform_hub_driver);
  	status = platform_driver_register(&ssam_platform_hub_driver);
  	if (status)
  	if (status)
@@ -1462,25 +1549,155 @@ index 64c83b846907..e02fe833fde8 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 275eff5a992506073188eddb09bfa2c0cfa838e5 Mon Sep 17 00:00:00 2001
+From 5333212c5dabdfc1118fad93985421245a9141b3 Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Wed, 27 Oct 2021 22:33:03 +0200
+Subject: [PATCH] platform/surface: aggregator_registry: Add support for
+ keyboard cover on Surface Pro 8
+
+Add support for the detachable keyboard cover on the Surface Pro 8.
+
+The keyboard cover on the Surface Pro 8 is, unlike the keyboard covers
+of earlier Surface Pro generations, handled via the Surface System
+Aggregator Module (SSAM). The keyboard and touchpad (as well as other
+HID input devices) of this cover are standard SSAM HID client devices
+(just like keyboard and touchpad on e.g. the Surface Laptop 3 and 4),
+however, some care needs to be taken as they can be physically detached
+(similarly to the Surface Book 3). Specifically, the respective SSAM
+client devices need to be removed when the keyboard cover has been
+detached and (re-)initialized when the keyboard cover has been
+(re-)attached.
+
+On the Surface Pro 8, detachment of the keyboard cover (and by extension
+its devices) is managed via the KIP subsystem. Therefore, said devices
+need to be registered under the KIP device hub, which in turn will
+remove and re-create/re-initialize those devices as needed.
+
+Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
+Patchset: surface-sam
+---
+ .../surface/surface_aggregator_registry.c     | 37 ++++++++++++++++++-
+ 1 file changed, 36 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
+index 5b39047985dd..e5eae4dde71a 100644
+--- a/drivers/platform/surface/surface_aggregator_registry.c
++++ b/drivers/platform/surface/surface_aggregator_registry.c
+@@ -47,6 +47,12 @@ static const struct software_node ssam_node_hub_base = {
+ 	.parent = &ssam_node_root,
+ };
+ 
++/* KIP device hub (connects keyboard cover devices on Surface Pro 8). */
++static const struct software_node ssam_node_hub_kip = {
++	.name = "ssam:01:0e:01:00:00",
++	.parent = &ssam_node_root,
++};
++
+ /* AC adapter. */
+ static const struct software_node ssam_node_bat_ac = {
+ 	.name = "ssam:01:02:01:01:01",
+@@ -155,6 +161,30 @@ static const struct software_node ssam_node_hid_base_iid6 = {
+ 	.parent = &ssam_node_hub_base,
+ };
+ 
++/* HID keyboard (KIP hub). */
++static const struct software_node ssam_node_hid_kip_keyboard = {
++	.name = "ssam:01:15:02:01:00",
++	.parent = &ssam_node_hub_kip,
++};
++
++/* HID pen stash (KIP hub; pen taken / stashed away evens). */
++static const struct software_node ssam_node_hid_kip_penstash = {
++	.name = "ssam:01:15:02:02:00",
++	.parent = &ssam_node_hub_kip,
++};
++
++/* HID touchpad (KIP hub). */
++static const struct software_node ssam_node_hid_kip_touchpad = {
++	.name = "ssam:01:15:02:03:00",
++	.parent = &ssam_node_hub_kip,
++};
++
++/* HID device instance 5 (KIP hub, unknown HID device). */
++static const struct software_node ssam_node_hid_kip_iid5 = {
++	.name = "ssam:01:15:02:05:00",
++	.parent = &ssam_node_hub_kip,
++};
++
+ /*
+  * Devices for 5th- and 6th-generations models:
+  * - Surface Book 2,
+@@ -230,10 +260,15 @@ static const struct software_node *ssam_node_group_sp7[] = {
+ 
+ static const struct software_node *ssam_node_group_sp8[] = {
+ 	&ssam_node_root,
++	&ssam_node_hub_kip,
+ 	&ssam_node_bat_ac,
+ 	&ssam_node_bat_main,
+ 	&ssam_node_tmp_pprof,
+-	/* TODO: Add support for keyboard cover. */
++	&ssam_node_hid_kip_keyboard,
++	&ssam_node_hid_kip_penstash,
++	&ssam_node_hid_kip_touchpad,
++	&ssam_node_hid_kip_iid5,
++	/* TODO: Add support for tablet mode switch. */
+ 	NULL,
+ };
+ 
+-- 
+2.33.1
+
+From 9119a57196d19c2e81b31e5e8eb0af24e50f41b7 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Tue, 8 Jun 2021 03:19:20 +0200
 Date: Tue, 8 Jun 2021 03:19:20 +0200
-Subject: [PATCH] wip! platform/surface: Add KIP tablet-mode switch
+Subject: [PATCH] platform/surface: Add KIP tablet-mode switch
+
+Add a driver providing a tablet-mode switch input device for Surface
+models using the KIP subsystem to manage detachable peripherals.
+
+The Surface Pro 8 has a detachable keyboard cover. Unlike the keyboard
+covers of previous generation Surface Pro models, this cover is fully
+handled by the Surface System Aggregator Module (SSAM). The SSAM KIP
+subsystem (full name unknown, abbreviation found through reverse
+engineering) provides notifications for mode changes of the cover.
+Specifically, it allows us to know when the cover has been folded back,
+detached, or whether it is in laptop mode.
+
+The driver introduced with this change captures these events and
+translates them to standard SW_TABLET_MODE input events.
 
 
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Patchset: surface-sam
 Patchset: surface-sam
 ---
 ---
- drivers/platform/surface/Kconfig              |   8 +
+ MAINTAINERS                                   |   6 +
+ drivers/platform/surface/Kconfig              |  22 ++
  drivers/platform/surface/Makefile             |   1 +
  drivers/platform/surface/Makefile             |   1 +
- .../surface/surface_kip_tablet_switch.c       | 242 ++++++++++++++++++
- 3 files changed, 251 insertions(+)
+ .../surface/surface_kip_tablet_switch.c       | 245 ++++++++++++++++++
+ 4 files changed, 274 insertions(+)
  create mode 100644 drivers/platform/surface/surface_kip_tablet_switch.c
  create mode 100644 drivers/platform/surface/surface_kip_tablet_switch.c
 
 
+diff --git a/MAINTAINERS b/MAINTAINERS
+index d7b4f32875a9..5713585d060d 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -12357,6 +12357,12 @@ L:	platform-driver-x86@vger.kernel.org
+ S:	Maintained
+ F:	drivers/platform/surface/surface_hotplug.c
+ 
++MICROSOFT SURFACE KIP TABLET-MODE SWITCH
++M:	Maximilian Luz <luzmaximilian@gmail.com>
++L:	platform-driver-x86@vger.kernel.org
++S:	Maintained
++F:	drivers/platform/surface/surface_kip_tablet_switch.c
++
+ MICROSOFT SURFACE PLATFORM PROFILE DRIVER
+ M:	Maximilian Luz <luzmaximilian@gmail.com>
+ L:	platform-driver-x86@vger.kernel.org
 diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
 diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
-index 3105f651614f..133ebb84bd2d 100644
+index 3105f651614f..3c0ee0cdaef5 100644
 --- a/drivers/platform/surface/Kconfig
 --- a/drivers/platform/surface/Kconfig
 +++ b/drivers/platform/surface/Kconfig
 +++ b/drivers/platform/surface/Kconfig
-@@ -152,6 +152,14 @@ config SURFACE_HOTPLUG
+@@ -152,6 +152,28 @@ config SURFACE_HOTPLUG
  	  Select M or Y here, if you want to (fully) support hot-plugging of
  	  Select M or Y here, if you want to (fully) support hot-plugging of
  	  dGPU devices on the Surface Book 2 and/or 3 during D3cold.
  	  dGPU devices on the Surface Book 2 and/or 3 during D3cold.
  
  
@@ -1490,7 +1707,21 @@ index 3105f651614f..133ebb84bd2d 100644
 +	depends on SURFACE_AGGREGATOR_BUS
 +	depends on SURFACE_AGGREGATOR_BUS
 +	depends on INPUT
 +	depends on INPUT
 +	help
 +	help
-+	  TODO
++	  Provides a tablet-mode switch input device on Microsoft Surface models
++	  using the KIP subsystem for detachable keyboards (e.g. keyboard
++	  covers).
++
++	  The KIP subsystem is used on newer Surface generations to handle
++	  detachable input peripherals, specifically the keyboard cover
++	  (containing keyboard and touchpad) on the Surface Pro 8. This module
++	  provides a driver to let user-space know when the device should be
++	  considered in tablet-mode due to the keyboard cover being detached or
++	  folded back (essentially signaling when the keyboard is not available
++	  for input). It does so by creating a tablet-mode switch input device,
++	  sending the standard SW_TABLET_MODE event on mode change.
++
++	  Select M or Y here, if you want to provide tablet-mode switch input
++	  events on the Surface Pro 8.
 +
 +
  config SURFACE_PLATFORM_PROFILE
  config SURFACE_PLATFORM_PROFILE
  	tristate "Surface Platform Profile Driver"
  	tristate "Surface Platform Profile Driver"
@@ -1508,10 +1739,10 @@ index 32889482de55..6d9291c993c4 100644
  obj-$(CONFIG_SURFACE_PRO3_BUTTON)	+= surfacepro3_button.o
  obj-$(CONFIG_SURFACE_PRO3_BUTTON)	+= surfacepro3_button.o
 diff --git a/drivers/platform/surface/surface_kip_tablet_switch.c b/drivers/platform/surface/surface_kip_tablet_switch.c
 diff --git a/drivers/platform/surface/surface_kip_tablet_switch.c b/drivers/platform/surface/surface_kip_tablet_switch.c
 new file mode 100644
 new file mode 100644
-index 000000000000..87055f13bf9c
+index 000000000000..458470067579
 --- /dev/null
 --- /dev/null
 +++ b/drivers/platform/surface/surface_kip_tablet_switch.c
 +++ b/drivers/platform/surface/surface_kip_tablet_switch.c
-@@ -0,0 +1,242 @@
+@@ -0,0 +1,245 @@
 +// SPDX-License-Identifier: GPL-2.0+
 +// SPDX-License-Identifier: GPL-2.0+
 +/*
 +/*
 + * Surface System Aggregator Module (SSAM) tablet mode switch via KIP
 + * Surface System Aggregator Module (SSAM) tablet mode switch via KIP
@@ -1572,34 +1803,39 @@ index 000000000000..87055f13bf9c
 +	return 0;
 +	return 0;
 +}
 +}
 +
 +
-+static const char* ssam_kip_lid_state_str(enum ssam_kip_lid_state state)
++static ssize_t state_show(struct device *dev, struct device_attribute *attr, char *buf)
 +{
 +{
-+	switch (state) {
++	struct ssam_kip_sw *sw = dev_get_drvdata(dev);
++	const char *state;
++
++	switch (sw->state) {
 +	case SSAM_KIP_LID_STATE_DISCONNECTED:
 +	case SSAM_KIP_LID_STATE_DISCONNECTED:
-+		return "disconnected";
++		state = "disconnected";
++		break;
 +
 +
 +	case SSAM_KIP_LID_STATE_CLOSED:
 +	case SSAM_KIP_LID_STATE_CLOSED:
-+		return "closed";
++		state = "closed";
++		break;
 +
 +
 +	case SSAM_KIP_LID_STATE_LAPTOP:
 +	case SSAM_KIP_LID_STATE_LAPTOP:
-+		return "laptop";
++		state = "laptop";
++		break;
 +
 +
 +	case SSAM_KIP_LID_STATE_FOLDED_CANVAS:
 +	case SSAM_KIP_LID_STATE_FOLDED_CANVAS:
-+		return "folded-canvas";
++		state = "folded-canvas";
++		break;
 +
 +
 +	case SSAM_KIP_LID_STATE_FOLDED_BACK:
 +	case SSAM_KIP_LID_STATE_FOLDED_BACK:
-+		return "folded-back";
++		state = "folded-back";
++		break;
 +
 +
 +	default:
 +	default:
-+		return "<unknown>";
++		state = "<unknown>";
++		dev_warn(dev, "unknown KIP lid state: %d\n", sw->state);
++		break;
 +	}
 +	}
-+}
-+
-+static ssize_t state_show(struct device *dev, struct device_attribute *attr, char *buf)
-+{
-+	struct ssam_kip_sw *sw = dev_get_drvdata(dev);
 +
 +
-+	return sysfs_emit(buf, "%s\n", ssam_kip_lid_state_str(sw->state));
++	return sysfs_emit(buf, "%s\n", state);
 +}
 +}
 +static DEVICE_ATTR_RO(state);
 +static DEVICE_ATTR_RO(state);
 +
 +
@@ -1624,7 +1860,6 @@ index 000000000000..87055f13bf9c
 +
 +
 +	if (sw->state == state)
 +	if (sw->state == state)
 +		return;
 +		return;
-+
 +	sw->state = state;
 +	sw->state = state;
 +
 +
 +	/* Send SW_TABLET_MODE event. */
 +	/* Send SW_TABLET_MODE event. */
@@ -1646,7 +1881,6 @@ index 000000000000..87055f13bf9c
 +	}
 +	}
 +
 +
 +	schedule_work(&sw->update_work);
 +	schedule_work(&sw->update_work);
-+
 +	return SSAM_NOTIF_HANDLED;
 +	return SSAM_NOTIF_HANDLED;
 +}
 +}
 +
 +
@@ -1757,39 +1991,32 @@ index 000000000000..87055f13bf9c
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From b321e78a0435113151c7647986c30b4a2c076ed7 Mon Sep 17 00:00:00 2001
+From 19218e07218cc69c74db671941e8d09430bb03d2 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Wed, 27 Oct 2021 22:33:03 +0200
 Date: Wed, 27 Oct 2021 22:33:03 +0200
-Subject: [PATCH] platform/surface: Add support for the Surface Pro 8
+Subject: [PATCH] platform/surface: aggregator_registry: Add support for tablet
+ mode switch on Surface Pro 8
+
+Add a KIP subsystem tablet-mode switch device for the Surface Pro 8.
+The respective driver for this device provides SW_TABLET_MODE input
+events for user-space based on the state of the keyboard cover (e.g.
+detached, folded-back, normal/laptop mode).
 
 
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
 Patchset: surface-sam
 Patchset: surface-sam
 ---
 ---
- .../surface/surface_aggregator_registry.c     | 53 +++++++++++++++++++
- 1 file changed, 53 insertions(+)
+ drivers/platform/surface/surface_aggregator_registry.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
 
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index e02fe833fde8..c7baa3771420 100644
+index e5eae4dde71a..4a397c5bb45f 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
-@@ -47,6 +47,12 @@ static const struct software_node ssam_node_hub_base = {
- 	.parent = &ssam_node_root,
- };
- 
-+/* KIP device hub (keyboard cover on Surface Pro 8). */
-+static const struct software_node ssam_node_hub_kip = {
-+	.name = "ssam:01:0e:01:00:00",
-+	.parent = &ssam_node_root,
-+};
-+
- /* AC adapter. */
- static const struct software_node ssam_node_bat_ac = {
- 	.name = "ssam:01:02:01:01:01",
-@@ -71,6 +77,12 @@ static const struct software_node ssam_node_tmp_pprof = {
+@@ -77,6 +77,12 @@ static const struct software_node ssam_node_tmp_pprof = {
  	.parent = &ssam_node_root,
  	.parent = &ssam_node_root,
  };
  };
  
  
-+/* Tablet mode switch via KIP subsystem. */
++/* Tablet-mode switch via KIP subsystem. */
 +static const struct software_node ssam_node_kip_tablet_switch = {
 +static const struct software_node ssam_node_kip_tablet_switch = {
 +	.name = "ssam:01:0e:01:00:01",
 +	.name = "ssam:01:0e:01:00:01",
 +	.parent = &ssam_node_root,
 +	.parent = &ssam_node_root,
@@ -1798,68 +2025,468 @@ index e02fe833fde8..c7baa3771420 100644
  /* DTX / detachment-system device (Surface Book 3). */
  /* DTX / detachment-system device (Surface Book 3). */
  static const struct software_node ssam_node_bas_dtx = {
  static const struct software_node ssam_node_bas_dtx = {
  	.name = "ssam:01:11:01:00:00",
  	.name = "ssam:01:11:01:00:00",
-@@ -155,6 +167,30 @@ static const struct software_node ssam_node_hid_base_iid6 = {
- 	.parent = &ssam_node_hub_base,
+@@ -264,11 +270,11 @@ static const struct software_node *ssam_node_group_sp8[] = {
+ 	&ssam_node_bat_ac,
+ 	&ssam_node_bat_main,
+ 	&ssam_node_tmp_pprof,
++	&ssam_node_kip_tablet_switch,
+ 	&ssam_node_hid_kip_keyboard,
+ 	&ssam_node_hid_kip_penstash,
+ 	&ssam_node_hid_kip_touchpad,
+ 	&ssam_node_hid_kip_iid5,
+-	/* TODO: Add support for tablet mode switch. */
+ 	NULL,
  };
  };
  
  
-+/* HID keyboard (KIP hub). */
-+static const struct software_node ssam_node_hid_kip_keyboard = {
-+	.name = "ssam:01:15:02:01:00",
-+	.parent = &ssam_node_hub_kip,
-+};
+-- 
+2.33.1
+
+From 6aa5e35044b60765f1576e7104585f259977db66 Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Thu, 28 Oct 2021 03:40:22 +0200
+Subject: [PATCH] power/supply: surface_battery: Add support for hot-removal
+
+In cases of hot-removal, further communication with the device should be
+avoided whenever possible, as it may fail and time out.
+
+Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
+Patchset: surface-sam
+---
+ drivers/power/supply/surface_battery.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/drivers/power/supply/surface_battery.c b/drivers/power/supply/surface_battery.c
+index 540707882bb0..ebf1f96e9a89 100644
+--- a/drivers/power/supply/surface_battery.c
++++ b/drivers/power/supply/surface_battery.c
+@@ -156,6 +156,9 @@ static bool spwr_battery_present(struct spwr_battery_device *bat)
+ {
+ 	lockdep_assert_held(&bat->lock);
+ 
++	if (ssam_device_is_hot_removed(bat->sdev))
++		return false;
 +
 +
-+/* HID pen stash (KIP hub; pen taken / stashed away evens). */
-+static const struct software_node ssam_node_hid_kip_penstash = {
-+	.name = "ssam:01:15:02:02:00",
-+	.parent = &ssam_node_hub_kip,
-+};
+ 	return le32_to_cpu(bat->sta) & SAM_BATTERY_STA_PRESENT;
+ }
+ 
+@@ -245,6 +248,9 @@ static int spwr_battery_update_bix_unlocked(struct spwr_battery_device *bat)
+ 
+ 	lockdep_assert_held(&bat->lock);
+ 
++	if (ssam_device_is_hot_removed(bat->sdev))
++		return 0;
 +
 +
-+/* HID touchpad (KIP hub). */
-+static const struct software_node ssam_node_hid_kip_touchpad = {
-+	.name = "ssam:01:15:02:03:00",
+ 	status = spwr_battery_load_sta(bat);
+ 	if (status)
+ 		return status;
+-- 
+2.33.1
+
+From 1d22474ea64b64552f1541330f07d619d8a09e90 Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Sun, 31 Oct 2021 18:07:39 +0100
+Subject: [PATCH] platform/surface: aggregator_registry: Use KIP hub for
+ Surface Book 3 base devices
+
+It turns out that the Surface Book 3 manages the devices contained in
+its detachable base via the KIP hub as well, similarly to the Surface
+Pro 8 and Surface Pro X. So move them over to the KIP hub.
+
+Right now, we (mis-)use the detachment subsystem (DTX), which is
+designed for handling detachment requests and physical locking of the
+base, to properly remove and re-attach Surface System Aggregator Module
+(SSAM) client devices contained in the base. This system does not seem
+to be intended for managing the (sub-)devices contained in the base,
+which may need some time to be set up properly.
+
+The KIP subsystem seems to be the intended subsystem for managing those
+devices, thus let's use that one instead.
+
+Note that this also changes the way in which devices on the Surface Book
+3 are removed when they have been detached, specifically from normal
+removal to hot-removal (avoiding further communication with the embedded
+controller). It seems that the "communication timeout after device
+removal" issue does also occur on the Surface Book 3, but has so far
+been missed as it does not happen reliably every time. Switching to
+hot-removal fixes this issue and should not have any noticable
+drawbacks.
+
+Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
+Patchset: surface-sam
+---
+ .../surface/surface_aggregator_registry.c     | 56 ++++++-------------
+ 1 file changed, 16 insertions(+), 40 deletions(-)
+
+diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
+index 4a397c5bb45f..391bfb35aaa9 100644
+--- a/drivers/platform/surface/surface_aggregator_registry.c
++++ b/drivers/platform/surface/surface_aggregator_registry.c
+@@ -41,13 +41,7 @@ static const struct software_node ssam_node_root = {
+ 	.name = "ssam_platform_hub",
+ };
+ 
+-/* Base device hub (devices attached to Surface Book 3 base). */
+-static const struct software_node ssam_node_hub_base = {
+-	.name = "ssam:00:00:02:00:00",
+-	.parent = &ssam_node_root,
+-};
+-
+-/* KIP device hub (connects keyboard cover devices on Surface Pro 8). */
++/* KIP device hub (connects detachable keyboard/touchpad on Surface Pro 8 and Book 3). */
+ static const struct software_node ssam_node_hub_kip = {
+ 	.name = "ssam:01:0e:01:00:00",
+ 	.parent = &ssam_node_root,
+@@ -65,10 +59,10 @@ static const struct software_node ssam_node_bat_main = {
+ 	.parent = &ssam_node_root,
+ };
+ 
+-/* Secondary battery (Surface Book 3). */
+-static const struct software_node ssam_node_bat_sb3base = {
++/* Secondary battery (Surface Book 3, managed via KIP hub). */
++static const struct software_node ssam_node_bat_kip = {
+ 	.name = "ssam:01:02:02:01:00",
+-	.parent = &ssam_node_hub_base,
 +	.parent = &ssam_node_hub_kip,
 +	.parent = &ssam_node_hub_kip,
-+};
-+
-+/* HID device instance 5 (KIP hub, unknown HID device). */
-+static const struct software_node ssam_node_hid_kip_iid5 = {
-+	.name = "ssam:01:15:02:05:00",
+ };
+ 
+ /* Platform profile / performance-mode device. */
+@@ -143,30 +137,6 @@ static const struct software_node ssam_node_hid_main_iid5 = {
+ 	.parent = &ssam_node_root,
+ };
+ 
+-/* HID keyboard (base hub). */
+-static const struct software_node ssam_node_hid_base_keyboard = {
+-	.name = "ssam:01:15:02:01:00",
+-	.parent = &ssam_node_hub_base,
+-};
+-
+-/* HID touchpad (base hub). */
+-static const struct software_node ssam_node_hid_base_touchpad = {
+-	.name = "ssam:01:15:02:03:00",
+-	.parent = &ssam_node_hub_base,
+-};
+-
+-/* HID device instance 5 (unknown HID device, base hub). */
+-static const struct software_node ssam_node_hid_base_iid5 = {
+-	.name = "ssam:01:15:02:05:00",
+-	.parent = &ssam_node_hub_base,
+-};
+-
+-/* HID device instance 6 (unknown HID device, base hub). */
+-static const struct software_node ssam_node_hid_base_iid6 = {
+-	.name = "ssam:01:15:02:06:00",
+-	.parent = &ssam_node_hub_base,
+-};
+-
+ /* HID keyboard (KIP hub). */
+ static const struct software_node ssam_node_hid_kip_keyboard = {
+ 	.name = "ssam:01:15:02:01:00",
+@@ -191,6 +161,12 @@ static const struct software_node ssam_node_hid_kip_iid5 = {
+ 	.parent = &ssam_node_hub_kip,
+ };
+ 
++/* HID device instance 6 (KIP hub, unknown HID device). */
++static const struct software_node ssam_node_hid_kip_iid6 = {
++	.name = "ssam:01:15:02:06:00",
 +	.parent = &ssam_node_hub_kip,
 +	.parent = &ssam_node_hub_kip,
 +};
 +};
 +
 +
  /*
  /*
   * Devices for 5th- and 6th-generations models:
   * Devices for 5th- and 6th-generations models:
   * - Surface Book 2,
   * - Surface Book 2,
-@@ -228,6 +264,20 @@ static const struct software_node *ssam_node_group_sp7[] = {
- 	NULL,
- };
- 
-+static const struct software_node *ssam_node_group_sp8[] = {
-+	&ssam_node_root,
+@@ -206,16 +182,16 @@ static const struct software_node *ssam_node_group_gen5[] = {
+ /* Devices for Surface Book 3. */
+ static const struct software_node *ssam_node_group_sb3[] = {
+ 	&ssam_node_root,
+-	&ssam_node_hub_base,
 +	&ssam_node_hub_kip,
 +	&ssam_node_hub_kip,
-+	&ssam_node_bat_ac,
-+	&ssam_node_bat_main,
-+	&ssam_node_tmp_pprof,
-+	&ssam_node_kip_tablet_switch,
+ 	&ssam_node_bat_ac,
+ 	&ssam_node_bat_main,
+-	&ssam_node_bat_sb3base,
++	&ssam_node_bat_kip,
+ 	&ssam_node_tmp_pprof,
+ 	&ssam_node_bas_dtx,
+-	&ssam_node_hid_base_keyboard,
+-	&ssam_node_hid_base_touchpad,
+-	&ssam_node_hid_base_iid5,
+-	&ssam_node_hid_base_iid6,
 +	&ssam_node_hid_kip_keyboard,
 +	&ssam_node_hid_kip_keyboard,
-+	&ssam_node_hid_kip_penstash,
 +	&ssam_node_hid_kip_touchpad,
 +	&ssam_node_hid_kip_touchpad,
 +	&ssam_node_hid_kip_iid5,
 +	&ssam_node_hid_kip_iid5,
-+	NULL,
-+};
-+
++	&ssam_node_hid_kip_iid6,
+ 	NULL,
+ };
  
  
- /* -- Device registry helper functions. ------------------------------------- */
+-- 
+2.33.1
+
+From 913396e32498177d31c25ec61a361ba377e361ce Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Sun, 31 Oct 2021 18:09:53 +0100
+Subject: [PATCH] platform/surface: aggregator_registry: Remove base hub driver
+
+The base hub was a virtual device hub for Surface System Aggregator
+Module (SSAM) client devices contained in the detachable Surface Book 3
+base. Remove it as it is no longer needed.
+
+In the previous change, we have moved all devices from the base hub to
+the KIP hub. That change has also removed the only base-hub-device that
+ever existed, as it was essentially replaced by the KIP-hub-device and
+thus was no longer needed. This means that there is no remaining
+hub-device against which the base hub driver can load, i.e. it is now
+essentially dead code. So remove the driver as well.
+
+Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
+Patchset: surface-sam
+---
+ .../surface/surface_aggregator_registry.c     | 213 ------------------
+ 1 file changed, 213 deletions(-)
+
+diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
+index 391bfb35aaa9..57927483a9ed 100644
+--- a/drivers/platform/surface/surface_aggregator_registry.c
++++ b/drivers/platform/surface/surface_aggregator_registry.c
+@@ -325,212 +325,6 @@ static int ssam_hub_register_clients(struct device *parent, struct ssam_controll
+ }
  
  
-@@ -714,6 +764,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 },
+-/* -- SSAM base-hub driver. ------------------------------------------------- */
+-
+-/*
+- * Some devices (especially battery) may need a bit of time to be fully usable
+- * after being (re-)connected. This delay has been determined via
+- * experimentation.
+- */
+-#define SSAM_BASE_UPDATE_CONNECT_DELAY		msecs_to_jiffies(2500)
+-
+-enum ssam_base_hub_state {
+-	SSAM_BASE_HUB_UNINITIALIZED,
+-	SSAM_BASE_HUB_CONNECTED,
+-	SSAM_BASE_HUB_DISCONNECTED,
+-};
+-
+-struct ssam_base_hub {
+-	struct ssam_device *sdev;
+-
+-	enum ssam_base_hub_state state;
+-	struct delayed_work update_work;
+-
+-	struct ssam_event_notifier notif;
+-};
+-
+-SSAM_DEFINE_SYNC_REQUEST_R(ssam_bas_query_opmode, u8, {
+-	.target_category = SSAM_SSH_TC_BAS,
+-	.target_id       = 0x01,
+-	.command_id      = 0x0d,
+-	.instance_id     = 0x00,
+-});
+-
+-#define SSAM_BAS_OPMODE_TABLET		0x00
+-#define SSAM_EVENT_BAS_CID_CONNECTION	0x0c
+-
+-static int ssam_base_hub_query_state(struct ssam_base_hub *hub, enum ssam_base_hub_state *state)
+-{
+-	u8 opmode;
+-	int status;
+-
+-	status = ssam_retry(ssam_bas_query_opmode, hub->sdev->ctrl, &opmode);
+-	if (status < 0) {
+-		dev_err(&hub->sdev->dev, "failed to query base state: %d\n", status);
+-		return status;
+-	}
+-
+-	if (opmode != SSAM_BAS_OPMODE_TABLET)
+-		*state = SSAM_BASE_HUB_CONNECTED;
+-	else
+-		*state = SSAM_BASE_HUB_DISCONNECTED;
+-
+-	return 0;
+-}
+-
+-static ssize_t ssam_base_hub_state_show(struct device *dev, struct device_attribute *attr,
+-					char *buf)
+-{
+-	struct ssam_base_hub *hub = dev_get_drvdata(dev);
+-	bool connected = hub->state == SSAM_BASE_HUB_CONNECTED;
+-
+-	return sysfs_emit(buf, "%d\n", connected);
+-}
+-
+-static struct device_attribute ssam_base_hub_attr_state =
+-	__ATTR(state, 0444, ssam_base_hub_state_show, NULL);
+-
+-static struct attribute *ssam_base_hub_attrs[] = {
+-	&ssam_base_hub_attr_state.attr,
+-	NULL,
+-};
+-
+-static const struct attribute_group ssam_base_hub_group = {
+-	.attrs = ssam_base_hub_attrs,
+-};
+-
+-static void ssam_base_hub_update_workfn(struct work_struct *work)
+-{
+-	struct ssam_base_hub *hub = container_of(work, struct ssam_base_hub, update_work.work);
+-	struct fwnode_handle *node = dev_fwnode(&hub->sdev->dev);
+-	enum ssam_base_hub_state state;
+-	int status = 0;
+-
+-	status = ssam_base_hub_query_state(hub, &state);
+-	if (status)
+-		return;
+-
+-	if (hub->state == state)
+-		return;
+-	hub->state = state;
+-
+-	if (hub->state == SSAM_BASE_HUB_CONNECTED)
+-		status = ssam_hub_register_clients(&hub->sdev->dev, hub->sdev->ctrl, node);
+-	else
+-		ssam_remove_clients(&hub->sdev->dev);
+-
+-	if (status)
+-		dev_err(&hub->sdev->dev, "failed to update base-hub devices: %d\n", status);
+-}
+-
+-static u32 ssam_base_hub_notif(struct ssam_event_notifier *nf, const struct ssam_event *event)
+-{
+-	struct ssam_base_hub *hub = container_of(nf, struct ssam_base_hub, notif);
+-	unsigned long delay;
+-
+-	if (event->command_id != SSAM_EVENT_BAS_CID_CONNECTION)
+-		return 0;
+-
+-	if (event->length < 1) {
+-		dev_err(&hub->sdev->dev, "unexpected payload size: %u\n", event->length);
+-		return 0;
+-	}
+-
+-	/*
+-	 * Delay update when the base is being connected to give devices/EC
+-	 * some time to set up.
+-	 */
+-	delay = event->data[0] ? SSAM_BASE_UPDATE_CONNECT_DELAY : 0;
+-
+-	schedule_delayed_work(&hub->update_work, delay);
+-
+-	/*
+-	 * Do not return SSAM_NOTIF_HANDLED: The event should be picked up and
+-	 * consumed by the detachment system driver. We're just a (more or less)
+-	 * silent observer.
+-	 */
+-	return 0;
+-}
+-
+-static int __maybe_unused ssam_base_hub_resume(struct device *dev)
+-{
+-	struct ssam_base_hub *hub = dev_get_drvdata(dev);
+-
+-	schedule_delayed_work(&hub->update_work, 0);
+-	return 0;
+-}
+-static SIMPLE_DEV_PM_OPS(ssam_base_hub_pm_ops, NULL, ssam_base_hub_resume);
+-
+-static int ssam_base_hub_probe(struct ssam_device *sdev)
+-{
+-	struct ssam_base_hub *hub;
+-	int status;
+-
+-	hub = devm_kzalloc(&sdev->dev, sizeof(*hub), GFP_KERNEL);
+-	if (!hub)
+-		return -ENOMEM;
+-
+-	hub->sdev = sdev;
+-	hub->state = SSAM_BASE_HUB_UNINITIALIZED;
+-
+-	hub->notif.base.priority = INT_MAX;  /* This notifier should run first. */
+-	hub->notif.base.fn = ssam_base_hub_notif;
+-	hub->notif.event.reg = SSAM_EVENT_REGISTRY_SAM;
+-	hub->notif.event.id.target_category = SSAM_SSH_TC_BAS,
+-	hub->notif.event.id.instance = 0,
+-	hub->notif.event.mask = SSAM_EVENT_MASK_NONE;
+-	hub->notif.event.flags = SSAM_EVENT_SEQUENCED;
+-
+-	INIT_DELAYED_WORK(&hub->update_work, ssam_base_hub_update_workfn);
+-
+-	ssam_device_set_drvdata(sdev, hub);
+-
+-	status = ssam_device_notifier_register(sdev, &hub->notif);
+-	if (status)
+-		return status;
+-
+-	status = sysfs_create_group(&sdev->dev.kobj, &ssam_base_hub_group);
+-	if (status)
+-		goto err;
+-
+-	schedule_delayed_work(&hub->update_work, 0);
+-	return 0;
+-
+-err:
+-	ssam_device_notifier_unregister(sdev, &hub->notif);
+-	cancel_delayed_work_sync(&hub->update_work);
+-	ssam_remove_clients(&sdev->dev);
+-	return status;
+-}
+-
+-static void ssam_base_hub_remove(struct ssam_device *sdev)
+-{
+-	struct ssam_base_hub *hub = ssam_device_get_drvdata(sdev);
+-
+-	sysfs_remove_group(&sdev->dev.kobj, &ssam_base_hub_group);
+-
+-	ssam_device_notifier_unregister(sdev, &hub->notif);
+-	cancel_delayed_work_sync(&hub->update_work);
+-	ssam_remove_clients(&sdev->dev);
+-}
+-
+-static const struct ssam_device_id ssam_base_hub_match[] = {
+-	{ SSAM_VDEV(HUB, 0x02, SSAM_ANY_IID, 0x00) },
+-	{ },
+-};
+-
+-static struct ssam_device_driver ssam_base_hub_driver = {
+-	.probe = ssam_base_hub_probe,
+-	.remove = ssam_base_hub_remove,
+-	.match_table = ssam_base_hub_match,
+-	.driver = {
+-		.name = "surface_aggregator_base_hub",
+-		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
+-		.pm = &ssam_base_hub_pm_ops,
+-	},
+-};
+-
+-
+ /* -- SSAM KIP-subsystem hub driver. ---------------------------------------- */
+ 
+ /*
+@@ -872,10 +666,6 @@ static int __init ssam_device_hub_init(void)
+ 	if (status)
+ 		goto err_platform;
+ 
+-	status = ssam_device_driver_register(&ssam_base_hub_driver);
+-	if (status)
+-		goto err_base;
+-
+ 	status = ssam_device_driver_register(&ssam_kip_hub_driver);
+ 	if (status)
+ 		goto err_kip;
+@@ -883,8 +673,6 @@ static int __init ssam_device_hub_init(void)
+ 	return 0;
  
  
+ err_kip:
+-	ssam_device_driver_unregister(&ssam_base_hub_driver);
+-err_base:
+ 	platform_driver_unregister(&ssam_platform_hub_driver);
+ err_platform:
+ 	return status;
+@@ -894,7 +682,6 @@ module_init(ssam_device_hub_init);
+ static void __exit ssam_device_hub_exit(void)
+ {
+ 	ssam_device_driver_unregister(&ssam_kip_hub_driver);
+-	ssam_device_driver_unregister(&ssam_base_hub_driver);
+ 	platform_driver_unregister(&ssam_platform_hub_driver);
+ }
+ module_exit(ssam_device_hub_exit);
 -- 
 -- 
 2.33.1
 2.33.1
 
 

+ 3 - 3
patches/5.14/0006-surface-sam-over-hid.patch

@@ -1,4 +1,4 @@
-From bc1127876d58b4d22d85bf8e2d20aadda7acb2c4 Mon Sep 17 00:00:00 2001
+From f7ecfb0318514624a165d7a67eece3ca04ad429a Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 25 Jul 2020 17:19:53 +0200
 Date: Sat, 25 Jul 2020 17:19:53 +0200
 Subject: [PATCH] i2c: acpi: Implement RawBytes read access
 Subject: [PATCH] i2c: acpi: Implement RawBytes read access
@@ -110,7 +110,7 @@ index 74925621f239..169713964358 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From ad156d5fe3a60a24d14e5c1e0256e0706f374234 Mon Sep 17 00:00:00 2001
+From a268a26a89402358951f54b75c9a1fa378e2ef2c Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 13 Feb 2021 16:41:18 +0100
 Date: Sat, 13 Feb 2021 16:41:18 +0100
 Subject: [PATCH] platform/surface: Add driver for Surface Book 1 dGPU switch
 Subject: [PATCH] platform/surface: Add driver for Surface Book 1 dGPU switch
@@ -133,7 +133,7 @@ Patchset: surface-sam-over-hid
  create mode 100644 drivers/platform/surface/surfacebook1_dgpu_switch.c
  create mode 100644 drivers/platform/surface/surfacebook1_dgpu_switch.c
 
 
 diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
 diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
-index 133ebb84bd2d..3fe7f14e00d9 100644
+index 3c0ee0cdaef5..e5eedb85d471 100644
 --- a/drivers/platform/surface/Kconfig
 --- a/drivers/platform/surface/Kconfig
 +++ b/drivers/platform/surface/Kconfig
 +++ b/drivers/platform/surface/Kconfig
 @@ -104,6 +104,13 @@ config SURFACE_AGGREGATOR_REGISTRY
 @@ -104,6 +104,13 @@ config SURFACE_AGGREGATOR_REGISTRY

+ 2 - 2
patches/5.14/0007-surface-gpe.patch

@@ -1,4 +1,4 @@
-From c1a09197036ae5ef0ec93fda371a4aafa34aef1f Mon Sep 17 00:00:00 2001
+From 79367a2ec013ab123b786dcffd50a8f226e97fd2 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 10 Oct 2021 00:02:44 +0200
 Date: Sun, 10 Oct 2021 00:02:44 +0200
 Subject: [PATCH] platform/surface: gpe: Add support for Surface Laptop Studio
 Subject: [PATCH] platform/surface: gpe: Add support for Surface Laptop Studio
@@ -46,7 +46,7 @@ index 86f6991b1215..c1775db29efb 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From ab6d48c467d64e71b3b468ac7ae97215706fbea2 Mon Sep 17 00:00:00 2001
+From 4e5fdf6531d8885c78914b767fd0067978a58731 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Wed, 27 Oct 2021 00:56:11 +0200
 Date: Wed, 27 Oct 2021 00:56:11 +0200
 Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 8
 Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 8

+ 2 - 2
patches/5.14/0008-surface-button.patch

@@ -1,4 +1,4 @@
-From 71c683d6e205d59883721b54e4684b00f1de4145 Mon Sep 17 00:00:00 2001
+From 07bdb6607954bd5c7c061e97e77caff746110158 Mon Sep 17 00:00:00 2001
 From: Sachi King <nakato@nakato.io>
 From: Sachi King <nakato@nakato.io>
 Date: Tue, 5 Oct 2021 00:05:09 +1100
 Date: Tue, 5 Oct 2021 00:05:09 +1100
 Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices
 Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices
@@ -75,7 +75,7 @@ index cb6ec59a045d..4e8944f59def 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From caa43c419877598b00cd65008cde2965ae7a01c8 Mon Sep 17 00:00:00 2001
+From ea5636c90721e6ee95f67aa75398feaa99f2c87e Mon Sep 17 00:00:00 2001
 From: Sachi King <nakato@nakato.io>
 From: Sachi King <nakato@nakato.io>
 Date: Tue, 5 Oct 2021 00:22:57 +1100
 Date: Tue, 5 Oct 2021 00:22:57 +1100
 Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd
 Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd

+ 1 - 1
patches/5.14/0009-surface-typecover.patch

@@ -1,4 +1,4 @@
-From fe1d02eee7e1377de3b3e68a3acdf002365ff6ff Mon Sep 17 00:00:00 2001
+From 159e60a412ea0aa858255efa51ddff52c8709ca5 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Thu, 5 Nov 2020 13:09:45 +0100
 Date: Thu, 5 Nov 2020 13:09:45 +0100
 Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when
 Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when

+ 37 - 37
patches/5.14/0010-cameras.patch

@@ -1,4 +1,4 @@
-From 4352a215b5d1b131535e20f4edc2eaf0a4a42a98 Mon Sep 17 00:00:00 2001
+From a8807888d7bf8eefaa27028885c059e0e0f1dfd4 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Mon, 5 Apr 2021 23:56:53 +0100
 Date: Mon, 5 Apr 2021 23:56:53 +0100
 Subject: [PATCH] media: ipu3-cio2: Toggle sensor streaming in pm runtime ops
 Subject: [PATCH] media: ipu3-cio2: Toggle sensor streaming in pm runtime ops
@@ -58,7 +58,7 @@ index 47db0ee0fcbf..7bb86e246ebe 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 582f4eab7810c531da2814d13a18533f0efe1e28 Mon Sep 17 00:00:00 2001
+From 459b8f705cc2f44382ce670ee0695665f9a20181 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Mon, 5 Apr 2021 23:56:54 +0100
 Date: Mon, 5 Apr 2021 23:56:54 +0100
 Subject: [PATCH] media: i2c: Add support for ov5693 sensor
 Subject: [PATCH] media: i2c: Add support for ov5693 sensor
@@ -84,10 +84,10 @@ Patchset: cameras
  create mode 100644 drivers/media/i2c/ov5693.c
  create mode 100644 drivers/media/i2c/ov5693.c
 
 
 diff --git a/MAINTAINERS b/MAINTAINERS
 diff --git a/MAINTAINERS b/MAINTAINERS
-index d7b4f32875a9..db66227a14f8 100644
+index 5713585d060d..33fdad7a7ddf 100644
 --- a/MAINTAINERS
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -13751,6 +13751,13 @@ S:	Maintained
+@@ -13757,6 +13757,13 @@ S:	Maintained
  T:	git git://linuxtv.org/media_tree.git
  T:	git git://linuxtv.org/media_tree.git
  F:	drivers/media/i2c/ov5675.c
  F:	drivers/media/i2c/ov5675.c
  
  
@@ -1701,7 +1701,7 @@ index 000000000000..9499ee10f56c
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 0155b5faba94edf41ea0d671d82800554f9e836e Mon Sep 17 00:00:00 2001
+From 56126760c66d09faaef4b472f606bcbfd2c803e1 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= <me@fabwu.ch>
 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= <me@fabwu.ch>
 Date: Fri, 22 Jan 2021 20:58:13 +0100
 Date: Fri, 22 Jan 2021 20:58:13 +0100
 Subject: [PATCH] cio2-bridge: Parse sensor orientation and rotation
 Subject: [PATCH] cio2-bridge: Parse sensor orientation and rotation
@@ -1864,7 +1864,7 @@ index dd0ffcafa489..924d99d20328 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 25757594297e22f586b83c7f8646486b525e0ea7 Mon Sep 17 00:00:00 2001
+From 681f7ddaf17df8a7a2aff186757ecd2aebe2e1d5 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= <me@fabwu.ch>
 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= <me@fabwu.ch>
 Date: Sun, 24 Jan 2021 11:07:42 +0100
 Date: Sun, 24 Jan 2021 11:07:42 +0100
 Subject: [PATCH] cio2-bridge: Use macros and add warnings
 Subject: [PATCH] cio2-bridge: Use macros and add warnings
@@ -1968,7 +1968,7 @@ index 924d99d20328..e1e388cc9f45 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From cc12d2e64386041436fb596336eb0542dd489c14 Mon Sep 17 00:00:00 2001
+From 7afae35f029a9859109430c925d358626009c1c2 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= <me@fabwu.ch>
 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= <me@fabwu.ch>
 Date: Thu, 6 May 2021 07:52:44 +0200
 Date: Thu, 6 May 2021 07:52:44 +0200
 Subject: [PATCH] cio2-bridge: Use correct dev_properties size
 Subject: [PATCH] cio2-bridge: Use correct dev_properties size
@@ -1994,7 +1994,7 @@ index e1e388cc9f45..deaf5804f70d 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 16aeaa92ffa4a2965c3dee9a6817508e95436bc1 Mon Sep 17 00:00:00 2001
+From 0f4ca81b714eab07aa36d1fdbd42107c8300698e Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Thu, 20 May 2021 23:31:04 +0100
 Date: Thu, 20 May 2021 23:31:04 +0100
 Subject: [PATCH] media: i2c: Fix vertical flip in ov5693
 Subject: [PATCH] media: i2c: Fix vertical flip in ov5693
@@ -2029,7 +2029,7 @@ index 9499ee10f56c..c558f9b48c83 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 2071456a45457337277dc0956dd2cfc6061f98f7 Mon Sep 17 00:00:00 2001
+From d86a2fcdc0dd7c54149d550ecb148bf88658a667 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Fri, 9 Jul 2021 16:39:18 +0100
 Date: Fri, 9 Jul 2021 16:39:18 +0100
 Subject: [PATCH] media: i2c: Add ACPI support to ov8865
 Subject: [PATCH] media: i2c: Add ACPI support to ov8865
@@ -2080,7 +2080,7 @@ index ce50f3ea87b8..7626c8608f8f 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 688d67c5535b79ce22df18d2b4ac26878e67bedb Mon Sep 17 00:00:00 2001
+From d90c2d51c769294de4c73c74b0adcb7bb15b8762 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sat, 10 Jul 2021 21:20:17 +0100
 Date: Sat, 10 Jul 2021 21:20:17 +0100
 Subject: [PATCH] media: i2c: Fix incorrect value in comment
 Subject: [PATCH] media: i2c: Fix incorrect value in comment
@@ -2111,7 +2111,7 @@ index 7626c8608f8f..8e3f8a554452 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 9968f4ba4dd81c0ad70d43b878dd8d8ae5c533b9 Mon Sep 17 00:00:00 2001
+From 0a07325524798d2fb41a7735778ffd59a48b50c3 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sat, 10 Jul 2021 22:21:52 +0100
 Date: Sat, 10 Jul 2021 22:21:52 +0100
 Subject: [PATCH] media: i2c: Defer probe if not endpoint found
 Subject: [PATCH] media: i2c: Defer probe if not endpoint found
@@ -2148,7 +2148,7 @@ index 8e3f8a554452..9bc8d5d8199b 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From cc72b39e219ea6e706f04d40ad07a157eaeebe2d Mon Sep 17 00:00:00 2001
+From 1b4bcf9420c2b8f4bd9c9f0c3a9cd0f77199b113 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sat, 10 Jul 2021 22:00:25 +0100
 Date: Sat, 10 Jul 2021 22:00:25 +0100
 Subject: [PATCH] media: i2c: Support 19.2MHz input clock in ov8865
 Subject: [PATCH] media: i2c: Support 19.2MHz input clock in ov8865
@@ -2507,7 +2507,7 @@ index 9bc8d5d8199b..4ddc1b277cc0 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 929fbc89160aed4998382a642ecc1e9811c512b4 Mon Sep 17 00:00:00 2001
+From 7cd521820f292dc6fa0439b3e63bb9e688d62399 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sat, 10 Jul 2021 22:19:10 +0100
 Date: Sat, 10 Jul 2021 22:19:10 +0100
 Subject: [PATCH] media: i2c: Add .get_selection() support to ov8865
 Subject: [PATCH] media: i2c: Add .get_selection() support to ov8865
@@ -2612,7 +2612,7 @@ index 4ddc1b277cc0..0f2776390a8e 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 56cb0b0be2353a71d9928614c23256ed2873f973 Mon Sep 17 00:00:00 2001
+From a257409ab2c318907df0cd648c4740f3292bd348 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sat, 10 Jul 2021 22:34:43 +0100
 Date: Sat, 10 Jul 2021 22:34:43 +0100
 Subject: [PATCH] media: i2c: Switch control to V4L2_CID_ANALOGUE_GAIN
 Subject: [PATCH] media: i2c: Switch control to V4L2_CID_ANALOGUE_GAIN
@@ -2665,7 +2665,7 @@ index 0f2776390a8e..a832938c33b6 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 6621e664b96fb62971f6181386e8327c3a9422f7 Mon Sep 17 00:00:00 2001
+From 9709be2bb3a68cdcc76a62c25f56bb306f6a65a3 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Mon, 12 Jul 2021 22:54:56 +0100
 Date: Mon, 12 Jul 2021 22:54:56 +0100
 Subject: [PATCH] media: i2c: Add vblank control to ov8865
 Subject: [PATCH] media: i2c: Add vblank control to ov8865
@@ -2775,7 +2775,7 @@ index a832938c33b6..f741c0713ca4 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From b989f9454f9e6f38ad0ab04deb564fdaf1ff7509 Mon Sep 17 00:00:00 2001
+From f41d9122f2bc9296fe8ee05fb9ade13eccb8e77a Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Tue, 13 Jul 2021 23:40:33 +0100
 Date: Tue, 13 Jul 2021 23:40:33 +0100
 Subject: [PATCH] media: i2c: Add hblank control to ov8865
 Subject: [PATCH] media: i2c: Add hblank control to ov8865
@@ -2845,7 +2845,7 @@ index f741c0713ca4..4b18cc80f985 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From c9c89f9dd50ef714692278841ebf11a38de527cb Mon Sep 17 00:00:00 2001
+From 2ec6c7350db1ee1782fe66a5ef8e7752a865fe98 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Wed, 20 Oct 2021 22:43:54 +0100
 Date: Wed, 20 Oct 2021 22:43:54 +0100
 Subject: [PATCH] media: i2c: Update HTS values in ov8865
 Subject: [PATCH] media: i2c: Update HTS values in ov8865
@@ -3021,7 +3021,7 @@ index 4b18cc80f985..1b8674152750 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 67bdb92ce85b7b83a37882490d0f77b580d396e6 Mon Sep 17 00:00:00 2001
+From 4ce251e57e5279e21f931e5883489b6924f5288e Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Tue, 13 Jul 2021 23:43:17 +0100
 Date: Tue, 13 Jul 2021 23:43:17 +0100
 Subject: [PATCH] media: i2c: cap exposure at height + vblank in ov8865
 Subject: [PATCH] media: i2c: cap exposure at height + vblank in ov8865
@@ -3104,7 +3104,7 @@ index 1b8674152750..99548ad15dcd 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 37a3e3adbbab2e7d3d7a0670e6595e54f10f0ca4 Mon Sep 17 00:00:00 2001
+From a4623f9745b4d8c1f76b4a9177fbbcd04f4ffa63 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Fri, 16 Jul 2021 22:56:15 +0100
 Date: Fri, 16 Jul 2021 22:56:15 +0100
 Subject: [PATCH] media: i2c: Add controls from fwnode to ov8865
 Subject: [PATCH] media: i2c: Add controls from fwnode to ov8865
@@ -3149,7 +3149,7 @@ index 99548ad15dcd..dfb5095ef16b 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 9a955621db26aef7bbab825e4392af7593f91970 Mon Sep 17 00:00:00 2001
+From 47367d8e5eb871798ba3b0d6fc2f1f84a9dda61d Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Fri, 16 Jul 2021 00:00:54 +0100
 Date: Fri, 16 Jul 2021 00:00:54 +0100
 Subject: [PATCH] media: i2c: Switch exposure control unit to lines
 Subject: [PATCH] media: i2c: Switch exposure control unit to lines
@@ -3196,7 +3196,7 @@ index dfb5095ef16b..5f19d82554df 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From d5dbf718bcf42a16542b3f46d392f04d2e6c2032 Mon Sep 17 00:00:00 2001
+From 934dbd31d57b24b29b8e11862810410eacd3037c Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Tue, 24 Aug 2021 22:39:02 +0100
 Date: Tue, 24 Aug 2021 22:39:02 +0100
 Subject: [PATCH] media: i2c: Re-order runtime pm initialisation
 Subject: [PATCH] media: i2c: Re-order runtime pm initialisation
@@ -3232,7 +3232,7 @@ index 5f19d82554df..18b5f1e8e9a7 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 16eb1b76b4715f8dfb0d8dcd83ea32d164ab5ab7 Mon Sep 17 00:00:00 2001
+From 5077b3845260253329e7421f5095c65981322f5e Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Tue, 24 Aug 2021 23:17:39 +0100
 Date: Tue, 24 Aug 2021 23:17:39 +0100
 Subject: [PATCH] media: i2c: Use dev_err_probe() in ov8865
 Subject: [PATCH] media: i2c: Use dev_err_probe() in ov8865
@@ -3315,7 +3315,7 @@ index 18b5f1e8e9a7..19e6bebf340d 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 8c076d4726ce349959ef761da54826bf92330268 Mon Sep 17 00:00:00 2001
+From 98e5637775358878c194dd20ec8c6eada543a6c1 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Wed, 14 Jul 2021 00:05:04 +0100
 Date: Wed, 14 Jul 2021 00:05:04 +0100
 Subject: [PATCH] media: ipu3-cio2: Add INT347A to cio2-bridge
 Subject: [PATCH] media: ipu3-cio2: Add INT347A to cio2-bridge
@@ -3348,7 +3348,7 @@ index 7e582135dfb8..0132f0bd9b41 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From d522a51f9cfe6f13e6275081d99f8598d792cb5f Mon Sep 17 00:00:00 2001
+From d8e3e2677c25ae396adb8b5c25e6913bf035c17e Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Thu, 7 Oct 2021 15:34:52 +0200
 Date: Thu, 7 Oct 2021 15:34:52 +0200
 Subject: [PATCH] media: i2c: ov8865: Fix lockdep error
 Subject: [PATCH] media: i2c: ov8865: Fix lockdep error
@@ -3394,7 +3394,7 @@ index 19e6bebf340d..d5af8aedf5e8 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 4923e2aa1a3c301ebdd3f0fb33f86840ce87418e Mon Sep 17 00:00:00 2001
+From d2ff2644d609dca82bafb50d87b7470d8f8fb169 Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:56:57 +0200
 Date: Sun, 10 Oct 2021 20:56:57 +0200
 Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an
 Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an
@@ -3577,7 +3577,7 @@ index 13d93371790e..2da53b7b4965 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 98381f25560a7fe3f34f6ed8d1b4689f2418d026 Mon Sep 17 00:00:00 2001
+From d9d031963056db5d00e86fd006a389f471a6cb78 Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:56:58 +0200
 Date: Sun, 10 Oct 2021 20:56:58 +0200
 Subject: [PATCH] i2c: acpi: Use acpi_dev_ready_for_enumeration() helper
 Subject: [PATCH] i2c: acpi: Use acpi_dev_ready_for_enumeration() helper
@@ -3629,7 +3629,7 @@ index 169713964358..9f0e719cd2c8 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 8d1d46410ca2e3a311387d8307b9bff8610d7e02 Mon Sep 17 00:00:00 2001
+From 3a1c942735f064304a5ef481dd7285b491faa27c Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:56:59 +0200
 Date: Sun, 10 Oct 2021 20:56:59 +0200
 Subject: [PATCH] platform_data: Add linux/platform_data/tps68470.h file
 Subject: [PATCH] platform_data: Add linux/platform_data/tps68470.h file
@@ -3702,7 +3702,7 @@ index 000000000000..126d082c3f2e
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From c41dafea89e4f00f99cf0b1fcf1b4cd43f0879d7 Mon Sep 17 00:00:00 2001
+From dbe66e8b9bc378b32ff828e8d096a835bf5186f3 Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:57:00 +0200
 Date: Sun, 10 Oct 2021 20:57:00 +0200
 Subject: [PATCH] regulator: Introduce tps68470-regulator driver
 Subject: [PATCH] regulator: Introduce tps68470-regulator driver
@@ -3964,7 +3964,7 @@ index 000000000000..3129fa13a122
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 83625fe7c08bfdd63c688d2300e7e9ea47710639 Mon Sep 17 00:00:00 2001
+From a3c58f4bba6b0728754ea1f165cac9a017d4b939 Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:57:01 +0200
 Date: Sun, 10 Oct 2021 20:57:01 +0200
 Subject: [PATCH] clk: Introduce clk-tps68470 driver
 Subject: [PATCH] clk: Introduce clk-tps68470 driver
@@ -4309,7 +4309,7 @@ index ffe81127d91c..7807fa329db0 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 71e9c4b05e790f94f3bad8e6b6f737235a8185a4 Mon Sep 17 00:00:00 2001
+From be026cfad4141e3dedee20b437c6ab0f12855f37 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sun, 10 Oct 2021 20:57:02 +0200
 Date: Sun, 10 Oct 2021 20:57:02 +0200
 Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain
 Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain
@@ -4346,7 +4346,7 @@ index c05b4cf502fe..42e688f4cad4 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From ac71d936ec0f5c42dc17a84d050dc28bcdca6f1c Mon Sep 17 00:00:00 2001
+From 4180ee7616516c66153e29c16acaafd212a509bb Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:57:03 +0200
 Date: Sun, 10 Oct 2021 20:57:03 +0200
 Subject: [PATCH] platform/x86: int3472: Split into 2 drivers
 Subject: [PATCH] platform/x86: int3472: Split into 2 drivers
@@ -4605,7 +4605,7 @@ index 42e688f4cad4..b94cf66ab61f 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 3ce790f76e65049a3bd360de9c5e16e9258ecdac Mon Sep 17 00:00:00 2001
+From 4d137ed1431f418f892777a34e56d7b77ed8c8e2 Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:57:04 +0200
 Date: Sun, 10 Oct 2021 20:57:04 +0200
 Subject: [PATCH] platform/x86: int3472: Add get_sensor_adev_and_name() helper
 Subject: [PATCH] platform/x86: int3472: Add get_sensor_adev_and_name() helper
@@ -4718,7 +4718,7 @@ index 856602a2f6bb..22a4894f1cc7 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 97ffec7782c6412b62b12ad1dfa624597000db85 Mon Sep 17 00:00:00 2001
+From e1c4809c5f6e7cf656de86e74cc606a2e352d89b Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:57:05 +0200
 Date: Sun, 10 Oct 2021 20:57:05 +0200
 Subject: [PATCH] platform/x86: int3472: Pass tps68470_clk_platform_data to the
 Subject: [PATCH] platform/x86: int3472: Pass tps68470_clk_platform_data to the
@@ -4806,7 +4806,7 @@ index b94cf66ab61f..78e34e7b6969 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 953280a290178f264e99d8c1fe94ebd681c5beb6 Mon Sep 17 00:00:00 2001
+From 86bf024c4c2a343ecf0e23b7cec4da8ad0a652b6 Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:57:06 +0200
 Date: Sun, 10 Oct 2021 20:57:06 +0200
 Subject: [PATCH] platform/x86: int3472: Pass tps68470_regulator_platform_data
 Subject: [PATCH] platform/x86: int3472: Pass tps68470_regulator_platform_data
@@ -5100,7 +5100,7 @@ index 000000000000..96954a789bb8
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From a64bb2d82c2bd1f4d7b150d5a7acd9ed1dbf7a8c Mon Sep 17 00:00:00 2001
+From 14a7e9404dfc4085b4d4ed71d55f0721f2f0339d Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:57:07 +0200
 Date: Sun, 10 Oct 2021 20:57:07 +0200
 Subject: [PATCH] platform/x86: int3472: Deal with probe ordering issues
 Subject: [PATCH] platform/x86: int3472: Deal with probe ordering issues
@@ -5184,7 +5184,7 @@ index aae24d228770..21c6c1a6edfc 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 0f54cfac84528f20cbb57b6c0b4340e65566fc4d Mon Sep 17 00:00:00 2001
+From 5dc56637061f956cce4c073e4d7c593085e922de Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Thu, 22 Jul 2021 00:20:46 +0100
 Date: Thu, 22 Jul 2021 00:20:46 +0100
 Subject: [PATCH] Revert "media: device property: Call
 Subject: [PATCH] Revert "media: device property: Call
@@ -5226,7 +5226,7 @@ index d0874f6c29bb..4d7ff55df95d 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From 951f102ad80ca5dfe0d3cfdd3936e1104b4aecbc Mon Sep 17 00:00:00 2001
+From 32971bfc87fbfa976f8ec70989146edaa60466a7 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sun, 18 Jul 2021 23:52:42 +0100
 Date: Sun, 18 Jul 2021 23:52:42 +0100
 Subject: [PATCH] device property: Check fwnode->secondary in
 Subject: [PATCH] device property: Check fwnode->secondary in

+ 5 - 5
patches/5.14/0011-amd-gpio.patch

@@ -1,4 +1,4 @@
-From db59de04463e7daf9db5d6a94ecade027c386bf5 Mon Sep 17 00:00:00 2001
+From e291fe440d5f7447c3f81ee223c9923423b45aac Mon Sep 17 00:00:00 2001
 From: Sachi King <nakato@nakato.io>
 From: Sachi King <nakato@nakato.io>
 Date: Sat, 29 May 2021 17:47:38 +1000
 Date: Sat, 29 May 2021 17:47:38 +1000
 Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7
 Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7
@@ -65,7 +65,7 @@ index e55e0c1fad8c..46dfad41b401 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From f36c217ee9cf09a3eeb0c4c869823fe4abe53c87 Mon Sep 17 00:00:00 2001
+From 8d5024b44c7cd6819b7deca883ee4b0f79917b30 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Thu, 3 Jun 2021 14:04:26 +0200
 Date: Thu, 3 Jun 2021 14:04:26 +0200
 Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override
 Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override
@@ -107,7 +107,7 @@ index 46dfad41b401..78bf6a097dc5 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From fa0275eafbc5171767f6bc3fd9ca2dba2940ccc6 Mon Sep 17 00:00:00 2001
+From 9695d8c770fbff8b00f3a6fea1f612bbb095cd6a Mon Sep 17 00:00:00 2001
 From: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
 From: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
 Date: Tue, 31 Aug 2021 17:36:12 +0530
 Date: Tue, 31 Aug 2021 17:36:12 +0530
 Subject: [PATCH] pinctrl: amd: Add irq field data
 Subject: [PATCH] pinctrl: amd: Add irq field data
@@ -173,7 +173,7 @@ index 95e763424042..1d4317073654 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From d1b2d9b220465e1f8abb62f07f461b1c2374d66b Mon Sep 17 00:00:00 2001
+From 3e0af5b7739aecbe646104171bdcefb925c4cc6d Mon Sep 17 00:00:00 2001
 From: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
 From: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
 Date: Tue, 31 Aug 2021 17:36:13 +0530
 Date: Tue, 31 Aug 2021 17:36:13 +0530
 Subject: [PATCH] pinctrl: amd: Handle wake-up interrupt
 Subject: [PATCH] pinctrl: amd: Handle wake-up interrupt
@@ -220,7 +220,7 @@ index 79b8b7f91996..d19974aceb2e 100644
 -- 
 -- 
 2.33.1
 2.33.1
 
 
-From f429b5104b297a4b817df233dc77665c48c31184 Mon Sep 17 00:00:00 2001
+From 6567cde21a9e1cbf952eedfd293ef72f6cfe55b6 Mon Sep 17 00:00:00 2001
 From: Sachi King <nakato@nakato.io>
 From: Sachi King <nakato@nakato.io>
 Date: Fri, 1 Oct 2021 21:19:09 +1000
 Date: Fri, 1 Oct 2021 21:19:09 +1000
 Subject: [PATCH] pinctrl: amd: disable and mask interrupts on probe
 Subject: [PATCH] pinctrl: amd: disable and mask interrupts on probe

+ 11 - 11
pkg/arch/kernel/PKGBUILD

@@ -48,17 +48,17 @@ sha256sums=('SKIP'
             'f98065a286a6d2dbb0e226867a6417e344aaa44ef6eac967707e1f09671be445'
             'f98065a286a6d2dbb0e226867a6417e344aaa44ef6eac967707e1f09671be445'
             '63e0aa01e590c789a2a312f48cdc467b29734465cdf87e206b7a7e0f82e22bc4'
             '63e0aa01e590c789a2a312f48cdc467b29734465cdf87e206b7a7e0f82e22bc4'
             'b30cd71018df7e98101ba0cf37054169006b096d2870a9f8467dd96378b02b98'
             'b30cd71018df7e98101ba0cf37054169006b096d2870a9f8467dd96378b02b98'
-            '3fa38ff5b5f74b717fb1112b3822ef7c34335ca39d544fd9827708013a13841f'
-            '332d8f16ebf01e297bba2353a952cbf759f766e8fb285eba05591798475bc7c7'
-            '77364719c3ae38d628c07a1f73fe43288d8d08f205f687179e3b32d5cf09b23e'
-            'c14028323060e022ec262c3578c14d6befdfd9a7150f0c8fc913f95f88424a2e'
-            '82d26d00a1425fb4f9da8ca0e489eed87399329b7bdac9d571ab27fc4c80fb09'
-            '4327c9d55bdcc2a70d096916f879f67373ad1145b466523392e39b256f803cb1'
-            '73676de16536f1bdb07049e500775ec16cf6983db0b8f82f9671d7a170791109'
-            '83789baef33e36e3e67516ddc7880e568e01d306db261ae16b56aabb18640406'
-            'ef9866fd7f9119b9722e598b0c57c3361ff648e1163a5ce987b5b89a2c7e7ef6'
-            '2fca60f3dba19b8c135d12699f59e52845511b6aa902c7edc3df73504abe4732'
-            '55eadb276875103d22f86bdf969949be8c6a429d7a07c5efea4a4d901e060335')
+            'd73e7f4dec78e5c82feab81d3dc4bdc0f98d8e00287e11ff04c147b52c7d234a'
+            'b7c2944150afc54d81d6be9c558973a7cd1457511cb627aa2b919ce5a3bbf234'
+            'b259a4e26722f42c8a71179b6ec66aa2aa9099d5558c6f17114d4e5e78e3d128'
+            'bb21a53c74685cab412578a69ec4cac37e08758e16943c152bdfaa4ea05d6745'
+            '4ffe19461919a56960fd8bd2775cb55144a8e87466b3667678c56c68ffebd2a7'
+            '47ef1e578c76d7579d21801d53eb04fe4f120097f8c6f57bf2dd233190fbe75a'
+            'd37637392004d68430bf86a108cca9f0e5ab1b241caac86bc700202801879098'
+            '0653f2d63e63d1de91e64673f9e4e91f1159e3a55c1726754cbf7148e5570370'
+            'e2880e82f7a911dffeb09226c27635d6ecec330d3393ade7e2f50374fa085168'
+            '6e8256af155c2c0db98070381a29ae91681a0ea95f868a11632ae7b513309f6f'
+            'e7a3f0babfd56df6d3c7e5e4ad459af9c596ca10661b3d6df88ced441d60b227')
 
 
 
 
 export KBUILD_BUILD_HOST=archlinux
 export KBUILD_BUILD_HOST=archlinux