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)
{
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,
0x0, 0x0);
/* tdma and coex table */
if (coex_dm->bt_status == BT_8821A_1ANT_BT_STATUS_ACL_BUSY) {
if (bt_link_info->a2dp_exist && bt_link_info->pan_exist) {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC,
true, 22);
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);
if ((bt_link_info->sco_exist) || (bt_link_info->hid_exist) ||
(bt_link_info->a2dp_exist)) {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
}
} else {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
if ((bt_link_info->hid_exist) && (bt_link_info->a2dp_exist)) {
btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
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);
}
}