rtlwifi: btcoex: 21a 1ant: more bt profiling when wifi receives special packet

Consider bt profiling is sco or hid to set coex table and tdma.

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>
This commit is contained in:
Yan-Hsuan Chuang 2017-05-11 18:24:30 -05:00 committed by Kalle Valo
parent 8113b9c400
commit 2fb9ca230f
1 changed files with 14 additions and 17 deletions

View File

@ -1753,29 +1753,26 @@ void btc8821a1ant_action_wifi_connected_scan(struct btc_coexist *btcoexist)
static void btc8821a1ant_act_wifi_conn_sp_pkt(struct btc_coexist *btcoexist) static void btc8821a1ant_act_wifi_conn_sp_pkt(struct btc_coexist *btcoexist)
{ {
struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
bool hs_connecting = false;
btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_CONNECTING, &hs_connecting);
btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
0x0, 0x0); 0x0, 0x0);
/* tdma and coex table */ /* tdma and coex table */
if (coex_dm->bt_status == BT_8821A_1ANT_BT_STATUS_ACL_BUSY) { if ((bt_link_info->sco_exist) || (bt_link_info->hid_exist) ||
if (bt_link_info->a2dp_exist && bt_link_info->pan_exist) { (bt_link_info->a2dp_exist)) {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
true, 22); btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
btc8821a1ant_coex_table_with_type(btcoexist, }
NORMAL_EXEC, 1);
} else { if ((bt_link_info->hid_exist) && (bt_link_info->a2dp_exist)) {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
true, 20);
btc8821a1ant_coex_table_with_type(btcoexist,
NORMAL_EXEC, 1);
}
} else {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
} else if (bt_link_info->pan_exist) {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
} else {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
} }
} }