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:
 - ef9e57a6d3
This commit is contained in:
Maximilian Luz 2021-11-20 04:00:13 +01:00
parent 92434f39fc
commit ca770074d8
No known key found for this signature in database
GPG key ID: 70EC0937F6C26F02
12 changed files with 271 additions and 866 deletions

View file

@ -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 <kitakar@gmail.com>
Date: Sun, 18 Oct 2020 16:42:44 +0900
Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
@ -97,5 +97,5 @@ index 227424236fd5..1013a57be89a 100644
};
--
2.33.1
2.34.0

View file

@ -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?= <verdre@v0yd.nl>
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 <kitakar@gmail.com>
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 <kitakar@gmail.com>
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 <kitakar@gmail.com>
Date: Wed, 30 Sep 2020 18:08:24 +0900
Subject: [PATCH] mwifiex: pcie: (OEMB) add quirk for Surface 3 with broken DMI
@ -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 <kitakar@gmail.com>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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?= <verdre@v0yd.nl>
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

View file

@ -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 <luzmaximilian@gmail.com>
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

View file

@ -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 <dorian.stoll@tmsp.io>
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 <dorian.stoll@tmsp.io>
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

View file

@ -1,204 +1,4 @@
From cf255208929a10009fe06419ad91fe5f182e8831 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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

View file

@ -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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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

View file

@ -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 <luzmaximilian@gmail.com>
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 <luzmaximilian@gmail.com>
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

View file

@ -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 <nakato@nakato.io>
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 <nakato@nakato.io>
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

View file

@ -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?= <verdre@v0yd.nl>
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

View file

@ -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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <zhengsq@rock-chips.com>
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?= <me@fabwu.ch>
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?= <me@fabwu.ch>
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?= <me@fabwu.ch>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
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 <djrscally@gmail.com>
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 <hdegoede@redhat.com>
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 <djrscally@gmail.com>");
+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 <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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 <djrscally@gmail.com>
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

View file

@ -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 <nakato@nakato.io>
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 <luzmaximilian@gmail.com>
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 <Basavaraj.Natikar@amd.com>
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 <Basavaraj.Natikar@amd.com>
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 <Basavaraj.Natikar@amd.com>
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 <Basavaraj.Natikar@amd.com>
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

View file

@ -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 <mathias.nyman@linux.intel.com>
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