rtlwifi: btcoex: 21a 2ant: wifi is linking action
authorYan-Hsuan Chuang <yhchuang@realtek.com>
Sat, 15 Apr 2017 20:32:00 +0000 (15:32 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 20 Apr 2017 07:25:46 +0000 (10:25 +0300)
When wifi is under scanning/linking/roaming, do not run the reset of the
coex mechanism because these activities are important for wifi, just run
the linking process and return.

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>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c

index 0aa36247e402312e1ca537bb603e6ad8bb1acba0..841b4a83ab70c8f3c5c343702b4a9b7ad7c8e5cc 100644 (file)
@@ -3467,6 +3467,7 @@ static void btc8821a2ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
        u32 num_of_wifi_link = 0;
        u32 wifi_link_status = 0;
        bool miracast_plus_bt = false;
+       bool scan = false, link = false, roam = false;
 
        if (btcoexist->manual_control) {
                RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
@@ -3498,6 +3499,17 @@ static void btc8821a2ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
                return;
        }
 
+       btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
+       btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
+       btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
+
+       if (scan || link || roam) {
+               RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
+                        "[BTCoex], WiFi is under Link Process !!\n");
+               btc8821a2ant_action_wifi_link_process(btcoexist);
+               return;
+       }
+
        /* for P2P */
        btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
                           &wifi_link_status);