wifi: rtw89: coex: When Bluetooth not available don't set power/gain
authorChing-Te Ku <ku920601@realtek.com>
Thu, 29 Feb 2024 07:45:13 +0000 (15:45 +0800)
committerKalle Valo <kvalo@kernel.org>
Tue, 5 Mar 2024 18:54:46 +0000 (20:54 +0200)
If Bluetooth is working, it will update their info regularly. And the code
will increase the counters while the info updating. Use this counter to
judge is Bluetooth working or not. Don't need to set Bluetooth power or
gain when it is not working.

Signed-off-by: Ching-Te Ku <ku920601@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240229074514.219276-8-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/coex.c

index c74b1b6be2d31e6276a717012c69f29314dd85d8..6a1f9a555ce756c43af95e42ea6de5ca4496fdea 100644 (file)
@@ -2311,6 +2311,9 @@ static void _set_bt_tx_power(struct rtw89_dev *rtwdev, u8 level)
        int ret;
        u8 buf;
 
+       if (btc->cx.cnt_bt[BTC_BCNT_INFOUPDATE] == 0)
+               return;
+
        if (bt->rf_para.tx_pwr_freerun == level)
                return;
 
@@ -2333,6 +2336,9 @@ static void _set_bt_rx_gain(struct rtw89_dev *rtwdev, u8 level)
        struct rtw89_btc *btc = &rtwdev->btc;
        struct rtw89_btc_bt_info *bt = &btc->cx.bt;
 
+       if (btc->cx.cnt_bt[BTC_BCNT_INFOUPDATE] == 0)
+               return;
+
        if ((bt->rf_para.rx_gain_freerun == level ||
             level > BTC_BT_RX_NORMAL_LVL) &&
            (!rtwdev->chip->scbd || bt->lna_constrain == level))