Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

rtlwifi: btcoex: 21a 1ant: action when associating/authenticating



When wifi is associating or authenticating, set the coex table for wifi
to establish link. These packets should have higher priority.

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 06a75324
Loading
Loading
Loading
Loading
+30 −3
Original line number Diff line number Diff line
@@ -1486,6 +1486,28 @@ void btc8821a1ant_action_wifi_multi_port(struct btc_coexist *btcoexist)
	btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
}

static
void btc8821a1ant_action_wifi_not_connected_asso_auth(
					struct btc_coexist *btcoexist)
{
	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;

	btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, 0x0,
				      0x0);

	/* tdma and coex table */
	if ((bt_link_info->sco_exist) || (bt_link_info->hid_exist)) {
		btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
		btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
	} else if ((bt_link_info->a2dp_exist) || (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);
	}
}


static void btc8821a1ant_action_hs(struct btc_coexist *btcoexist)
{
@@ -1941,10 +1963,15 @@ static void btc8821a1ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);

		if (scan || link || roam)
		if (scan || link || roam) {
			if (scan)
				btc8821a1ant_act_wifi_not_conn_scan(btcoexist);
			else
				btc8821a1ant_action_wifi_not_connected_asso_auth(
					btcoexist);
		} else {
			btc8821a1ant_action_wifi_not_connected(btcoexist);
		}
	} else {
		/* wifi LPS/Busy */
		btc8821a1ant_action_wifi_connected(btcoexist);