From ca770074d8fc61ae5bfca19f4ec0e6718a3d30d0 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 20 Nov 2021 04:00:13 +0100 Subject: [PATCH] Udate v5.14 patches Changes: - Add a fix for hot-plug devices, specifically the battery, on the Surface Book 3 via Surface Aggregator Module. - Rebase on v5.14.20. Links: - https://github.com/linux-surface/kernel/commit/ef9e57a6d398797f24a05fcd50a7ee5c90df22e3 --- patches/5.14/0001-surface3-oemb.patch | 4 +- patches/5.14/0002-mwifiex.patch | 441 ++++--------------- patches/5.14/0003-ath10k.patch | 6 +- patches/5.14/0004-ipts.patch | 8 +- patches/5.14/0005-surface-sam.patch | 371 +++------------- patches/5.14/0006-surface-sam-over-hid.patch | 8 +- patches/5.14/0007-surface-gpe.patch | 8 +- patches/5.14/0008-surface-button.patch | 8 +- patches/5.14/0009-surface-typecover.patch | 4 +- patches/5.14/0010-cameras.patch | 154 +++---- patches/5.14/0011-amd-gpio.patch | 121 +---- patches/5.14/0012-misc-fixes.patch | 4 +- 12 files changed, 271 insertions(+), 866 deletions(-) diff --git a/patches/5.14/0001-surface3-oemb.patch b/patches/5.14/0001-surface3-oemb.patch index 72e2792f2..95bbbf0b7 100644 --- a/patches/5.14/0001-surface3-oemb.patch +++ b/patches/5.14/0001-surface3-oemb.patch @@ -1,4 +1,4 @@ -From 0e156bdab34b52210d0cf07ccf3df0f016788be0 Mon Sep 17 00:00:00 2001 +From 0af29705fc39c579ece3a4985b27db35ae260487 Mon Sep 17 00:00:00 2001 From: Tsuchiya Yuto Date: Sun, 18 Oct 2020 16:42:44 +0900 Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI @@ -97,5 +97,5 @@ index 227424236fd5..1013a57be89a 100644 }; -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0002-mwifiex.patch b/patches/5.14/0002-mwifiex.patch index 38f9c5766..9b7670116 100644 --- a/patches/5.14/0002-mwifiex.patch +++ b/patches/5.14/0002-mwifiex.patch @@ -1,4 +1,4 @@ -From 16e93af1da65504d2ac360261c21e7a2bb0ca90e Mon Sep 17 00:00:00 2001 +From a940aae58d05eac46f61c0723861148ac326cd64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Fri, 20 Aug 2021 16:20:49 +0200 Subject: [PATCH] mwifiex: pcie: add DMI-based quirk implementation for Surface @@ -42,10 +42,10 @@ index 162d557b78af..2bd00f40958e 100644 mwifiex_usb-y += usb.o diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index 46517515ba72..a530832c9421 100644 +index 777c0bab65d5..9e5abd80c78e 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c -@@ -27,6 +27,7 @@ +@@ -28,6 +28,7 @@ #include "wmm.h" #include "11n.h" #include "pcie.h" @@ -53,7 +53,7 @@ index 46517515ba72..a530832c9421 100644 #define PCIE_VERSION "1.0" #define DRV_NAME "Marvell mwifiex PCIe" -@@ -410,6 +411,9 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev, +@@ -411,6 +412,9 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev, return ret; } @@ -146,9 +146,9 @@ index 000000000000..18eacc8c2d3a + +void mwifiex_initialize_quirks(struct pcie_service_card *card); -- -2.33.1 +2.34.0 -From 1b0438c0a113f2b7af310c67c32bae53316f6c32 Mon Sep 17 00:00:00 2001 +From 18e0425d01bc1f46acd12b24153797ebfab820a8 Mon Sep 17 00:00:00 2001 From: Tsuchiya Yuto Date: Fri, 20 Aug 2021 16:20:50 +0200 Subject: [PATCH] mwifiex: pcie: add reset_d3cold quirk for Surface gen4+ @@ -182,10 +182,10 @@ Patchset: mwifiex 3 files changed, 133 insertions(+) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index a530832c9421..c6ccce426b49 100644 +index 9e5abd80c78e..c3f5583ea70d 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c -@@ -528,6 +528,13 @@ static void mwifiex_pcie_reset_prepare(struct pci_dev *pdev) +@@ -529,6 +529,13 @@ static void mwifiex_pcie_reset_prepare(struct pci_dev *pdev) mwifiex_shutdown_sw(adapter); clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags); clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags); @@ -351,9 +351,9 @@ index 18eacc8c2d3a..8ec4176d698f 100644 void mwifiex_initialize_quirks(struct pcie_service_card *card); +int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev); -- -2.33.1 +2.34.0 -From 717799cde64aaa087897d415f627e964692e07ee Mon Sep 17 00:00:00 2001 +From 300fd6232caf7ca7bc5158d1744550432127d0ea Mon Sep 17 00:00:00 2001 From: Tsuchiya Yuto Date: Tue, 29 Sep 2020 17:32:22 +0900 Subject: [PATCH] mwifiex: pcie: add reset_wsid quirk for Surface 3 @@ -383,10 +383,10 @@ Patchset: mwifiex 3 files changed, 99 insertions(+) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index c6ccce426b49..a9d704e8c008 100644 +index c3f5583ea70d..3f5138008594 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c -@@ -2967,6 +2967,16 @@ static void mwifiex_pcie_card_reset_work(struct mwifiex_adapter *adapter) +@@ -2993,6 +2993,16 @@ static void mwifiex_pcie_card_reset_work(struct mwifiex_adapter *adapter) { struct pcie_service_card *card = adapter->card; @@ -536,9 +536,9 @@ index 8ec4176d698f..25370c5a4f59 100644 int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev); +int mwifiex_pcie_reset_wsid_quirk(struct pci_dev *pdev); -- -2.33.1 +2.34.0 -From 3ee09333e621348be68bff25601e5219067a091c Mon Sep 17 00:00:00 2001 +From c053005c26429a00fb5ada483d198870cfc1866e Mon Sep 17 00:00:00 2001 From: Tsuchiya Yuto Date: Wed, 30 Sep 2020 18:08:24 +0900 Subject: [PATCH] mwifiex: pcie: (OEMB) add quirk for Surface 3 with broken DMI @@ -598,9 +598,9 @@ index 563dd0d5ac79..32e2f000e57b 100644 }; -- -2.33.1 +2.34.0 -From 8ee8f7a2f5d43505d285a2880d9fec5c2e9f60d1 Mon Sep 17 00:00:00 2001 +From 2e3db01cb53b96250df039fdca6e43c0d91957a2 Mon Sep 17 00:00:00 2001 From: Tsuchiya Yuto Date: Sun, 4 Oct 2020 00:11:49 +0900 Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+ @@ -622,10 +622,10 @@ Patchset: mwifiex 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index a9d704e8c008..76e34eeba3af 100644 +index 3f5138008594..372dde99725c 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c -@@ -379,6 +379,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev, +@@ -380,6 +380,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { struct pcie_service_card *card; @@ -633,7 +633,7 @@ index a9d704e8c008..76e34eeba3af 100644 int ret; pr_debug("info: vendor=0x%4.04X device=0x%4.04X rev=%d\n", -@@ -420,6 +421,12 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev, +@@ -421,6 +422,12 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev, return -1; } @@ -753,9 +753,9 @@ index 25370c5a4f59..a1de111ad1db 100644 void mwifiex_initialize_quirks(struct pcie_service_card *card); int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev); -- -2.33.1 +2.34.0 -From 072faa4911a4c05fca35e8b69f01f2c3f92d582c Mon Sep 17 00:00:00 2001 +From a424a4dbba9af7cbb8c16f2dc3b1b1710779ed37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 3 Nov 2020 13:28:04 +0100 Subject: [PATCH] mwifiex: Add quirk resetting the PCI bridge on MS Surface @@ -789,10 +789,10 @@ Patchset: mwifiex 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index 76e34eeba3af..ca06eb7ac4aa 100644 +index 372dde99725c..586c79dc0a98 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c -@@ -1755,9 +1755,21 @@ mwifiex_pcie_send_boot_cmd(struct mwifiex_adapter *adapter, struct sk_buff *skb) +@@ -1781,9 +1781,21 @@ mwifiex_pcie_send_boot_cmd(struct mwifiex_adapter *adapter, struct sk_buff *skb) static int mwifiex_pcie_init_fw_port(struct mwifiex_adapter *adapter) { struct pcie_service_card *card = adapter->card; @@ -920,9 +920,9 @@ index a1de111ad1db..0e429779bb04 100644 void mwifiex_initialize_quirks(struct pcie_service_card *card); int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev); -- -2.33.1 +2.34.0 -From b118d2e884648dd9cb7841d9a30064aca89e4e8d Mon Sep 17 00:00:00 2001 +From 6dba993c14b79425f20362983b91afc002e043a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Thu, 25 Mar 2021 11:33:02 +0100 Subject: [PATCH] Bluetooth: btusb: Lower passive lescan interval on Marvell @@ -998,9 +998,9 @@ index bd37d6fb88c2..d12fb2034d46 100644 (id->driver_info & BTUSB_MEDIATEK)) { hdev->setup = btusb_mtk_setup; -- -2.33.1 +2.34.0 -From 4100a2743d75d853e0611bb37735dd98f45348fb Mon Sep 17 00:00:00 2001 +From 1655948416d489cb030d188741b9e146160edefa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Wed, 11 Nov 2020 12:31:26 +0100 Subject: [PATCH] mwifiex: Small cleanup for handling virtual interface type @@ -1021,10 +1021,10 @@ Patchset: mwifiex 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -index 0961f4a5e415..e8deba119ff1 100644 +index 97f0f39364d6..dd30d21edc01 100644 --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -@@ -1141,6 +1141,20 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1145,6 +1145,20 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, return -EBUSY; } @@ -1045,7 +1045,7 @@ index 0961f4a5e415..e8deba119ff1 100644 switch (curr_iftype) { case NL80211_IFTYPE_ADHOC: switch (type) { -@@ -1160,12 +1174,6 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1164,12 +1178,6 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, case NL80211_IFTYPE_AP: return mwifiex_change_vif_to_ap(dev, curr_iftype, type, params); @@ -1058,7 +1058,7 @@ index 0961f4a5e415..e8deba119ff1 100644 default: mwifiex_dbg(priv->adapter, ERROR, "%s: changing to %d not supported\n", -@@ -1191,12 +1199,6 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1195,12 +1203,6 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, case NL80211_IFTYPE_AP: return mwifiex_change_vif_to_ap(dev, curr_iftype, type, params); @@ -1071,7 +1071,7 @@ index 0961f4a5e415..e8deba119ff1 100644 default: mwifiex_dbg(priv->adapter, ERROR, "%s: changing to %d not supported\n", -@@ -1214,12 +1216,6 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1218,12 +1220,6 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, case NL80211_IFTYPE_P2P_GO: return mwifiex_change_vif_to_p2p(dev, curr_iftype, type, params); @@ -1084,8 +1084,8 @@ index 0961f4a5e415..e8deba119ff1 100644 default: mwifiex_dbg(priv->adapter, ERROR, "%s: changing to %d not supported\n", -@@ -1254,13 +1250,6 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, - return -EFAULT; +@@ -1244,13 +1240,6 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, + case NL80211_IFTYPE_AP: return mwifiex_change_vif_to_ap(dev, curr_iftype, type, params); - case NL80211_IFTYPE_UNSPECIFIED: @@ -1099,9 +1099,9 @@ index 0961f4a5e415..e8deba119ff1 100644 mwifiex_dbg(priv->adapter, ERROR, "%s: changing to %d not supported\n", -- -2.33.1 +2.34.0 -From ceaec12c1a49817f5fd8172595092a06a829cb2e Mon Sep 17 00:00:00 2001 +From cbc06e933a2721afa63d5f405a89554a8a15d7a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 10 Nov 2020 12:49:56 +0100 Subject: [PATCH] mwifiex: Use non-posted PCI register writes @@ -1139,10 +1139,10 @@ Patchset: mwifiex 1 file changed, 6 insertions(+) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index ca06eb7ac4aa..95e5851d2d0a 100644 +index 586c79dc0a98..f87bc9bdfba7 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c -@@ -237,6 +237,12 @@ static int mwifiex_write_reg(struct mwifiex_adapter *adapter, int reg, u32 data) +@@ -238,6 +238,12 @@ static int mwifiex_write_reg(struct mwifiex_adapter *adapter, int reg, u32 data) iowrite32(data, card->pci_mmap1 + reg); @@ -1156,9 +1156,9 @@ index ca06eb7ac4aa..95e5851d2d0a 100644 } -- -2.33.1 +2.34.0 -From 2407c62502ec1974fb650d8e70d6f510d4057108 Mon Sep 17 00:00:00 2001 +From b7b240b7281c94e45c950a93277aa3cb3e70e474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Wed, 11 Nov 2020 12:44:39 +0100 Subject: [PATCH] mwifiex: Use function to check whether interface type change @@ -1174,10 +1174,10 @@ Patchset: mwifiex 1 file changed, 92 insertions(+), 47 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -index e8deba119ff1..dabc59c47de3 100644 +index dd30d21edc01..e4d44705c827 100644 --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -@@ -939,6 +939,76 @@ mwifiex_init_new_priv_params(struct mwifiex_private *priv, +@@ -943,6 +943,76 @@ mwifiex_init_new_priv_params(struct mwifiex_private *priv, return 0; } @@ -1254,7 +1254,7 @@ index e8deba119ff1..dabc59c47de3 100644 static int mwifiex_change_vif_to_p2p(struct net_device *dev, enum nl80211_iftype curr_iftype, -@@ -955,13 +1025,6 @@ mwifiex_change_vif_to_p2p(struct net_device *dev, +@@ -959,13 +1029,6 @@ mwifiex_change_vif_to_p2p(struct net_device *dev, adapter = priv->adapter; @@ -1268,7 +1268,7 @@ index e8deba119ff1..dabc59c47de3 100644 mwifiex_dbg(adapter, INFO, "%s: changing role to p2p\n", dev->name); -@@ -1027,15 +1090,6 @@ mwifiex_change_vif_to_sta_adhoc(struct net_device *dev, +@@ -1031,15 +1094,6 @@ mwifiex_change_vif_to_sta_adhoc(struct net_device *dev, adapter = priv->adapter; @@ -1284,7 +1284,7 @@ index e8deba119ff1..dabc59c47de3 100644 if (type == NL80211_IFTYPE_STATION) mwifiex_dbg(adapter, INFO, "%s: changing role to station\n", dev->name); -@@ -1086,13 +1140,6 @@ mwifiex_change_vif_to_ap(struct net_device *dev, +@@ -1090,13 +1144,6 @@ mwifiex_change_vif_to_ap(struct net_device *dev, adapter = priv->adapter; @@ -1298,7 +1298,7 @@ index e8deba119ff1..dabc59c47de3 100644 mwifiex_dbg(adapter, INFO, "%s: changing role to AP\n", dev->name); -@@ -1155,6 +1202,13 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1159,6 +1206,13 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, return 0; } @@ -1312,7 +1312,7 @@ index e8deba119ff1..dabc59c47de3 100644 switch (curr_iftype) { case NL80211_IFTYPE_ADHOC: switch (type) { -@@ -1175,12 +1229,9 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1179,12 +1233,9 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, return mwifiex_change_vif_to_ap(dev, curr_iftype, type, params); default: @@ -1327,7 +1327,7 @@ index e8deba119ff1..dabc59c47de3 100644 case NL80211_IFTYPE_STATION: switch (type) { case NL80211_IFTYPE_ADHOC: -@@ -1200,12 +1251,9 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1204,12 +1255,9 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, return mwifiex_change_vif_to_ap(dev, curr_iftype, type, params); default: @@ -1342,7 +1342,7 @@ index e8deba119ff1..dabc59c47de3 100644 case NL80211_IFTYPE_AP: switch (type) { case NL80211_IFTYPE_ADHOC: -@@ -1217,12 +1265,9 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1221,12 +1269,9 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, return mwifiex_change_vif_to_p2p(dev, curr_iftype, type, params); default: @@ -1356,8 +1356,8 @@ index e8deba119ff1..dabc59c47de3 100644 + case NL80211_IFTYPE_P2P_CLIENT: case NL80211_IFTYPE_P2P_GO: - switch (type) { -@@ -1251,21 +1296,21 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, + if (mwifiex_cfg80211_deinit_p2p(priv)) +@@ -1241,21 +1286,21 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, return mwifiex_change_vif_to_ap(dev, curr_iftype, type, params); default: @@ -1389,77 +1389,9 @@ index e8deba119ff1..dabc59c47de3 100644 static void -- -2.33.1 +2.34.0 -From e326fcece0fec379e641990c82086bd38d684b28 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= -Date: Wed, 11 Nov 2020 13:33:04 +0100 -Subject: [PATCH] mwifiex: Run SET_BSS_MODE when changing from P2P to STATION - vif-type - -We currently handle changing from the P2P to the STATION virtual -interface type slightly different than changing from P2P to ADHOC: When -changing to STATION, we don't send the SET_BSS_MODE command. We do send -that command on all other type-changes though, and it probably makes -sense to send the command since after all we just changed our BSS_MODE. -Looking at prior changes to this part of the code, it seems that this is -simply a leftover from old refactorings. - -Since sending the SET_BSS_MODE command is the only difference between -mwifiex_change_vif_to_sta_adhoc() and the current code, we can now use -mwifiex_change_vif_to_sta_adhoc() for both switching to ADHOC and -STATION interface type. - -This does not fix any particular bug and just "looked right", so there's -a small chance it might be a regression. - -Patchset: mwifiex ---- - .../net/wireless/marvell/mwifiex/cfg80211.c | 22 ++++--------------- - 1 file changed, 4 insertions(+), 18 deletions(-) - -diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -index dabc59c47de3..146aabe14753 100644 ---- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c -+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -@@ -1270,29 +1270,15 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, - - case NL80211_IFTYPE_P2P_CLIENT: - case NL80211_IFTYPE_P2P_GO: -+ if (mwifiex_cfg80211_deinit_p2p(priv)) -+ return -EFAULT; -+ - switch (type) { -- case NL80211_IFTYPE_STATION: -- if (mwifiex_cfg80211_deinit_p2p(priv)) -- return -EFAULT; -- priv->adapter->curr_iface_comb.p2p_intf--; -- priv->adapter->curr_iface_comb.sta_intf++; -- dev->ieee80211_ptr->iftype = type; -- if (mwifiex_deinit_priv_params(priv)) -- return -1; -- if (mwifiex_init_new_priv_params(priv, dev, type)) -- return -1; -- if (mwifiex_sta_init_cmd(priv, false, false)) -- return -1; -- break; - case NL80211_IFTYPE_ADHOC: -- if (mwifiex_cfg80211_deinit_p2p(priv)) -- return -EFAULT; -+ case NL80211_IFTYPE_STATION: - return mwifiex_change_vif_to_sta_adhoc(dev, curr_iftype, - type, params); -- break; - case NL80211_IFTYPE_AP: -- if (mwifiex_cfg80211_deinit_p2p(priv)) -- return -EFAULT; - return mwifiex_change_vif_to_ap(dev, curr_iftype, type, - params); - default: --- -2.33.1 - -From ae55e43a857773c6c22d506e5581fb7107b8f503 Mon Sep 17 00:00:00 2001 +From 7c13816b20777d631732398d48695f97cd62ee5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Wed, 11 Nov 2020 14:42:54 +0100 Subject: [PATCH] mwifiex: Use helper function for counting interface types @@ -1476,10 +1408,10 @@ Patchset: mwifiex 1 file changed, 35 insertions(+), 75 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -index 146aabe14753..8b9517c243c8 100644 +index e4d44705c827..a688fd898564 100644 --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -@@ -1009,6 +1009,32 @@ is_vif_type_change_allowed(struct mwifiex_adapter *adapter, +@@ -1013,6 +1013,32 @@ is_vif_type_change_allowed(struct mwifiex_adapter *adapter, return false; } @@ -1512,7 +1444,7 @@ index 146aabe14753..8b9517c243c8 100644 static int mwifiex_change_vif_to_p2p(struct net_device *dev, enum nl80211_iftype curr_iftype, -@@ -1056,19 +1082,8 @@ mwifiex_change_vif_to_p2p(struct net_device *dev, +@@ -1060,19 +1086,8 @@ mwifiex_change_vif_to_p2p(struct net_device *dev, if (mwifiex_sta_init_cmd(priv, false, false)) return -1; @@ -1534,7 +1466,7 @@ index 146aabe14753..8b9517c243c8 100644 dev->ieee80211_ptr->iftype = type; return 0; -@@ -1107,20 +1122,10 @@ mwifiex_change_vif_to_sta_adhoc(struct net_device *dev, +@@ -1111,20 +1126,10 @@ mwifiex_change_vif_to_sta_adhoc(struct net_device *dev, if (mwifiex_sta_init_cmd(priv, false, false)) return -1; @@ -1558,7 +1490,7 @@ index 146aabe14753..8b9517c243c8 100644 return 0; } -@@ -1153,20 +1158,8 @@ mwifiex_change_vif_to_ap(struct net_device *dev, +@@ -1157,20 +1162,8 @@ mwifiex_change_vif_to_ap(struct net_device *dev, if (mwifiex_sta_init_cmd(priv, false, false)) return -1; @@ -1581,7 +1513,7 @@ index 146aabe14753..8b9517c243c8 100644 dev->ieee80211_ptr->iftype = type; return 0; } -@@ -3128,23 +3121,7 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy, +@@ -3132,23 +3125,7 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy, mwifiex_dev_debugfs_init(priv); #endif @@ -1606,7 +1538,7 @@ index 146aabe14753..8b9517c243c8 100644 return &priv->wdev; -@@ -3210,24 +3187,7 @@ int mwifiex_del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) +@@ -3214,24 +3191,7 @@ int mwifiex_del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev) /* Clear the priv in adapter */ priv->netdev = NULL; @@ -1633,9 +1565,9 @@ index 146aabe14753..8b9517c243c8 100644 priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; -- -2.33.1 +2.34.0 -From a7bdbea1ded546c948406d05ce5ddc0f1ef4abc8 Mon Sep 17 00:00:00 2001 +From 76cc02b935eccda3e2574033f7896235e96d89bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Fri, 26 Mar 2021 15:56:58 +0100 Subject: [PATCH] mwifiex: Update virtual interface counters right after @@ -1667,10 +1599,10 @@ Patchset: mwifiex 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -index 8b9517c243c8..f2797102c5a2 100644 +index a688fd898564..2a938e8e0bb1 100644 --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -@@ -1059,6 +1059,10 @@ mwifiex_change_vif_to_p2p(struct net_device *dev, +@@ -1063,6 +1063,10 @@ mwifiex_change_vif_to_p2p(struct net_device *dev, if (mwifiex_init_new_priv_params(priv, dev, type)) return -1; @@ -1681,7 +1613,7 @@ index 8b9517c243c8..f2797102c5a2 100644 switch (type) { case NL80211_IFTYPE_P2P_CLIENT: if (mwifiex_cfg80211_init_p2p_client(priv)) -@@ -1082,10 +1086,6 @@ mwifiex_change_vif_to_p2p(struct net_device *dev, +@@ -1086,10 +1090,6 @@ mwifiex_change_vif_to_p2p(struct net_device *dev, if (mwifiex_sta_init_cmd(priv, false, false)) return -1; @@ -1692,7 +1624,7 @@ index 8b9517c243c8..f2797102c5a2 100644 return 0; } -@@ -1116,16 +1116,17 @@ mwifiex_change_vif_to_sta_adhoc(struct net_device *dev, +@@ -1120,16 +1120,17 @@ mwifiex_change_vif_to_sta_adhoc(struct net_device *dev, return -1; if (mwifiex_init_new_priv_params(priv, dev, type)) return -1; @@ -1714,7 +1646,7 @@ index 8b9517c243c8..f2797102c5a2 100644 return 0; } -@@ -1152,15 +1153,17 @@ mwifiex_change_vif_to_ap(struct net_device *dev, +@@ -1156,15 +1157,17 @@ mwifiex_change_vif_to_ap(struct net_device *dev, return -1; if (mwifiex_init_new_priv_params(priv, dev, type)) return -1; @@ -1736,9 +1668,9 @@ index 8b9517c243c8..f2797102c5a2 100644 } /* -- -2.33.1 +2.34.0 -From 5c189d40cbf5bd24269ac6d9422e3c11e80db0e8 Mon Sep 17 00:00:00 2001 +From d6abb383fe29b5f5b3096d85db224b68e719a75c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Wed, 11 Nov 2020 13:42:40 +0100 Subject: [PATCH] mwifiex: Allow switching interface type from P2P_CLIENT to @@ -1759,10 +1691,10 @@ Patchset: mwifiex 1 file changed, 36 insertions(+) diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -index f2797102c5a2..ed4041ff9c89 100644 +index 2a938e8e0bb1..2a3f9ebb3182 100644 --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -@@ -990,11 +990,26 @@ is_vif_type_change_allowed(struct mwifiex_adapter *adapter, +@@ -994,11 +994,26 @@ is_vif_type_change_allowed(struct mwifiex_adapter *adapter, } case NL80211_IFTYPE_P2P_CLIENT: @@ -1789,7 +1721,7 @@ index f2797102c5a2..ed4041ff9c89 100644 case NL80211_IFTYPE_AP: return adapter->curr_iface_comb.uap_intf != adapter->iface_limit.uap_intf; -@@ -1265,6 +1280,24 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1269,6 +1284,24 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, } case NL80211_IFTYPE_P2P_CLIENT: @@ -1814,7 +1746,7 @@ index f2797102c5a2..ed4041ff9c89 100644 case NL80211_IFTYPE_P2P_GO: if (mwifiex_cfg80211_deinit_p2p(priv)) return -EFAULT; -@@ -1274,6 +1307,9 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1278,6 +1311,9 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, case NL80211_IFTYPE_STATION: return mwifiex_change_vif_to_sta_adhoc(dev, curr_iftype, type, params); @@ -1825,9 +1757,9 @@ index f2797102c5a2..ed4041ff9c89 100644 return mwifiex_change_vif_to_ap(dev, curr_iftype, type, params); -- -2.33.1 +2.34.0 -From ec24284d36d98c16c5d36b12180b5a97982c4cef Mon Sep 17 00:00:00 2001 +From b33a4b386ac29c11fa2d54b66794d270a82782a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Fri, 26 Mar 2021 15:31:08 +0100 Subject: [PATCH] mwifiex: Handle interface type changes from AP to STATION @@ -1840,10 +1772,10 @@ Patchset: mwifiex 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -index ed4041ff9c89..64caa5c4350d 100644 +index 2a3f9ebb3182..0eb31201a82b 100644 --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -@@ -1268,6 +1268,7 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, +@@ -1272,6 +1272,7 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy, case NL80211_IFTYPE_AP: switch (type) { case NL80211_IFTYPE_ADHOC: @@ -1852,64 +1784,9 @@ index ed4041ff9c89..64caa5c4350d 100644 type, params); break; -- -2.33.1 +2.34.0 -From b030d2fde25e501b9c2130ce498b7dc0dae983ff Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= -Date: Fri, 26 Mar 2021 15:32:16 +0100 -Subject: [PATCH] mwifiex: Properly initialize private structure on interface - type changes - -When creating a new virtual interface in mwifiex_add_virtual_intf(), we -update our internal driver states like bss_type, bss_priority, bss_role -and bss_mode to reflect the mode the firmware will be set to. - -When switching virtual interface mode using -mwifiex_init_new_priv_params() though, we currently only update bss_mode -and bss_role. In order for the interface mode switch to actually work, -we also need to update bss_type to its proper value, so do that. - -This fixes a crash of the firmware (because the driver tries to execute -commands that are invalid in AP mode) when switching from station mode -to AP mode. - -Patchset: mwifiex ---- - drivers/net/wireless/marvell/mwifiex/cfg80211.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -index 64caa5c4350d..0eb31201a82b 100644 ---- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c -+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c -@@ -908,16 +908,20 @@ mwifiex_init_new_priv_params(struct mwifiex_private *priv, - switch (type) { - case NL80211_IFTYPE_STATION: - case NL80211_IFTYPE_ADHOC: -- priv->bss_role = MWIFIEX_BSS_ROLE_STA; -+ priv->bss_role = MWIFIEX_BSS_ROLE_STA; -+ priv->bss_type = MWIFIEX_BSS_TYPE_STA; - break; - case NL80211_IFTYPE_P2P_CLIENT: -- priv->bss_role = MWIFIEX_BSS_ROLE_STA; -+ priv->bss_role = MWIFIEX_BSS_ROLE_STA; -+ priv->bss_type = MWIFIEX_BSS_TYPE_P2P; - break; - case NL80211_IFTYPE_P2P_GO: -- priv->bss_role = MWIFIEX_BSS_ROLE_UAP; -+ priv->bss_role = MWIFIEX_BSS_ROLE_UAP; -+ priv->bss_type = MWIFIEX_BSS_TYPE_P2P; - break; - case NL80211_IFTYPE_AP: - priv->bss_role = MWIFIEX_BSS_ROLE_UAP; -+ priv->bss_type = MWIFIEX_BSS_TYPE_UAP; - break; - default: - mwifiex_dbg(adapter, ERROR, --- -2.33.1 - -From ba2bc3d35108af1b68bf9538ef0ecf8b96ac042c Mon Sep 17 00:00:00 2001 +From 994e91f48bc64f4c95f3da25b51a71bfa60baefb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Sat, 27 Mar 2021 12:19:14 +0100 Subject: [PATCH] mwifiex: Fix copy-paste mistake when creating virtual @@ -1939,98 +1816,9 @@ index 0eb31201a82b..d62a20de3ada 100644 priv->bss_started = 0; -- -2.33.1 +2.34.0 -From d29434086aa2539cb251a342e1b85531aa9ffe63 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= -Date: Sun, 28 Mar 2021 21:10:06 +0200 -Subject: [PATCH] mwifiex: Try waking the firmware until we get an interrupt - -It seems that the firmware of the 88W8897 card sometimes ignores or -misses when we try to wake it up by reading the firmware status -register. This leads to the firmware wakeup timeout expiring and the -driver resetting the card because we assume the firmware has hung up or -crashed (unfortunately that's not unlikely with this card). - -Turns out that most of the time the firmware actually didn't hang up, -but simply "missed" our wakeup request and doesn't send us an AWAKE -event. - -Trying again to read the firmware status register after a short timeout -usually makes the firmware wake we up as expected, so add a small retry -loop to mwifiex_pm_wakeup_card() that looks at the interrupt status to -check whether the card woke up. - -The number of tries and timeout lengths for this were determined -experimentally: The firmware usually takes about 500 us to wake up -after we attempt to read the status register. In some cases where the -firmware is very busy (for example while doing a bluetooth scan) it -might even miss our requests for multiple milliseconds, which is why -after 15 tries the waiting time gets increased to 10 ms. The maximum -number of tries it took to wake the firmware when testing this was -around 20, so a maximum number of 50 tries should give us plenty of -safety margin. - -A good reproducer for this issue is letting the firmware sleep and wake -up in very short intervals, for example by pinging an device on the -network every 0.1 seconds. - -Patchset: mwifiex ---- - drivers/net/wireless/marvell/mwifiex/pcie.c | 29 ++++++++++++++++----- - 1 file changed, 23 insertions(+), 6 deletions(-) - -diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c -index 95e5851d2d0a..ccae1532a580 100644 ---- a/drivers/net/wireless/marvell/mwifiex/pcie.c -+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c -@@ -665,6 +665,7 @@ static int mwifiex_pm_wakeup_card(struct mwifiex_adapter *adapter) - { - struct pcie_service_card *card = adapter->card; - const struct mwifiex_pcie_card_reg *reg = card->pcie.reg; -+ int n_tries = 0; - - mwifiex_dbg(adapter, EVENT, - "event: Wakeup device...\n"); -@@ -672,12 +673,28 @@ static int mwifiex_pm_wakeup_card(struct mwifiex_adapter *adapter) - if (reg->sleep_cookie) - mwifiex_pcie_dev_wakeup_delay(adapter); - -- /* Accessing fw_status register will wakeup device */ -- if (mwifiex_write_reg(adapter, reg->fw_status, FIRMWARE_READY_PCIE)) { -- mwifiex_dbg(adapter, ERROR, -- "Writing fw_status register failed\n"); -- return -1; -- } -+ /* Access the fw_status register to wake up the device. -+ * Since the 88W8897 firmware sometimes appears to ignore or miss -+ * that wakeup request, we continue trying until we receive an -+ * interrupt from the card. -+ */ -+ do { -+ if (mwifiex_write_reg(adapter, reg->fw_status, FIRMWARE_READY_PCIE)) { -+ mwifiex_dbg(adapter, ERROR, -+ "Writing fw_status register failed\n"); -+ return -1; -+ } -+ -+ n_tries++; -+ -+ if (n_tries <= 15) -+ usleep_range(400, 700); -+ else -+ msleep(10); -+ } while (n_tries <= 50 && READ_ONCE(adapter->int_status) == 0); -+ -+ mwifiex_dbg(adapter, EVENT, -+ "event: Tried %d times until firmware woke up\n", n_tries); - - if (reg->sleep_cookie) { - mwifiex_pcie_dev_wakeup_delay(adapter); --- -2.33.1 - -From 5df42c4571dde75f1681efcdbe0f918d45ba6578 Mon Sep 17 00:00:00 2001 +From a790bedaa4f0b9e35e77a939564a645c2c110ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 13 Apr 2021 14:30:28 +0200 Subject: [PATCH] mwifiex: Deactive host sleep using HSCFG after it was @@ -2184,9 +1972,9 @@ index 48ea00da1fc9..1e2798dce18f 100644 hs_cfg->action = cpu_to_le16(HS_CONFIGURE); hs_cfg->params.hs_config.conditions = hscfg_param->conditions; -- -2.33.1 +2.34.0 -From cc5bb391930517bc7376c0f3c4a98f84b0909f9a Mon Sep 17 00:00:00 2001 +From c64bf36ce3c3735979d3ab8acec70ebaa29b784f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 13 Apr 2021 14:23:05 +0200 Subject: [PATCH] mwifiex: Add quirk to disable deep sleep with certain @@ -2287,9 +2075,9 @@ index 6b5d35d9e69f..8e49ebca1847 100644 version_ext->version_str_sel = ver_ext->version_str_sel; memcpy(version_ext->version_str, ver_ext->version_str, -- -2.33.1 +2.34.0 -From b2c8d3e30ddbb6df92ef1344cc6840c8af473062 Mon Sep 17 00:00:00 2001 +From 9fbde98f4d7ef7391f1cf7b2a0267921ac4a1b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Wed, 11 Nov 2020 15:17:07 +0100 Subject: [PATCH] mwifiex: Don't log error on suspend if wake-on-wlan is @@ -2319,9 +2107,9 @@ index d62a20de3ada..18b1a6d54bc8 100644 ret = 0; goto done; -- -2.33.1 +2.34.0 -From c4330af968312a1ca51a40acc6fc9c2c98c12147 Mon Sep 17 00:00:00 2001 +From deb1509c987c2a79b420572a75e38c278ed2726b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Sun, 28 Mar 2021 21:42:54 +0200 Subject: [PATCH] mwifiex: Log an error on command failure during key-material @@ -2359,9 +2147,9 @@ index 18b1a6d54bc8..c00791701d78 100644 /* -- -2.33.1 +2.34.0 -From 835396c9e6c947559d6132a5fdc86325917f6e40 Mon Sep 17 00:00:00 2001 +From 86cacfe17db469a101e6ab87c5e97f6056fa7f18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 13 Apr 2021 12:44:03 +0200 Subject: [PATCH] mwifiex: Fix an incorrect comment @@ -2374,7 +2162,7 @@ Patchset: mwifiex 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/marvell/mwifiex/11n.c b/drivers/net/wireless/marvell/mwifiex/11n.c -index 6696bce56178..b0695432b26a 100644 +index cf08a4af84d6..9ff2058bcd7e 100644 --- a/drivers/net/wireless/marvell/mwifiex/11n.c +++ b/drivers/net/wireless/marvell/mwifiex/11n.c @@ -125,7 +125,7 @@ int mwifiex_ret_11n_delba(struct mwifiex_private *priv, @@ -2387,52 +2175,9 @@ index 6696bce56178..b0695432b26a 100644 if (!INITIATOR_BIT(del_ba_param_set)) return 0; -- -2.33.1 +2.34.0 -From e26611ba2f5c9a4a06931ff096b2bd9f6da6ac4a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= -Date: Tue, 13 Apr 2021 12:45:59 +0200 -Subject: [PATCH] mwifiex: Send DELBA requests according to spec - -We're currently failing to set the initiator bit for DELBA requests: -While we set the bit on our del_ba_param_set bitmask, we forget to -actually copy that bitmask over to the command struct, which means we -never actually set the initiator bit. - -Fix that and copy the bitmask over to the host_cmd_ds_11n_delba command -struct. - -Patchset: mwifiex ---- - drivers/net/wireless/marvell/mwifiex/11n.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/marvell/mwifiex/11n.c b/drivers/net/wireless/marvell/mwifiex/11n.c -index b0695432b26a..9ff2058bcd7e 100644 ---- a/drivers/net/wireless/marvell/mwifiex/11n.c -+++ b/drivers/net/wireless/marvell/mwifiex/11n.c -@@ -657,14 +657,15 @@ int mwifiex_send_delba(struct mwifiex_private *priv, int tid, u8 *peer_mac, - uint16_t del_ba_param_set; - - memset(&delba, 0, sizeof(delba)); -- delba.del_ba_param_set = cpu_to_le16(tid << DELBA_TID_POS); - -- del_ba_param_set = le16_to_cpu(delba.del_ba_param_set); -+ del_ba_param_set = tid << DELBA_TID_POS; -+ - if (initiator) - del_ba_param_set |= IEEE80211_DELBA_PARAM_INITIATOR_MASK; - else - del_ba_param_set &= ~IEEE80211_DELBA_PARAM_INITIATOR_MASK; - -+ delba.del_ba_param_set = cpu_to_le16(del_ba_param_set); - memcpy(&delba.peer_mac_addr, peer_mac, ETH_ALEN); - - /* We don't wait for the response of this command */ --- -2.33.1 - -From 0ecbf088f80a70707a84557401f3befa2f67dc58 Mon Sep 17 00:00:00 2001 +From 2b49f347f1a72707d8acb038fceaf65869a1cb02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 13 Apr 2021 12:57:41 +0200 Subject: [PATCH] mwifiex: Ignore BTCOEX events from the firmware @@ -2468,5 +2213,5 @@ index 68c63268e2e6..933111a3511c 100644 case EVENT_RXBA_SYNC: dev_dbg(adapter->dev, "EVENT: RXBA_SYNC\n"); -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0003-ath10k.patch b/patches/5.14/0003-ath10k.patch index 2c597b406..d4835a5f7 100644 --- a/patches/5.14/0003-ath10k.patch +++ b/patches/5.14/0003-ath10k.patch @@ -1,4 +1,4 @@ -From 78f618efdbaae67f263b31adbf73d7ee93be2bd9 Mon Sep 17 00:00:00 2001 +From 261da92e38fd3bd003c1e724edcc9322cc9b194f Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 27 Feb 2021 00:45:52 +0100 Subject: [PATCH] ath10k: Add module parameters to override board files @@ -20,7 +20,7 @@ Patchset: ath10k 1 file changed, 58 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c -index 2f9be182fbfb..84ae17af3f98 100644 +index 64c7145b51a2..1e71a60cfb11 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -35,6 +35,9 @@ static bool skip_otp; @@ -117,5 +117,5 @@ index 2f9be182fbfb..84ae17af3f98 100644 ret = firmware_request_nowarn(&fw, filename, ar->dev); ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n", -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0004-ipts.patch b/patches/5.14/0004-ipts.patch index 361cabca4..01446905f 100644 --- a/patches/5.14/0004-ipts.patch +++ b/patches/5.14/0004-ipts.patch @@ -1,4 +1,4 @@ -From 9784faa7c4004d8710c8b8bb1b89358ab4f38fef Mon Sep 17 00:00:00 2001 +From c0c0233e107398277401acbdc68263b75e4ec764 Mon Sep 17 00:00:00 2001 From: Dorian Stoll Date: Thu, 30 Jul 2020 13:21:53 +0200 Subject: [PATCH] misc: mei: Add missing IPTS device IDs @@ -34,9 +34,9 @@ index 3a45aaf002ac..55b8ee30a03c 100644 {MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)}, -- -2.33.1 +2.34.0 -From 7c57e7d94efcd9105d3395ab345700a7d34b7003 Mon Sep 17 00:00:00 2001 +From d8fe8086fc5c53e0b4d24dbbcc1bb926482a9a78 Mon Sep 17 00:00:00 2001 From: Dorian Stoll Date: Thu, 6 Aug 2020 11:20:41 +0200 Subject: [PATCH] misc: Add support for Intel Precise Touch & Stylus @@ -1499,5 +1499,5 @@ index 000000000000..53fb86a88f97 + +#endif /* _IPTS_UAPI_H_ */ -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0005-surface-sam.patch b/patches/5.14/0005-surface-sam.patch index ab5b6b6e4..4d614524e 100644 --- a/patches/5.14/0005-surface-sam.patch +++ b/patches/5.14/0005-surface-sam.patch @@ -1,204 +1,4 @@ -From cf255208929a10009fe06419ad91fe5f182e8831 Mon Sep 17 00:00:00 2001 -From: Maximilian Luz -Date: Sun, 10 Oct 2021 01:27:17 +0200 -Subject: [PATCH] platform/surface: aggregator_registry: Add support for - Surface Laptop Studio - -Add support for the Surface Laptop Studio. - -In contrast to previous Surface Laptop models, this one has its HID -devices attached to target ID 1 (instead of 2). It also has a couple -more of them, including a new notifier for when the pen is stashed / -taken out of its place, a "Sys Control" device, and two other -unidentified HID devices with unknown usages. - -Battery and performance profile interfaces remain the same. - -Signed-off-by: Maximilian Luz -Patchset: surface-sam ---- - .../surface/surface_aggregator_registry.c | 54 +++++++++++++++++++ - 1 file changed, 54 insertions(+) - -diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c -index 4428c4330229..1679811eff50 100644 ---- a/drivers/platform/surface/surface_aggregator_registry.c -+++ b/drivers/platform/surface/surface_aggregator_registry.c -@@ -77,6 +77,42 @@ static const struct software_node ssam_node_bas_dtx = { - .parent = &ssam_node_root, - }; - -+/* HID keyboard (TID1). */ -+static const struct software_node ssam_node_hid_tid1_keyboard = { -+ .name = "ssam:01:15:01:01:00", -+ .parent = &ssam_node_root, -+}; -+ -+/* HID pen stash (TID1; pen taken / stashed away evens). */ -+static const struct software_node ssam_node_hid_tid1_penstash = { -+ .name = "ssam:01:15:01:02:00", -+ .parent = &ssam_node_root, -+}; -+ -+/* HID touchpad (TID1). */ -+static const struct software_node ssam_node_hid_tid1_touchpad = { -+ .name = "ssam:01:15:01:03:00", -+ .parent = &ssam_node_root, -+}; -+ -+/* HID device instance 6 (TID1, unknown HID device). */ -+static const struct software_node ssam_node_hid_tid1_iid6 = { -+ .name = "ssam:01:15:01:06:00", -+ .parent = &ssam_node_root, -+}; -+ -+/* HID device instance 7 (TID1, unknown HID device). */ -+static const struct software_node ssam_node_hid_tid1_iid7 = { -+ .name = "ssam:01:15:01:07:00", -+ .parent = &ssam_node_root, -+}; -+ -+/* HID system controls (TID1). */ -+static const struct software_node ssam_node_hid_tid1_sysctrl = { -+ .name = "ssam:01:15:01:08:00", -+ .parent = &ssam_node_root, -+}; -+ - /* HID keyboard. */ - static const struct software_node ssam_node_hid_main_keyboard = { - .name = "ssam:01:15:02:01:00", -@@ -159,6 +195,21 @@ static const struct software_node *ssam_node_group_sl3[] = { - NULL, - }; - -+/* Devices for Surface Laptop Studio. */ -+static const struct software_node *ssam_node_group_sls[] = { -+ &ssam_node_root, -+ &ssam_node_bat_ac, -+ &ssam_node_bat_main, -+ &ssam_node_tmp_pprof, -+ &ssam_node_hid_tid1_keyboard, -+ &ssam_node_hid_tid1_penstash, -+ &ssam_node_hid_tid1_touchpad, -+ &ssam_node_hid_tid1_iid6, -+ &ssam_node_hid_tid1_iid7, -+ &ssam_node_hid_tid1_sysctrl, -+ NULL, -+}; -+ - /* Devices for Surface Laptop Go. */ - static const struct software_node *ssam_node_group_slg1[] = { - &ssam_node_root, -@@ -507,6 +558,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = { - /* Surface Laptop Go 1 */ - { "MSHW0118", (unsigned long)ssam_node_group_slg1 }, - -+ /* Surface Laptop Studio */ -+ { "MSHW0123", (unsigned long)ssam_node_group_sls }, -+ - { }, - }; - MODULE_DEVICE_TABLE(acpi, ssam_platform_hub_match); --- -2.33.1 - -From f4ccdfc9d908b0ee9964c4ae93dbcf1ec20e0250 Mon Sep 17 00:00:00 2001 -From: Maximilian Luz -Date: Sun, 10 Oct 2021 15:07:42 +0200 -Subject: [PATCH] HID: surface-hid: Use correct event registry for managing HID - events - -Fix a timeout error caused by using the wrong registry for some devices, -preventing the driver to probe and manage events correctly. - -Until now, we have only ever seen the REG-category registry being used -on devices addressed with target ID 2. In fact, we have only ever seen -Surface Aggregator Module (SAM) HID devices with target ID 2. For those -devices, the registry also has to be addressed with target ID 2. - -Some devices, like the new Surface Laptop Studio, however, address their -HID devices on target ID 1. As a result of this, any target ID 2 -commands time out. This includes event management commands addressed to -the target ID 2 REG-category registry. For these devices, the registry -has to be addressed via target ID 1 instead. - -We therefore assume that the target ID of the registry to be used -depends on the target ID of the respective device. Implement this -accordingly. - -Fixes: b05ff1002a5c1 ("HID: Add support for Surface Aggregator Module HID transport") -Signed-off-by: Maximilian Luz -Patchset: surface-sam ---- - drivers/hid/surface-hid/surface_hid.c | 2 +- - include/linux/surface_aggregator/controller.h | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/hid/surface-hid/surface_hid.c b/drivers/hid/surface-hid/surface_hid.c -index a3a70e4f3f6c..daa452367c0b 100644 ---- a/drivers/hid/surface-hid/surface_hid.c -+++ b/drivers/hid/surface-hid/surface_hid.c -@@ -209,7 +209,7 @@ static int surface_hid_probe(struct ssam_device *sdev) - - shid->notif.base.priority = 1; - shid->notif.base.fn = ssam_hid_event_fn; -- shid->notif.event.reg = SSAM_EVENT_REGISTRY_REG; -+ shid->notif.event.reg = SSAM_EVENT_REGISTRY_REG(sdev->uid.target); - shid->notif.event.id.target_category = sdev->uid.category; - shid->notif.event.id.instance = sdev->uid.instance; - shid->notif.event.mask = SSAM_EVENT_MASK_STRICT; -diff --git a/include/linux/surface_aggregator/controller.h b/include/linux/surface_aggregator/controller.h -index 068e1982ad37..74bfdffaf7b0 100644 ---- a/include/linux/surface_aggregator/controller.h -+++ b/include/linux/surface_aggregator/controller.h -@@ -792,8 +792,8 @@ enum ssam_event_mask { - #define SSAM_EVENT_REGISTRY_KIP \ - SSAM_EVENT_REGISTRY(SSAM_SSH_TC_KIP, 0x02, 0x27, 0x28) - --#define SSAM_EVENT_REGISTRY_REG \ -- SSAM_EVENT_REGISTRY(SSAM_SSH_TC_REG, 0x02, 0x01, 0x02) -+#define SSAM_EVENT_REGISTRY_REG(tid)\ -+ SSAM_EVENT_REGISTRY(SSAM_SSH_TC_REG, tid, 0x01, 0x02) - - /** - * enum ssam_event_notifier_flags - Flags for event notifiers. --- -2.33.1 - -From 3b9a4fc7befbb7a711183fc6e7af8f6e8f23124f Mon Sep 17 00:00:00 2001 -From: Maximilian Luz -Date: Sun, 10 Oct 2021 19:48:10 +0200 -Subject: [PATCH] HID: surface-hid: Allow driver matching for target ID 1 - devices - -Until now we have only ever seen HID devices with target ID 2. The new -Surface Laptop Studio however uses HID devices with target ID 1. Allow -matching this driver to those as well. - -Fixes: b05ff1002a5c1 ("HID: Add support for Surface Aggregator Module HID transport") -Signed-off-by: Maximilian Luz -Patchset: surface-sam ---- - drivers/hid/surface-hid/surface_hid.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/hid/surface-hid/surface_hid.c b/drivers/hid/surface-hid/surface_hid.c -index daa452367c0b..d4aa8c81903a 100644 ---- a/drivers/hid/surface-hid/surface_hid.c -+++ b/drivers/hid/surface-hid/surface_hid.c -@@ -230,7 +230,7 @@ static void surface_hid_remove(struct ssam_device *sdev) - } - - static const struct ssam_device_id surface_hid_match[] = { -- { SSAM_SDEV(HID, 0x02, SSAM_ANY_IID, 0x00) }, -+ { SSAM_SDEV(HID, SSAM_ANY_TID, SSAM_ANY_IID, 0x00) }, - { }, - }; - MODULE_DEVICE_TABLE(ssam, surface_hid_match); --- -2.33.1 - -From 7fc0013a248d32ab3e913da0198b93ad9d45db3a Mon Sep 17 00:00:00 2001 +From f6611d8d35d47d43b7aae454a36d69232c430958 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Thu, 28 Oct 2021 03:28:45 +0200 Subject: [PATCH] platform/surface: aggregator_registry: Add initial support @@ -256,9 +56,9 @@ index 1679811eff50..e70f4c63554e 100644 { "MSHW0107", (unsigned long)ssam_node_group_gen5 }, -- -2.33.1 +2.34.0 -From 73b5b5bc6f383caba88b7d9ff5f9606f913b0e82 Mon Sep 17 00:00:00 2001 +From 11a1289287c02cfec4efbdd63f85dea6d68284f2 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Wed, 2 Jun 2021 03:34:06 +0200 Subject: [PATCH] platform/surface: aggregator: Make client device removal more @@ -381,9 +181,9 @@ index f636c5310321..cc257097eb05 100644 /** -- -2.33.1 +2.34.0 -From e9bf80fbd9c74eb63b04c89341a66f3d47983bf8 Mon Sep 17 00:00:00 2001 +From 4a84f3d00f6fa73d2d423f737b31e574b5a5f30a Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Wed, 27 Oct 2021 02:06:38 +0200 Subject: [PATCH] platform/surface: aggregator_registry: Use generic client @@ -469,9 +269,9 @@ index e70f4c63554e..f6c639342b9d 100644 software_node_unregister_node_group(nodes); return 0; -- -2.33.1 +2.34.0 -From 6f583d9399de37829661bfd7bcfc4991f4969f1f Mon Sep 17 00:00:00 2001 +From a801735c964f387be196a2d63d22b030667d592e Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Wed, 27 Oct 2021 02:07:33 +0200 Subject: [PATCH] platform/surface: aggregator_registry: Rename device @@ -520,9 +320,9 @@ index f6c639342b9d..ce2bd88feeaa 100644 set_secondary_fwnode(&pdev->dev, NULL); software_node_unregister_node_group(nodes); -- -2.33.1 +2.34.0 -From 6330e21dbf21bf6ba91f6bbfce533ea8b974b6e4 Mon Sep 17 00:00:00 2001 +From b18657a4239bad3b786edb87311b130403a5a1fd Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Tue, 8 Jun 2021 00:24:47 +0200 Subject: [PATCH] platform/surface: aggregator: Allow devices to be marked as @@ -548,48 +348,18 @@ attempts should be avoided. Signed-off-by: Maximilian Luz Patchset: surface-sam --- - drivers/platform/surface/aggregator/bus.c | 33 +++++++++++++++ - include/linux/surface_aggregator/device.h | 50 +++++++++++++++++++++-- - 2 files changed, 80 insertions(+), 3 deletions(-) + drivers/platform/surface/aggregator/bus.c | 3 ++ + include/linux/surface_aggregator/device.h | 48 +++++++++++++++++++++-- + 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/drivers/platform/surface/aggregator/bus.c b/drivers/platform/surface/aggregator/bus.c -index eaa8626baead..9cb6337f2b35 100644 +index eaa8626baead..736cc43c9104 100644 --- a/drivers/platform/surface/aggregator/bus.c +++ b/drivers/platform/surface/aggregator/bus.c -@@ -390,6 +390,39 @@ void ssam_remove_clients(struct device *dev) +@@ -390,6 +390,9 @@ void ssam_remove_clients(struct device *dev) } EXPORT_SYMBOL_GPL(ssam_remove_clients); -+static int ssam_mark_device_hot_removed(struct device *dev, void *_data) -+{ -+ struct ssam_device *sdev = to_ssam_device(dev); -+ -+ if (is_ssam_device(dev)) -+ ssam_device_mark_hot_removed(sdev); -+ -+ return 0; -+} -+ -+/** -+ * ssam_hot_remove_clients() - Remove SSAM client devices registered as direct -+ * children under the given parent device and mark them as hot-removed. -+ * @dev: The (parent) device to remove all direct clients for. -+ * -+ * Remove all SSAM client devices registered as direct children under the given -+ * device. -+ * -+ * Note that this only accounts for direct children of the device. Refer to -+ * ssam_device_add()/ssam_device_remove() for more details. -+ */ -+void ssam_hot_remove_clients(struct device *dev) -+{ -+ /* Mark devices as hot-removed before we remove any */ -+ device_for_each_child_reverse(dev, NULL, ssam_mark_device_hot_removed); -+ -+ ssam_remove_clients(dev); -+} -+EXPORT_SYMBOL_GPL(ssam_hot_remove_clients); -+ + +/* -- Bus registration. ----------------------------------------------------- */ + @@ -597,7 +367,7 @@ index eaa8626baead..9cb6337f2b35 100644 * ssam_bus_register() - Register and set-up the SSAM client device bus. */ diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h -index cc257097eb05..b474a9baab42 100644 +index cc257097eb05..491aa7e9f4bc 100644 --- a/include/linux/surface_aggregator/device.h +++ b/include/linux/surface_aggregator/device.h @@ -148,17 +148,30 @@ struct ssam_device_uid { @@ -670,21 +440,10 @@ index cc257097eb05..b474a9baab42 100644 /** * ssam_device_get() - Increment reference count of SSAM client device. * @sdev: The device to increment the reference count of. -@@ -323,8 +365,10 @@ void ssam_device_driver_unregister(struct ssam_device_driver *d); - - #ifdef CONFIG_SURFACE_AGGREGATOR_BUS - void ssam_remove_clients(struct device *dev); -+void ssam_hot_remove_clients(struct device *dev); - #else /* CONFIG_SURFACE_AGGREGATOR_BUS */ - static inline void ssam_remove_clients(struct device *dev) {} -+static inline void ssam_hot_remove_clients(struct device *dev) {} - #endif /* CONFIG_SURFACE_AGGREGATOR_BUS */ - - -- -2.33.1 +2.34.0 -From 309a345d3ac9de7aa4e1cff5962a9bbc7ef11d63 Mon Sep 17 00:00:00 2001 +From f95d6ac5874db1bb881ffa482abc35f94bb13f5e Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Tue, 8 Jun 2021 00:48:22 +0200 Subject: [PATCH] platform/surface: aggregator: Allow notifiers to avoid @@ -900,10 +659,10 @@ index 74bfdffaf7b0..50a2b4926c06 100644 int ssam_controller_event_enable(struct ssam_controller *ctrl, struct ssam_event_registry reg, diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h -index b474a9baab42..76e6300b07d5 100644 +index 491aa7e9f4bc..16816c34da3e 100644 --- a/include/linux/surface_aggregator/device.h +++ b/include/linux/surface_aggregator/device.h -@@ -474,4 +474,64 @@ static inline void ssam_hot_remove_clients(struct device *dev) {} +@@ -472,4 +472,64 @@ static inline void ssam_remove_clients(struct device *dev) {} sdev->uid.instance, ret); \ } @@ -969,9 +728,9 @@ index b474a9baab42..76e6300b07d5 100644 + #endif /* _LINUX_SURFACE_AGGREGATOR_DEVICE_H */ -- -2.33.1 +2.34.0 -From e0920d9db80af76d6565d0586c579bb92a434109 Mon Sep 17 00:00:00 2001 +From fe2e44cf86dee61dc84b56f76d432e8b87c2710a Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Tue, 8 Jun 2021 01:20:49 +0200 Subject: [PATCH] platform/surface: aggregator_registry: Use client device @@ -1018,9 +777,9 @@ index ce2bd88feeaa..9f630e890ff7 100644 ssam_remove_clients(&sdev->dev); } -- -2.33.1 +2.34.0 -From dbc85b40fd9fbf9666d579a0005714bedaed9984 Mon Sep 17 00:00:00 2001 +From 05ded3f8005f37297e5c47821d43c24dc243250c Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Thu, 28 Oct 2021 03:37:06 +0200 Subject: [PATCH] power/supply: surface_charger: Use client device wrappers for @@ -1058,9 +817,9 @@ index a060c36c7766..59182d55742d 100644 static const struct spwr_psy_properties spwr_psy_props_adp1 = { -- -2.33.1 +2.34.0 -From 30b9a249d902af97b84ff5724dfab2fcfc3bbb1f Mon Sep 17 00:00:00 2001 +From 18b5e32f9cf968307c604677143eea7dec7a8533 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Thu, 28 Oct 2021 03:38:09 +0200 Subject: [PATCH] power/supply: surface_battery: Use client device wrappers for @@ -1098,9 +857,9 @@ index 5ec2e6bb2465..540707882bb0 100644 } -- -2.33.1 +2.34.0 -From 2b149705154463781c20609b8e8ca3fbaba6746d Mon Sep 17 00:00:00 2001 +From 43c9f03affd1b3e0ecf04a370efe3ffa463a26c9 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Tue, 8 Jun 2021 01:33:02 +0200 Subject: [PATCH] HID: surface-hid: Add support for hot-removal @@ -1209,9 +968,9 @@ index 5571e74abe91..d2e695e942b6 100644 return shid->ops.output_report(shid, reportnum, buf, len); -- -2.33.1 +2.34.0 -From 3da92dff35f34cacc8c570365049ba90c35765cc Mon Sep 17 00:00:00 2001 +From 4b49b3f485689ddf1e9fbb4280c7ab4a8eb405ff Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 31 Oct 2021 12:34:08 +0100 Subject: [PATCH] platform/surface: aggregator: Add comment for KIP subsystem @@ -1247,9 +1006,9 @@ index c3de43edcffa..d1efac85caf1 100644 SSAM_SSH_TC_BLD = 0x10, SSAM_SSH_TC_BAS = 0x11, /* Detachment system (Surface Book 2/3). */ -- -2.33.1 +2.34.0 -From 020865d1eb65d24de1364de0a36552ba90a9f012 Mon Sep 17 00:00:00 2001 +From e0933caec88e7140b057a8ce85a21b9797fd567c Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 10 Oct 2021 23:56:23 +0200 Subject: [PATCH] platform/surface: aggregator_registry: Add KIP device hub @@ -1282,14 +1041,14 @@ been (re-)attached. Signed-off-by: Maximilian Luz Patchset: surface-sam --- - .../surface/surface_aggregator_registry.c | 233 +++++++++++++++++- - 1 file changed, 231 insertions(+), 2 deletions(-) + .../surface/surface_aggregator_registry.c | 247 +++++++++++++++++- + 1 file changed, 245 insertions(+), 2 deletions(-) diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c -index 9f630e890ff7..5b39047985dd 100644 +index 9f630e890ff7..4838ce6519a6 100644 --- a/drivers/platform/surface/surface_aggregator_registry.c +++ b/drivers/platform/surface/surface_aggregator_registry.c -@@ -514,6 +514,223 @@ static struct ssam_device_driver ssam_base_hub_driver = { +@@ -514,6 +514,237 @@ static struct ssam_device_driver ssam_base_hub_driver = { }; @@ -1384,6 +1143,16 @@ index 9f630e890ff7..5b39047985dd 100644 + .attrs = ssam_kip_hub_attrs, +}; + ++static int ssam_kip_hub_mark_hot_removed(struct device *dev, void *_data) ++{ ++ struct ssam_device *sdev = to_ssam_device(dev); ++ ++ if (is_ssam_device(dev)) ++ ssam_device_mark_hot_removed(sdev); ++ ++ return 0; ++} ++ +static void ssam_kip_hub_update_workfn(struct work_struct *work) +{ + struct ssam_kip_hub *hub = container_of(work, struct ssam_kip_hub, update_work.work); @@ -1402,7 +1171,7 @@ index 9f630e890ff7..5b39047985dd 100644 + if (hub->state == SSAM_KIP_HUB_CONNECTED) + status = ssam_hub_register_clients(&hub->sdev->dev, hub->sdev->ctrl, node); + else -+ ssam_hot_remove_clients(&hub->sdev->dev); ++ ssam_remove_clients(&hub->sdev->dev); + + if (status) + dev_err(&hub->sdev->dev, "failed to update KIP-hub devices: %d\n", status); @@ -1421,13 +1190,17 @@ index 9f630e890ff7..5b39047985dd 100644 + return 0; + } + ++ /* Mark devices as hot-removed before we remove any */ ++ if (!event->data[0]) ++ device_for_each_child_reverse(&hub->sdev->dev, NULL, ssam_kip_hub_mark_hot_removed); ++ + /* + * Delay update when KIP devices are being connected to give devices/EC + * some time to set up. + */ + 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; +} + @@ -1513,7 +1286,7 @@ index 9f630e890ff7..5b39047985dd 100644 /* -- SSAM platform/meta-hub driver. ---------------------------------------- */ static const struct acpi_device_id ssam_platform_hub_match[] = { -@@ -636,18 +853,30 @@ static int __init ssam_device_hub_init(void) +@@ -636,18 +867,30 @@ static int __init ssam_device_hub_init(void) status = platform_driver_register(&ssam_platform_hub_driver); if (status) @@ -1547,9 +1320,9 @@ index 9f630e890ff7..5b39047985dd 100644 platform_driver_unregister(&ssam_platform_hub_driver); } -- -2.33.1 +2.34.0 -From fb14fe967e41801e0050965f7be63657dacffc62 Mon Sep 17 00:00:00 2001 +From 0fc4fd278cac0d5f3274656187d706f75ef48008 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Wed, 27 Oct 2021 22:33:03 +0200 Subject: [PATCH] platform/surface: aggregator_registry: Add support for @@ -1580,7 +1353,7 @@ Patchset: surface-sam 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 +index 4838ce6519a6..c0e29c0514df 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 = { @@ -1645,9 +1418,9 @@ index 5b39047985dd..e5eae4dde71a 100644 }; -- -2.33.1 +2.34.0 -From 997fe771e91b60b11e1ff5cc99bfc80e609d5e5f Mon Sep 17 00:00:00 2001 +From 50b107f14ef9e33f8510d726630138f69f2cf480 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Tue, 8 Jun 2021 03:19:20 +0200 Subject: [PATCH] platform/surface: Add KIP tablet-mode switch @@ -1989,9 +1762,9 @@ index 000000000000..458470067579 +MODULE_DESCRIPTION("Tablet mode switch driver for Surface devices using KIP subsystem"); +MODULE_LICENSE("GPL"); -- -2.33.1 +2.34.0 -From 5b2dee5fdc3a9e844fc7cc0e4733127430ea1b72 Mon Sep 17 00:00:00 2001 +From 2b1685c0a906769031590c7bfc0793bcc6fb9e98 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Wed, 27 Oct 2021 22:33:03 +0200 Subject: [PATCH] platform/surface: aggregator_registry: Add support for tablet @@ -2009,7 +1782,7 @@ Patchset: surface-sam 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 -index e5eae4dde71a..4a397c5bb45f 100644 +index c0e29c0514df..eaf0054627a5 100644 --- a/drivers/platform/surface/surface_aggregator_registry.c +++ b/drivers/platform/surface/surface_aggregator_registry.c @@ -77,6 +77,12 @@ static const struct software_node ssam_node_tmp_pprof = { @@ -2039,9 +1812,9 @@ index e5eae4dde71a..4a397c5bb45f 100644 }; -- -2.33.1 +2.34.0 -From 5d405c2219ac9f06c3d3955ba4e2e1bb158e308c Mon Sep 17 00:00:00 2001 +From fea397d2b114521a7e4cbc13998e451ebd9796ad Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Thu, 28 Oct 2021 03:40:22 +0200 Subject: [PATCH] power/supply: surface_battery: Add support for hot-removal @@ -2080,9 +1853,9 @@ index 540707882bb0..ebf1f96e9a89 100644 if (status) return status; -- -2.33.1 +2.34.0 -From ba4f7ee6a0887349b50e6e4a81508ad57321bab2 Mon Sep 17 00:00:00 2001 +From 1610b9bfd7295dfdde50ffc777a7d88c6a7e9531 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 31 Oct 2021 18:07:39 +0100 Subject: [PATCH] platform/surface: aggregator_registry: Use KIP hub for @@ -2118,7 +1891,7 @@ Patchset: surface-sam 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 +index eaf0054627a5..d17f656b2dad 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 = { @@ -2218,9 +1991,9 @@ index 4a397c5bb45f..391bfb35aaa9 100644 }; -- -2.33.1 +2.34.0 -From f615952c5b582b5a297088d75332a22e5c16f42e Mon Sep 17 00:00:00 2001 +From 236abbbef8f8a528621e839383e357f50591cb7c Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 31 Oct 2021 18:09:53 +0100 Subject: [PATCH] platform/surface: aggregator_registry: Remove base hub driver @@ -2243,7 +2016,7 @@ Patchset: surface-sam 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 +index d17f656b2dad..590473220e9d 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 @@ -2459,7 +2232,7 @@ index 391bfb35aaa9..57927483a9ed 100644 /* -- SSAM KIP-subsystem hub driver. ---------------------------------------- */ /* -@@ -872,10 +666,6 @@ static int __init ssam_device_hub_init(void) +@@ -886,10 +680,6 @@ static int __init ssam_device_hub_init(void) if (status) goto err_platform; @@ -2470,7 +2243,7 @@ index 391bfb35aaa9..57927483a9ed 100644 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) +@@ -897,8 +687,6 @@ static int __init ssam_device_hub_init(void) return 0; err_kip: @@ -2479,7 +2252,7 @@ index 391bfb35aaa9..57927483a9ed 100644 platform_driver_unregister(&ssam_platform_hub_driver); err_platform: return status; -@@ -894,7 +682,6 @@ module_init(ssam_device_hub_init); +@@ -908,7 +696,6 @@ module_init(ssam_device_hub_init); static void __exit ssam_device_hub_exit(void) { ssam_device_driver_unregister(&ssam_kip_hub_driver); @@ -2488,5 +2261,5 @@ index 391bfb35aaa9..57927483a9ed 100644 } module_exit(ssam_device_hub_exit); -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0006-surface-sam-over-hid.patch b/patches/5.14/0006-surface-sam-over-hid.patch index 1f93a6144..d464ed94a 100644 --- a/patches/5.14/0006-surface-sam-over-hid.patch +++ b/patches/5.14/0006-surface-sam-over-hid.patch @@ -1,4 +1,4 @@ -From b40e81a56f9139ce3ebb83d67b301fecee7b9c7b Mon Sep 17 00:00:00 2001 +From 93a1213b90b28361a0df7a96b087aa0ab2ff105f Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 25 Jul 2020 17:19:53 +0200 Subject: [PATCH] i2c: acpi: Implement RawBytes read access @@ -108,9 +108,9 @@ index 74925621f239..169713964358 100644 dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n", accessor_type, client->addr); -- -2.33.1 +2.34.0 -From 6fd774b96b43a088c6631da07fc202f50492f1d7 Mon Sep 17 00:00:00 2001 +From 6cbc6203a8929aacd63257100c9b7a2160adf7fd Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sat, 13 Feb 2021 16:41:18 +0100 Subject: [PATCH] platform/surface: Add driver for Surface Book 1 dGPU switch @@ -331,5 +331,5 @@ index 000000000000..8b816ed8f35c +MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1"); +MODULE_LICENSE("GPL"); -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0007-surface-gpe.patch b/patches/5.14/0007-surface-gpe.patch index d8e45b7bd..afa856f29 100644 --- a/patches/5.14/0007-surface-gpe.patch +++ b/patches/5.14/0007-surface-gpe.patch @@ -1,4 +1,4 @@ -From 65e85d7eca560c91b7a0dad6adab6ca49157f44c Mon Sep 17 00:00:00 2001 +From 7e5f221e11e90bb48db72531ac144d7bdfc9e9a1 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Sun, 10 Oct 2021 00:02:44 +0200 Subject: [PATCH] platform/surface: gpe: Add support for Surface Laptop Studio @@ -44,9 +44,9 @@ index 86f6991b1215..c1775db29efb 100644 }; -- -2.33.1 +2.34.0 -From 3ca2a82e0c84612793f51c5f99a01ff43f80c53c Mon Sep 17 00:00:00 2001 +From c91d2440570c52e33c4a5c518452413d25e2cb21 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Wed, 27 Oct 2021 00:56:11 +0200 Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 8 @@ -81,5 +81,5 @@ index c1775db29efb..ec66fde28e75 100644 .ident = "Surface Book 1", .matches = { -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0008-surface-button.patch b/patches/5.14/0008-surface-button.patch index a188679b8..d90fa6798 100644 --- a/patches/5.14/0008-surface-button.patch +++ b/patches/5.14/0008-surface-button.patch @@ -1,4 +1,4 @@ -From 23e646c914baef7279f6ad92e12e905ba5df6da5 Mon Sep 17 00:00:00 2001 +From 49d6cd6417adf1df985e7b90c5e48a743162333f Mon Sep 17 00:00:00 2001 From: Sachi King Date: Tue, 5 Oct 2021 00:05:09 +1100 Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices @@ -73,9 +73,9 @@ index cb6ec59a045d..4e8944f59def 100644 /* -- -2.33.1 +2.34.0 -From 060331f8c4ae8f0d936eae62bcc2af79e834867a Mon Sep 17 00:00:00 2001 +From c97966112f5fe77962a750b70c7899dcd535cc01 Mon Sep 17 00:00:00 2001 From: Sachi King Date: Tue, 5 Oct 2021 00:22:57 +1100 Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd @@ -145,5 +145,5 @@ index 242fb690dcaf..30eea54dbb47 100644 -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0009-surface-typecover.patch b/patches/5.14/0009-surface-typecover.patch index 09f30785a..02254015a 100644 --- a/patches/5.14/0009-surface-typecover.patch +++ b/patches/5.14/0009-surface-typecover.patch @@ -1,4 +1,4 @@ -From ca524440e3f1d64f2857a5fb399e4a1f6d99e3c2 Mon Sep 17 00:00:00 2001 +From da5a9a75b947342ff8695abb61ecc90d4f71f03b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Thu, 5 Nov 2020 13:09:45 +0100 Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when @@ -229,5 +229,5 @@ index 3ea7cb1cda84..92fb053e0dd2 100644 { .driver_data = MT_CLS_GOOGLE, HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE, -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0010-cameras.patch b/patches/5.14/0010-cameras.patch index 8869067a0..d3f7c16e4 100644 --- a/patches/5.14/0010-cameras.patch +++ b/patches/5.14/0010-cameras.patch @@ -1,4 +1,4 @@ -From 28dd1dab5af733a73cd4845a64b91b8ff6b55b1d Mon Sep 17 00:00:00 2001 +From 92a75d7afacee622b3f426bc75c7b59aeb36d304 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Mon, 5 Apr 2021 23:56:53 +0100 Subject: [PATCH] media: ipu3-cio2: Toggle sensor streaming in pm runtime ops @@ -56,9 +56,9 @@ index 47db0ee0fcbf..7bb86e246ebe 100644 return r; } -- -2.33.1 +2.34.0 -From d54fbbce361379be893ce4789813a18717549ff3 Mon Sep 17 00:00:00 2001 +From aef7dcd154115d18e90e2bc4b48891730ecff98b Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Mon, 5 Apr 2021 23:56:54 +0100 Subject: [PATCH] media: i2c: Add support for ov5693 sensor @@ -102,10 +102,10 @@ index 5713585d060d..33fdad7a7ddf 100644 M: Shunqian Zheng L: linux-media@vger.kernel.org diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index 588f8eb95984..dee06f535f2c 100644 +index bde7fb021564..b2ac84d78b91 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig -@@ -1014,6 +1014,17 @@ config VIDEO_OV5675 +@@ -1015,6 +1015,17 @@ config VIDEO_OV5675 To compile this driver as a module, choose M here: the module will be called ov5675. @@ -1699,9 +1699,9 @@ index 000000000000..9499ee10f56c +MODULE_DESCRIPTION("A low-level driver for OmniVision 5693 sensors"); +MODULE_LICENSE("GPL"); -- -2.33.1 +2.34.0 -From 528b2fc27439092dba57e2b5cf6e0ad2e69d6fd2 Mon Sep 17 00:00:00 2001 +From 7e9c49131077a564296f86e3d3e1813448b0fdae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= Date: Fri, 22 Jan 2021 20:58:13 +0100 Subject: [PATCH] cio2-bridge: Parse sensor orientation and rotation @@ -1862,9 +1862,9 @@ index dd0ffcafa489..924d99d20328 100644 struct property_entry ep_properties[5]; struct property_entry dev_properties[3]; -- -2.33.1 +2.34.0 -From dbb9663e679268c88fdb00de6f6963773a6f35df Mon Sep 17 00:00:00 2001 +From e163137f9b923398a4d31e3a21fe78486974d0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= Date: Sun, 24 Jan 2021 11:07:42 +0100 Subject: [PATCH] cio2-bridge: Use macros and add warnings @@ -1966,9 +1966,9 @@ index 924d99d20328..e1e388cc9f45 100644 (const struct cio2_sensor_config) { \ .hid = _HID, \ -- -2.33.1 +2.34.0 -From 81c402b4c0b078450b652a6d2b0cf69b2fb5a916 Mon Sep 17 00:00:00 2001 +From d6e2797aba5ac844c067d177000d8a7966481adc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20W=C3=BCthrich?= Date: Thu, 6 May 2021 07:52:44 +0200 Subject: [PATCH] cio2-bridge: Use correct dev_properties size @@ -1992,9 +1992,9 @@ index e1e388cc9f45..deaf5804f70d 100644 struct software_node_ref_args local_ref[1]; struct software_node_ref_args remote_ref[1]; -- -2.33.1 +2.34.0 -From 380c6ff391a7ac671f0a44a8fa9da7bda02eb7c5 Mon Sep 17 00:00:00 2001 +From d12db7dfc3e8a96d138c575811131acd50f227da Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Thu, 20 May 2021 23:31:04 +0100 Subject: [PATCH] media: i2c: Fix vertical flip in ov5693 @@ -2027,9 +2027,9 @@ index 9499ee10f56c..c558f9b48c83 100644 #define OV5693_FORMAT1_VBIN_EN BIT(0) #define OV5693_FORMAT2_REG 0x3821 -- -2.33.1 +2.34.0 -From 70e7b4702fa4f5da78348f73a837c78b45a0ec8e Mon Sep 17 00:00:00 2001 +From daec57877a80e0d8f6657619fffada365a5b6371 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Fri, 9 Jul 2021 16:39:18 +0100 Subject: [PATCH] media: i2c: Add ACPI support to ov8865 @@ -2078,9 +2078,9 @@ index ce50f3ea87b8..7626c8608f8f 100644 }, .probe_new = ov8865_probe, -- -2.33.1 +2.34.0 -From 3fb72d24bdcd545197b24f1ab2a5f133f1e0ed5e Mon Sep 17 00:00:00 2001 +From 9213ddc74a32af22cb5de8af6e0a249fa9ed8351 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sat, 10 Jul 2021 21:20:17 +0100 Subject: [PATCH] media: i2c: Fix incorrect value in comment @@ -2109,9 +2109,9 @@ index 7626c8608f8f..8e3f8a554452 100644 static const struct ov8865_pll2_config ov8865_pll2_config_binning = { -- -2.33.1 +2.34.0 -From 999b8757e1ad67a08374e5dbaa7e0d3a666d241b Mon Sep 17 00:00:00 2001 +From 5c3e54c1c791a2b7781bf37572d8e8c2f602dffa Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sat, 10 Jul 2021 22:21:52 +0100 Subject: [PATCH] media: i2c: Defer probe if not endpoint found @@ -2146,9 +2146,9 @@ index 8e3f8a554452..9bc8d5d8199b 100644 sensor->endpoint.bus_type = V4L2_MBUS_CSI2_DPHY; -- -2.33.1 +2.34.0 -From e96f95b377f8ee333aa367b49e69117e6ce6bdef Mon Sep 17 00:00:00 2001 +From d7e4c156c95f8a52d1290b245cc9b7144c2e750d Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sat, 10 Jul 2021 22:00:25 +0100 Subject: [PATCH] media: i2c: Support 19.2MHz input clock in ov8865 @@ -2505,9 +2505,9 @@ index 9bc8d5d8199b..4ddc1b277cc0 100644 subdev = &sensor->subdev; -- -2.33.1 +2.34.0 -From c722d9b9c68bc426cb43be926ec929dac1d2e118 Mon Sep 17 00:00:00 2001 +From 82e605cd4e01ec30e300e0c03a5c805ce311ef86 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sat, 10 Jul 2021 22:19:10 +0100 Subject: [PATCH] media: i2c: Add .get_selection() support to ov8865 @@ -2610,9 +2610,9 @@ index 4ddc1b277cc0..0f2776390a8e 100644 static const struct v4l2_subdev_ops ov8865_subdev_ops = { -- -2.33.1 +2.34.0 -From f1017005566229d429f93cbac89370a40cbe043b Mon Sep 17 00:00:00 2001 +From 66365119072809fd0a13addb7149ec8637b564a1 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sat, 10 Jul 2021 22:34:43 +0100 Subject: [PATCH] media: i2c: Switch control to V4L2_CID_ANALOGUE_GAIN @@ -2663,9 +2663,9 @@ index 0f2776390a8e..a832938c33b6 100644 /* White Balance */ -- -2.33.1 +2.34.0 -From 37af8ee97837efe970708cd5430dac5c9c69c5f8 Mon Sep 17 00:00:00 2001 +From c49266bfb501eeb85eba0420be36e42ffcbd7063 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Mon, 12 Jul 2021 22:54:56 +0100 Subject: [PATCH] media: i2c: Add vblank control to ov8865 @@ -2773,9 +2773,9 @@ index a832938c33b6..f741c0713ca4 100644 if (ret) goto error_mutex; -- -2.33.1 +2.34.0 -From c7595278105f28dd60207c4caf67e445c2055ed1 Mon Sep 17 00:00:00 2001 +From 808fd37ee10d2cca8e039c3ae88cb8a9191b3eed Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 13 Jul 2021 23:40:33 +0100 Subject: [PATCH] media: i2c: Add hblank control to ov8865 @@ -2843,9 +2843,9 @@ index f741c0713ca4..4b18cc80f985 100644 mutex_unlock(&sensor->mutex); -- -2.33.1 +2.34.0 -From 075ff37dc44049c5151f8a294157fc589ceae374 Mon Sep 17 00:00:00 2001 +From 94ef87e674e1e6a3585b34aebf00c612f189c7ec Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 20 Oct 2021 22:43:54 +0100 Subject: [PATCH] media: i2c: Update HTS values in ov8865 @@ -3019,9 +3019,9 @@ index 4b18cc80f985..1b8674152750 100644 .set_selection = ov8865_get_selection, }; -- -2.33.1 +2.34.0 -From 20058e6e75d55598e006c6dea5fd7124c0495657 Mon Sep 17 00:00:00 2001 +From 34188431bc1debbcba03078f71629f03a044343a Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 13 Jul 2021 23:43:17 +0100 Subject: [PATCH] media: i2c: cap exposure at height + vblank in ov8865 @@ -3102,9 +3102,9 @@ index 1b8674152750..99548ad15dcd 100644 mutex_unlock(&sensor->mutex); -- -2.33.1 +2.34.0 -From d33f599ff03d4a66543668c1c9892721f0a6b7fc Mon Sep 17 00:00:00 2001 +From 50e23908b0e79c2f2b936b136b6050fae46fed5c Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Fri, 16 Jul 2021 22:56:15 +0100 Subject: [PATCH] media: i2c: Add controls from fwnode to ov8865 @@ -3147,9 +3147,9 @@ index 99548ad15dcd..dfb5095ef16b 100644 ret = handler->error; goto error_ctrls; -- -2.33.1 +2.34.0 -From 947260101f41138887676af51cbc8aa72c04ad5e Mon Sep 17 00:00:00 2001 +From 6464bee63f9a1de50640765b8942e142d8e73d3c Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Fri, 16 Jul 2021 00:00:54 +0100 Subject: [PATCH] media: i2c: Switch exposure control unit to lines @@ -3194,9 +3194,9 @@ index dfb5095ef16b..5f19d82554df 100644 /* Gain */ -- -2.33.1 +2.34.0 -From b9cdbdb63554d53a0ba892e8f1f541ffa79ea6ad Mon Sep 17 00:00:00 2001 +From db9b9acd48871e17f9b2ebb11c77a3512496e154 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 24 Aug 2021 22:39:02 +0100 Subject: [PATCH] media: i2c: Re-order runtime pm initialisation @@ -3230,9 +3230,9 @@ index 5f19d82554df..18b5f1e8e9a7 100644 /* V4L2 subdev register */ -- -2.33.1 +2.34.0 -From a77a6e79cf0e77b3e5c9bc4fb0bd2188a9740c63 Mon Sep 17 00:00:00 2001 +From 4be77309a0952399f9ff05ce08129ddc35936c77 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Tue, 24 Aug 2021 23:17:39 +0100 Subject: [PATCH] media: i2c: Use dev_err_probe() in ov8865 @@ -3313,9 +3313,9 @@ index 18b5f1e8e9a7..19e6bebf340d 100644 sensor->extclk = devm_clk_get(dev, NULL); -- -2.33.1 +2.34.0 -From e5183dcb2d82741c125a26a925b6531433d87032 Mon Sep 17 00:00:00 2001 +From 8058a58388e75455a71addd0f9c2bc8fba1ab0ad Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Wed, 14 Jul 2021 00:05:04 +0100 Subject: [PATCH] media: ipu3-cio2: Add INT347A to cio2-bridge @@ -3346,9 +3346,9 @@ index 7e582135dfb8..0132f0bd9b41 100644 CIO2_SENSOR_CONFIG("OVTI2680", 0), }; -- -2.33.1 +2.34.0 -From 3f64446c71405792333d111e89ab3e60de2112e1 Mon Sep 17 00:00:00 2001 +From 20864ac9a8f63bfb299e092dba9fe8534aa46a10 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 7 Oct 2021 15:34:52 +0200 Subject: [PATCH] media: i2c: ov8865: Fix lockdep error @@ -3392,9 +3392,9 @@ index 19e6bebf340d..d5af8aedf5e8 100644 goto error_ctrls; -- -2.33.1 +2.34.0 -From ba2e70a891f22604ba1281c4389674ce0baf2dbf Mon Sep 17 00:00:00 2001 +From 719656084e09243f5ad1a6f795d5f74dd72f4867 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:56:57 +0200 Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an @@ -3455,7 +3455,7 @@ Patchset: cameras 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c -index b24513ec3fae..e7ecf07e2f54 100644 +index ae9464091f1b..4a5cc1d695b4 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -797,6 +797,12 @@ static const char * const acpi_ignore_dep_ids[] = { @@ -3575,9 +3575,9 @@ index 13d93371790e..2da53b7b4965 100644 struct acpi_device * acpi_dev_get_next_match_dev(struct acpi_device *adev, const char *hid, const char *uid, s64 hrv); -- -2.33.1 +2.34.0 -From 38b720b94de4b289bb1e428b14fbd5fee9e1b925 Mon Sep 17 00:00:00 2001 +From 7d90f6ec28235414b69af24ff2cab4d172c8ad1a Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:56:58 +0200 Subject: [PATCH] i2c: acpi: Use acpi_dev_ready_for_enumeration() helper @@ -3627,9 +3627,9 @@ index 169713964358..9f0e719cd2c8 100644 return -ENODEV; -- -2.33.1 +2.34.0 -From 66773af0687c37b77540bd27afaa5a8105fb1f9e Mon Sep 17 00:00:00 2001 +From 2eacb6feb10dd81f94140bb16dbef6c335d20b9b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:56:59 +0200 Subject: [PATCH] platform_data: Add linux/platform_data/tps68470.h file @@ -3700,9 +3700,9 @@ index 000000000000..126d082c3f2e + +#endif -- -2.33.1 +2.34.0 -From 05687f4439867d3c06f8ca26613923cee29faf67 Mon Sep 17 00:00:00 2001 +From 2f1936ac79975f2a90f821bac31cf20c76a8bbce Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:57:00 +0200 Subject: [PATCH] regulator: Introduce tps68470-regulator driver @@ -3962,9 +3962,9 @@ index 000000000000..3129fa13a122 +MODULE_DESCRIPTION("TPS68470 voltage regulator driver"); +MODULE_LICENSE("GPL v2"); -- -2.33.1 +2.34.0 -From ea168f7419ab473ce30162a769928c787798c24d Mon Sep 17 00:00:00 2001 +From d114fbffa257b641e5f21a3d65878ec0ff6a012f Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:57:01 +0200 Subject: [PATCH] clk: Introduce clk-tps68470 driver @@ -4307,9 +4307,9 @@ index ffe81127d91c..7807fa329db0 100644 #define TPS68470_GPIO_CTL_REG_B(x) (TPS68470_REG_GPCTL0B + (x) * 2) #define TPS68470_GPIO_MODE_MASK GENMASK(1, 0) -- -2.33.1 +2.34.0 -From fe33cecefb8c58b7372c6a583bc761dbd41d6b89 Mon Sep 17 00:00:00 2001 +From 235191b72abd1f1b529b5917c3f6fe60415ae4f5 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sun, 10 Oct 2021 20:57:02 +0200 Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain @@ -4344,9 +4344,9 @@ index c05b4cf502fe..42e688f4cad4 100644 return 0; -- -2.33.1 +2.34.0 -From e404a7c0533ed5a3e6495f0f9e59aa2eb2377d60 Mon Sep 17 00:00:00 2001 +From eef319f98c64c8e155be21f592cbb16ef30da91e Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:57:03 +0200 Subject: [PATCH] platform/x86: int3472: Split into 2 drivers @@ -4603,9 +4603,9 @@ index 42e688f4cad4..b94cf66ab61f 100644 +MODULE_AUTHOR("Daniel Scally "); +MODULE_LICENSE("GPL v2"); -- -2.33.1 +2.34.0 -From e717efd33a6af813f21be9fc4b9aa916c4e241cf Mon Sep 17 00:00:00 2001 +From 25895ad4036113835c557ee75f9f9c524d56adb7 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:57:04 +0200 Subject: [PATCH] platform/x86: int3472: Add get_sensor_adev_and_name() helper @@ -4716,9 +4716,9 @@ index 856602a2f6bb..22a4894f1cc7 100644 static int skl_int3472_discrete_remove(struct platform_device *pdev) -- -2.33.1 +2.34.0 -From 342e99a0510d1313ba2785b17ab577c219ca5caf Mon Sep 17 00:00:00 2001 +From 3ed4113df3ad5142e726a54ae3c6592733ee8367 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:57:05 +0200 Subject: [PATCH] platform/x86: int3472: Pass tps68470_clk_platform_data to the @@ -4804,9 +4804,9 @@ index b94cf66ab61f..78e34e7b6969 100644 case DESIGNED_FOR_CHROMEOS: ret = devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_NONE, -- -2.33.1 +2.34.0 -From f205216097aed67507a12d765a86f6046f4ec104 Mon Sep 17 00:00:00 2001 +From 63ac25978683d2ab14df13c54f566c1e49558d77 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:57:06 +0200 Subject: [PATCH] platform/x86: int3472: Pass tps68470_regulator_platform_data @@ -5098,9 +5098,9 @@ index 000000000000..96954a789bb8 + return NULL; +} -- -2.33.1 +2.34.0 -From c00d9ee7012e2c93588e884122cbd8622653ef12 Mon Sep 17 00:00:00 2001 +From d6ccffda8953c4027933bd1d9a8e8d08794d737b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Oct 2021 20:57:07 +0200 Subject: [PATCH] platform/x86: int3472: Deal with probe ordering issues @@ -5182,9 +5182,9 @@ index aae24d228770..21c6c1a6edfc 100644 MODULE_LICENSE("GPL v2"); +MODULE_SOFTDEP("pre: clk-tps68470 tps68470-regulator"); -- -2.33.1 +2.34.0 -From af507d1d69d831dccb6f629d8d1e0f056f0afece Mon Sep 17 00:00:00 2001 +From 64c49983fc05d4f61403f89c1640710efcaf6373 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Thu, 22 Jul 2021 00:20:46 +0100 Subject: [PATCH] Revert "media: device property: Call @@ -5224,9 +5224,9 @@ index d0874f6c29bb..4d7ff55df95d 100644 EXPORT_SYMBOL_GPL(fwnode_graph_get_endpoint_by_id); -- -2.33.1 +2.34.0 -From 5942065b686018337d49ca32573b1f6edf2fb90a Mon Sep 17 00:00:00 2001 +From 4a3ae1cf1b9f54a434dfc7bfbf9cb9a28a311133 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Sun, 18 Jul 2021 23:52:42 +0100 Subject: [PATCH] device property: Check fwnode->secondary in @@ -5279,9 +5279,9 @@ index 4d7ff55df95d..453918eb7390 100644 EXPORT_SYMBOL_GPL(fwnode_graph_get_next_endpoint); -- -2.33.1 +2.34.0 -From f97e37b494b1cbf6a614cda61c797dd9b49bbd85 Mon Sep 17 00:00:00 2001 +From cdfc01465ee94ccc1a18afca99de9e63cc9dae34 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Thu, 4 Nov 2021 21:46:27 +0000 Subject: [PATCH] media: i2c: Add integration time margin to ov8865 @@ -5321,9 +5321,9 @@ index d5af8aedf5e8..966487e32bfe 100644 sensor->ctrls.exposure->minimum, exposure_max, -- -2.33.1 +2.34.0 -From c950c98f88c87007a5bb70abdddfff9550d98874 Mon Sep 17 00:00:00 2001 +From 65117e827b931d5b5b62bc8428ee3543efbb422c Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Thu, 4 Nov 2021 21:48:38 +0000 Subject: [PATCH] media: i2c: Fix max gain in ov8865 @@ -5353,5 +5353,5 @@ index 966487e32bfe..6c78edb65d1e 100644 /* White Balance */ -- -2.33.1 +2.34.0 diff --git a/patches/5.14/0011-amd-gpio.patch b/patches/5.14/0011-amd-gpio.patch index fccd14642..be3ddd47d 100644 --- a/patches/5.14/0011-amd-gpio.patch +++ b/patches/5.14/0011-amd-gpio.patch @@ -1,4 +1,4 @@ -From fcb1c8922dfaa1c33cc8d67a2d5cfed2b5890d12 Mon Sep 17 00:00:00 2001 +From 67dc820f8128554bf33bf737be1b28a9fb7178a3 Mon Sep 17 00:00:00 2001 From: Sachi King Date: Sat, 29 May 2021 17:47:38 +1000 Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7 @@ -63,9 +63,9 @@ index e55e0c1fad8c..46dfad41b401 100644 mp_config_acpi_legacy_irqs(); -- -2.33.1 +2.34.0 -From f4905ebd551d592c93ba1459b36053ff75b90a59 Mon Sep 17 00:00:00 2001 +From 203d2a88203f6e8648ec869f9a017dc21c17cab8 Mon Sep 17 00:00:00 2001 From: Maximilian Luz Date: Thu, 3 Jun 2021 14:04:26 +0200 Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override @@ -105,118 +105,5 @@ index 46dfad41b401..78bf6a097dc5 100644 }; -- -2.33.1 - -From 7a56ff456c6e33d688ada47459fde5a2439ee3a3 Mon Sep 17 00:00:00 2001 -From: Basavaraj Natikar -Date: Tue, 31 Aug 2021 17:36:12 +0530 -Subject: [PATCH] pinctrl: amd: Add irq field data - -pinctrl_amd use gpiochip_get_data() to get their local state containers -back from the gpiochip passed as amd_gpio chip data. - -Hence added irq field data to get directly using amd_gpio chip data. - -Signed-off-by: Basavaraj Natikar -Patchset: amd-gpio ---- - drivers/pinctrl/pinctrl-amd.c | 9 ++++----- - drivers/pinctrl/pinctrl-amd.h | 1 + - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c -index c5fd75bbf5d9..613f3175acda 100644 ---- a/drivers/pinctrl/pinctrl-amd.c -+++ b/drivers/pinctrl/pinctrl-amd.c -@@ -932,7 +932,6 @@ static struct pinctrl_desc amd_pinctrl_desc = { - static int amd_gpio_probe(struct platform_device *pdev) - { - int ret = 0; -- int irq_base; - struct resource *res; - struct amd_gpio *gpio_dev; - struct gpio_irq_chip *girq; -@@ -955,9 +954,9 @@ static int amd_gpio_probe(struct platform_device *pdev) - if (!gpio_dev->base) - return -ENOMEM; - -- irq_base = platform_get_irq(pdev, 0); -- if (irq_base < 0) -- return irq_base; -+ gpio_dev->irq = platform_get_irq(pdev, 0); -+ if (gpio_dev->irq < 0) -+ return gpio_dev->irq; - - #ifdef CONFIG_PM_SLEEP - gpio_dev->saved_regs = devm_kcalloc(&pdev->dev, amd_pinctrl_desc.npins, -@@ -1020,7 +1019,7 @@ static int amd_gpio_probe(struct platform_device *pdev) - goto out2; - } - -- ret = devm_request_irq(&pdev->dev, irq_base, amd_gpio_irq_handler, -+ ret = devm_request_irq(&pdev->dev, gpio_dev->irq, amd_gpio_irq_handler, - IRQF_SHARED, KBUILD_MODNAME, gpio_dev); - if (ret) - goto out2; -diff --git a/drivers/pinctrl/pinctrl-amd.h b/drivers/pinctrl/pinctrl-amd.h -index 95e763424042..1d4317073654 100644 ---- a/drivers/pinctrl/pinctrl-amd.h -+++ b/drivers/pinctrl/pinctrl-amd.h -@@ -98,6 +98,7 @@ struct amd_gpio { - struct resource *res; - struct platform_device *pdev; - u32 *saved_regs; -+ int irq; - }; - - /* KERNCZ configuration*/ --- -2.33.1 - -From 21c7c4af5bfb8426569eabc3a7bff221e0cd48cb Mon Sep 17 00:00:00 2001 -From: Basavaraj Natikar -Date: Tue, 31 Aug 2021 17:36:13 +0530 -Subject: [PATCH] pinctrl: amd: Handle wake-up interrupt - -Enable/disable power management wakeup mode, which is disabled by -default. enable_irq_wake enables wakes the system from sleep. - -Hence added enable/disable irq_wake to handle wake-up interrupt. - -Signed-off-by: Basavaraj Natikar -Patchset: amd-gpio ---- - drivers/pinctrl/pinctrl-amd.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c -index 613f3175acda..80b67cd7c008 100644 ---- a/drivers/pinctrl/pinctrl-amd.c -+++ b/drivers/pinctrl/pinctrl-amd.c -@@ -445,6 +445,7 @@ static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on) - struct gpio_chip *gc = irq_data_get_irq_chip_data(d); - struct amd_gpio *gpio_dev = gpiochip_get_data(gc); - u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3); -+ int err; - - raw_spin_lock_irqsave(&gpio_dev->lock, flags); - pin_reg = readl(gpio_dev->base + (d->hwirq)*4); -@@ -457,6 +458,15 @@ static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on) - writel(pin_reg, gpio_dev->base + (d->hwirq)*4); - raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); - -+ if (on) -+ err = enable_irq_wake(gpio_dev->irq); -+ else -+ err = disable_irq_wake(gpio_dev->irq); -+ -+ if (err) -+ dev_err(&gpio_dev->pdev->dev, "failed to %s wake-up interrupt\n", -+ on ? "enable" : "disable"); -+ - return 0; - } - --- -2.33.1 +2.34.0 diff --git a/patches/5.14/0012-misc-fixes.patch b/patches/5.14/0012-misc-fixes.patch index cd3178339..1458ed288 100644 --- a/patches/5.14/0012-misc-fixes.patch +++ b/patches/5.14/0012-misc-fixes.patch @@ -1,4 +1,4 @@ -From 84b7c183f256bfb411af2aca08e5b3f9e7672e40 Mon Sep 17 00:00:00 2001 +From 417141a5157f7982f13fdd717ef4e1e7ebec6dbf Mon Sep 17 00:00:00 2001 From: Mathias Nyman Date: Fri, 29 Oct 2021 15:51:54 +0300 Subject: [PATCH] xhci: Fix commad ring abort, write all 64 bits to CRCR @@ -66,5 +66,5 @@ index 8fedf1bf292b..3dd5929b67f0 100644 /* Section 4.6.1.2 of xHCI 1.0 spec says software should also time the * completion of the Command Abort operation. If CRR is not negated in 5 -- -2.33.1 +2.34.0