Commit 2fb9ca23 authored by Yan-Hsuan Chuang's avatar Yan-Hsuan Chuang Committed by Kalle Valo
Browse files

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: default avatarYan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: default avatarLarry 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: default avatarKalle Valo <kvalo@codeaurora.org>
parent 8113b9c4
Loading
Loading
Loading
Loading
+14 −17
Original line number Diff line number Diff line
@@ -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);
	}
}