|
@@ -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)
|
|
|
- btc8821a1ant_act_wifi_not_conn_scan(btcoexist);
|
|
|
- else
|
|
|
+ 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);
|