wifi: rtw88: Fix action frame transmission fail before association
authorPo-Hao Huang <phhuang@realtek.com>
Thu, 15 Jun 2023 11:43:48 +0000 (19:43 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 21 Jun 2023 09:40:26 +0000 (12:40 +0300)
For combo chips, antennas were controlled by bluetooth only during
power on. If WiFi wish to do transmission, notification to the coexistence
module are required. Previously we only do this before authentication.
To allow transmission before auth, such as management TX, now we start
the initiation of coexistence earlier so antennas are shared between
WiFi and bluetooth after set_channel(), and frames could then be sent.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230615114348.7193-1-pkshih@realtek.com
drivers/net/wireless/realtek/rtw88/ps.c

index 53933fb38a33084dcbdb81f68ba8f524e73feb02..43e80a3a8136d34aee8c52bc140199a04013b0ae 100644 (file)
@@ -18,6 +18,7 @@ static int rtw_ips_pwr_up(struct rtw_dev *rtwdev)
        if (ret)
                rtw_err(rtwdev, "leave idle state failed\n");
 
+       rtw_coex_ips_notify(rtwdev, COEX_IPS_LEAVE);
        rtw_set_channel(rtwdev);
 
        return ret;
@@ -63,8 +64,6 @@ int rtw_leave_ips(struct rtw_dev *rtwdev)
 
        rtw_iterate_vifs(rtwdev, rtw_restore_port_cfg_iter, rtwdev);
 
-       rtw_coex_ips_notify(rtwdev, COEX_IPS_LEAVE);
-
        return 0;
 }