From: Yan-Hsuan Chuang <[email protected]>

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 <[email protected]>
Signed-off-by: Larry Finger <[email protected]>
Cc: Pkshih <[email protected]>
Cc: Birming Chiu <[email protected]>
Cc: Shaofu <[email protected]>
---
 .../net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c 
b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
index 0aa36247e402..841b4a83ab70 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8821a2ant.c
@@ -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);
-- 
2.12.0

Reply via email to