rtlwifi: btcoex: 23b 1ant: fine tune connect notify
authorPing-Ke Shih <pkshih@realtek.com>
Fri, 19 May 2017 15:59:36 +0000 (10:59 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 24 May 2017 13:49:21 +0000 (16:49 +0300)
When association starts, force antenna setup for no scan result issue.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Yan-Hsuan Chuang <yhchuang@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/halbtc8723b1ant.c

index 5b44e32..61e8a7e 100644 (file)
@@ -2737,13 +2737,28 @@ void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
        bool wifi_connected = false, bt_hs_on = false;
        u32 wifi_link_status = 0;
        u32 num_of_wifi_link = 0;
-       bool bt_ctrl_agg_buf_size = false;
+       bool bt_ctrl_agg_buf_size = false, under_4way = false;
        u8 agg_buf_size = 5;
 
+       btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
+                          &under_4way);
+
        if (btcoexist->manual_control || btcoexist->stop_coex_dm ||
            coex_sta->bt_disabled)
                return;
 
+       if (type == BTC_ASSOCIATE_START) {
+               /* Force antenna setup for no scan result issue */
+               halbtc8723b1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 8);
+               halbtc8723b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_PTA,
+                                            FORCE_EXEC, false, false);
+               RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
+                        "[BTCoex], CONNECT START notify\n");
+       } else {
+               RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
+                        "[BTCoex], CONNECT FINISH notify\n");
+       }
+
        btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
                           &wifi_link_status);
        num_of_wifi_link = wifi_link_status>>16;