OSDN Git Service

rtw88: coex: change the coexistence mechanism for WLAN connected
authorChing-Te Ku <ku920601@realtek.com>
Thu, 26 Nov 2020 02:10:55 +0000 (10:10 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 2 Dec 2020 19:23:58 +0000 (21:23 +0200)
Add a flag to make decision whether the mechanism
should go into free-run mode or not.
For now, it is always false, the flag assignment will
be implemented later.

Signed-off-by: Ching-Te Ku <ku920601@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201126021059.11981-7-pkshih@realtek.com
drivers/net/wireless/realtek/rtw88/coex.c

index 8ea5e11..fc96641 100644 (file)
@@ -2179,6 +2179,7 @@ static void rtw_coex_action_wl_connected(struct rtw_dev *rtwdev)
        struct rtw_coex_stat *coex_stat = &coex->stat;
        struct rtw_coex_dm *coex_dm = &coex->dm;
        struct rtw_efuse *efuse = &rtwdev->efuse;
+       bool freerun_check = false;
        u8 algorithm;
 
        /* Non-Shared-Ant */
@@ -2198,10 +2199,15 @@ static void rtw_coex_action_wl_connected(struct rtw_dev *rtwdev)
                rtw_coex_action_bt_hfp(rtwdev);
                break;
        case COEX_ALGO_HID:
-               rtw_coex_action_bt_hid(rtwdev);
+               if (freerun_check)
+                       rtw_coex_action_freerun(rtwdev);
+               else
+                       rtw_coex_action_bt_hid(rtwdev);
                break;
        case COEX_ALGO_A2DP:
-               if (coex_stat->bt_a2dp_sink)
+               if (freerun_check)
+                       rtw_coex_action_freerun(rtwdev);
+               else if (coex_stat->bt_a2dp_sink)
                        rtw_coex_action_bt_a2dpsink(rtwdev);
                else
                        rtw_coex_action_bt_a2dp(rtwdev);
@@ -2210,7 +2216,10 @@ static void rtw_coex_action_wl_connected(struct rtw_dev *rtwdev)
                rtw_coex_action_bt_pan(rtwdev);
                break;
        case COEX_ALGO_A2DP_HID:
-               rtw_coex_action_bt_a2dp_hid(rtwdev);
+               if (freerun_check)
+                       rtw_coex_action_freerun(rtwdev);
+               else
+                       rtw_coex_action_bt_a2dp_hid(rtwdev);
                break;
        case COEX_ALGO_A2DP_PAN:
                rtw_coex_action_bt_a2dp_pan(rtwdev);