summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo-Hao Huang <phhuang@realtek.com>2024-10-21 14:32:19 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-12-05 14:01:49 +0100
commitb229a6d87a65d463d83023d928b39c94c9c0f59a (patch)
tree9b09fd33cd70b4c6202f1863cf15047daaec019a
parent1e32011108aa707cdfd92bb7f5dec58a44ca0eb1 (diff)
wifi: rtw89: Fix TX fail with A2DP after scanning
[ Upstream commit f16c40acd31901ad0ba2554b60e0e2b0c7b59cde ] There might be some racing between BT and WiFi after scan. Since one of the TX related register will be modified by both FW and rtw89_set_channel() in driver, which could cause Tx fail. Reorder the calling sequence to only notify coexistence mechanism after rtw89_set_channel() is called, so that there are no concurrent operations. Fixes: 5f499ce69b8d ("wifi: rtw89: pause/proceed MCC for ROC and HW scan") Signed-off-by: Po-Hao Huang <phhuang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20241021063219.22613-1-pkshih@realtek.com Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/net/wireless/realtek/rtw89/fw.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c
index 37f931e88791..13a7c39ceb6f 100644
--- a/drivers/net/wireless/realtek/rtw89/fw.c
+++ b/drivers/net/wireless/realtek/rtw89/fw.c
@@ -6648,6 +6648,8 @@ void rtw89_hw_scan_complete(struct rtw89_dev *rtwdev,
if (!rtwvif_link)
return;
+ rtw89_chanctx_proceed(rtwdev);
+
rtwvif = rtwvif_link->rtwvif;
rtw89_write32_mask(rtwdev,
@@ -6667,8 +6669,6 @@ void rtw89_hw_scan_complete(struct rtw89_dev *rtwdev,
scan_info->last_chan_idx = 0;
scan_info->scanning_vif = NULL;
scan_info->abort = false;
-
- rtw89_chanctx_proceed(rtwdev);
}
void rtw89_hw_scan_abort(struct rtw89_dev *rtwdev,