rtlwifi: btcoex: 23b 2ant: detect ap num and set GNT_BT properly
authorYan-Hsuan Chuang <yhchuang@realtek.com>
Tue, 4 Apr 2017 16:49:56 +0000 (11:49 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 13 Apr 2017 14:08:35 +0000 (17:08 +0300)
If ap num < 10, let wifi and bt transmit simultaneously, otherwise set
wifi into standy when bt is transmitting

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/halbtc8723b2ant.c

index 30b2b93e92cacf37e1bda255692cc9a686d4c90d..eaf909295a694c33defcf4b48986f340690e816b 100644 (file)
@@ -2831,6 +2831,7 @@ void ex_btc8723b2ant_media_status_notify(struct btc_coexist *btcoexist,
        u8 h2c_parameter[3] = {0};
        u32 wifi_bw;
        u8 wifi_central_chnl;
+       u8 ap_num = 0;
 
        if (BTC_MEDIA_CONNECT == type)
                RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
@@ -2848,10 +2849,16 @@ void ex_btc8723b2ant_media_status_notify(struct btc_coexist *btcoexist,
                h2c_parameter[1] = wifi_central_chnl;
                btcoexist->btc_get(btcoexist,
                        BTC_GET_U4_WIFI_BW, &wifi_bw);
-               if (BTC_WIFI_BW_HT40 == wifi_bw)
+               if (wifi_bw == BTC_WIFI_BW_HT40) {
                        h2c_parameter[2] = 0x30;
-               else
-                       h2c_parameter[2] = 0x20;
+               } else {
+                       btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
+                                          &ap_num);
+                       if (ap_num < 10)
+                               h2c_parameter[2] = 0x30;
+                       else
+                               h2c_parameter[2] = 0x20;
+               }
        }
 
        coex_dm->wifi_chnl_info[0] = h2c_parameter[0];