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 53933fb..43e80a3 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;
 }