rtlwifi: btcoex: 21a 2ant: run mechanism if status changes or auto adjust is set
authorYan-Hsuan Chuang <yhchuang@realtek.com>
Thu, 11 May 2017 19:01:15 +0000 (14:01 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 18 May 2017 14:07:30 +0000 (17:07 +0300)
The driver will periodically ask the coex, and the coex only runs the
mechanism when the status was changed or the auto adjust is set.

Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Pkshih <pkshih@realtek.com>
Cc: Birming Chiu <birming@realtek.com>
Cc: Shaofu <shaofu@realtek.com>
Cc: Steven Ting <steventing@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c

index ca7649dca35232f701d4c52320b2e35a1cbeace6..0d97e214ee105f4845509f49857de3bd84261a1d 100644 (file)
@@ -3485,14 +3485,14 @@ static void btc8821a2ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
        if (btc8821a2ant_is_common_action(btcoexist)) {
                RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
                         "[BTCoex], Action 2-Ant common\n");
-               coex_dm->reset_tdma_adjust = true;
+               coex_dm->auto_tdma_adjust = true;
        } else {
                if (coex_dm->cur_algorithm != coex_dm->pre_algorithm) {
                        RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
                                 "[BTCoex], pre_algorithm = %d, cur_algorithm = %d\n",
                                    coex_dm->pre_algorithm,
                                    coex_dm->cur_algorithm);
-                       coex_dm->reset_tdma_adjust = true;
+                       coex_dm->auto_tdma_adjust = false;
                }
                switch (coex_dm->cur_algorithm) {
                case BT_8821A_2ANT_COEX_ALGO_SCO:
@@ -4200,7 +4200,14 @@ void ex_btc8821a2ant_periodical(struct btc_coexist *btcoexist)
                         "[BTCoex], ****************************************************************\n");
        }
 
-       btc8821a2ant_query_bt_info(btcoexist);
-       btc8821a2ant_monitor_bt_ctr(btcoexist);
-       btc8821a2ant_monitor_wifi_ctr(btcoexist);
+       if (btcoexist->auto_report_2ant) {
+               btc8821a2ant_query_bt_info(btcoexist);
+       } else {
+               btc8821a2ant_monitor_bt_ctr(btcoexist);
+               btc8821a2ant_monitor_wifi_ctr(btcoexist);
+
+               if (btc8821a2ant_is_wifi_status_changed(btcoexist) ||
+                   coex_dm->auto_tdma_adjust)
+                       btc8821a2ant_run_coexist_mechanism(btcoexist);
+       }
 }