Lines Matching defs:btcoexist

25 static void btc8821a1ant_act_bt_sco_hid_only_busy(struct btc_coexist *btcoexist,
42 static u8 btc8821a1ant_bt_rssi_state(struct btc_coexist *btcoexist,
46 struct rtl_priv *rtlpriv = btcoexist->adapter;
130 static u8 btc8821a1ant_wifi_rssi_state(struct btc_coexist *btcoexist,
134 struct rtl_priv *rtlpriv = btcoexist->adapter;
138 btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi);
222 static void btc8821a1ant_update_ra_mask(struct btc_coexist *btcoexist,
229 btcoexist->btc_set(btcoexist, BTC_SET_ACT_UPDATE_RAMASK,
235 static void btc8821a1ant_auto_rate_fb_retry(struct btc_coexist *btcoexist,
246 btcoexist->btc_write_4byte(btcoexist, 0x430,
248 btcoexist->btc_write_4byte(btcoexist, 0x434,
252 btcoexist->btc_get(btcoexist,
256 btcoexist->btc_write_4byte(btcoexist, 0x430,
258 btcoexist->btc_write_4byte(btcoexist, 0x434,
261 btcoexist->btc_write_4byte(btcoexist, 0x430,
263 btcoexist->btc_write_4byte(btcoexist, 0x434,
275 static void btc8821a1ant_retry_limit(struct btc_coexist *btcoexist,
284 btcoexist->btc_write_2byte(btcoexist, 0x42a,
288 btcoexist->btc_write_2byte(btcoexist, 0x42a, 0x0808);
297 static void btc8821a1ant_ampdu_max_time(struct btc_coexist *btcoexist,
306 btcoexist->btc_write_1byte(btcoexist, 0x456,
310 btcoexist->btc_write_1byte(btcoexist, 0x456, 0x38);
320 static void btc8821a1ant_limited_tx(struct btc_coexist *btcoexist,
327 btc8821a1ant_update_ra_mask(btcoexist, force_exec, 0x0);
330 btc8821a1ant_update_ra_mask(btcoexist, force_exec,
334 btc8821a1ant_update_ra_mask(btcoexist, force_exec,
341 btc8821a1ant_auto_rate_fb_retry(btcoexist, force_exec, arfr_type);
342 btc8821a1ant_retry_limit(btcoexist, force_exec, retry_limit_type);
343 btc8821a1ant_ampdu_max_time(btcoexist, force_exec, ampdu_time_type);
346 static void btc8821a1ant_limited_rx(struct btc_coexist *btcoexist,
355 btcoexist->btc_set(btcoexist,
358 btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_CTRL_AGG_SIZE,
361 btcoexist->btc_set(btcoexist, BTC_SET_U1_AGG_BUF_SIZE, &rx_agg_size);
363 btcoexist->btc_set(btcoexist, BTC_SET_ACT_AGGREGATE_CTRL, NULL);
366 static void btc8821a1ant_monitor_bt_ctr(struct btc_coexist *btcoexist)
374 u4_tmp = btcoexist->btc_read_4byte(btcoexist, reg_hp_tx_rx);
378 u4_tmp = btcoexist->btc_read_4byte(btcoexist, reg_lp_tx_rx);
388 btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc);
391 static void btc8821a1ant_query_bt_info(struct btc_coexist *btcoexist)
393 struct rtl_priv *rtlpriv = btcoexist->adapter;
404 btcoexist->btc_fill_h2c(btcoexist, 0x61, 1, h2c_parameter);
407 static void btc8821a1ant_update_bt_link_info(struct btc_coexist *btcoexist)
409 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
412 btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
463 static u8 btc8821a1ant_action_algorithm(struct btc_coexist *btcoexist)
465 struct rtl_priv *rtlpriv = btcoexist->adapter;
466 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
471 btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
646 static void btc8821a1ant_set_sw_penalty_tx_rate(struct btc_coexist *btcoexist,
649 struct rtl_priv *rtlpriv = btcoexist->adapter;
667 btcoexist->btc_fill_h2c(btcoexist, 0x69, 6, h2c_parameter);
670 static void btc8821a1ant_low_penalty_ra(struct btc_coexist *btcoexist,
679 btc8821a1ant_set_sw_penalty_tx_rate(btcoexist,
685 static void btc8821a1ant_set_coex_table(struct btc_coexist *btcoexist,
689 struct rtl_priv *rtlpriv = btcoexist->adapter;
693 btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0);
697 btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4);
701 btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8);
705 btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc);
708 static void btc8821a1ant_coex_table(struct btc_coexist *btcoexist,
712 struct rtl_priv *rtlpriv = btcoexist->adapter;
730 btc8821a1ant_set_coex_table(btcoexist, val0x6c0, val0x6c4,
739 static void btc8821a1ant_coex_table_with_type(struct btc_coexist *btcoexist,
744 btc8821a1ant_coex_table(btcoexist, force_exec, 0x55555555,
748 btc8821a1ant_coex_table(btcoexist, force_exec, 0x55555555,
752 btc8821a1ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a,
756 btc8821a1ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a,
760 btc8821a1ant_coex_table(btcoexist, force_exec, 0x55555555,
764 btc8821a1ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a,
768 btc8821a1ant_coex_table(btcoexist, force_exec, 0x55555555,
772 btc8821a1ant_coex_table(btcoexist, force_exec, 0xaaaaaaaa,
780 static void btc8821a1ant_set_fw_ignore_wlan_act(struct btc_coexist *btcoexist,
783 struct rtl_priv *rtlpriv = btcoexist->adapter;
793 btcoexist->btc_fill_h2c(btcoexist, 0x63, 1, h2c_parameter);
796 static void btc8821a1ant_ignore_wlan_act(struct btc_coexist *btcoexist,
799 struct rtl_priv *rtlpriv = btcoexist->adapter;
816 btc8821a1ant_set_fw_ignore_wlan_act(btcoexist, enable);
821 static void btc8821a1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist, u8 byte1,
824 struct rtl_priv *rtlpriv = btcoexist->adapter;
829 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
863 btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter);
866 static void btc8821a1ant_set_lps_rpwm(struct btc_coexist *btcoexist,
872 btcoexist->btc_set(btcoexist, BTC_SET_U1_LPS_VAL, &lps);
873 btcoexist->btc_set(btcoexist, BTC_SET_U1_RPWM_VAL, &rpwm);
876 static void btc8821a1ant_lps_rpwm(struct btc_coexist *btcoexist,
879 struct rtl_priv *rtlpriv = btcoexist->adapter;
901 btc8821a1ant_set_lps_rpwm(btcoexist, lps_val, rpwm_val);
907 static void btc8821a1ant_sw_mechanism(struct btc_coexist *btcoexist,
910 struct rtl_priv *rtlpriv = btcoexist->adapter;
915 btc8821a1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra);
918 static void btc8821a1ant_set_ant_path(struct btc_coexist *btcoexist,
922 struct btc_board_info *board_info = &btcoexist->board_info;
928 u4_tmp = btcoexist->btc_read_4byte(btcoexist, 0x4c);
931 btcoexist->btc_write_4byte(btcoexist, 0x4c, u4_tmp);
933 btcoexist->btc_write_1byte_bitmask(btcoexist, 0x975, 0x3, 0x3);
934 btcoexist->btc_write_1byte(btcoexist, 0xcb4, 0x77);
942 btcoexist->btc_fill_h2c(btcoexist, 0x65, 2,
950 btcoexist->btc_fill_h2c(btcoexist, 0x65, 2,
957 u4_tmp = btcoexist->btc_read_4byte(btcoexist, 0x4c);
960 btcoexist->btc_write_4byte(btcoexist, 0x4c, u4_tmp);
963 btcoexist->btc_write_1byte_bitmask(btcoexist, 0x765, 0x18, 0x3);
966 btcoexist->btc_write_1byte_bitmask(btcoexist, 0x765, 0x18, 0x0);
972 btcoexist->btc_write_1byte(btcoexist, 0xcb4, 0x77);
974 btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb7,
977 btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb7,
981 btcoexist->btc_write_1byte(btcoexist, 0xcb4, 0x77);
983 btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb7,
986 btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb7,
991 btcoexist->btc_write_1byte(btcoexist, 0xcb4, 0x66);
993 btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb7,
996 btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb7,
1002 static void btc8821a1ant_ps_tdma(struct btc_coexist *btcoexist,
1005 struct rtl_priv *rtlpriv = btcoexist->adapter;
1028 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x1a,
1032 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x3a,
1037 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x2b,
1042 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x1d,
1046 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x93, 0x15,
1051 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x15,
1055 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x20,
1059 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x13, 0xc,
1063 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x93, 0x25,
1067 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x21,
1072 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x13, 0xa,
1076 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x15,
1081 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x0a,
1085 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x12,
1089 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x1e,
1093 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x13, 0xa,
1097 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x93, 0x15,
1102 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x93, 0x25,
1107 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x35,
1111 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x25,
1115 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x25,
1119 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x25,
1124 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x15,
1129 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0xa,
1134 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0xa,
1139 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x25,
1144 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x69, 0x25,
1148 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xab, 0x1a,
1152 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x30,
1156 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xd3, 0x1a,
1160 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x35,
1164 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xa3, 0x25,
1168 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x53, 0x1a,
1172 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x63, 0x1a,
1176 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0xd3, 0x12,
1186 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x23, 0x18,
1190 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x15,
1194 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x20,
1198 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x30,
1207 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x8, 0x0, 0x0,
1209 btc8821a1ant_set_ant_path(btcoexist, BTC_ANT_PATH_PTA,
1215 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0,
1217 btc8821a1ant_set_ant_path(btcoexist, BTC_ANT_PATH_BT,
1222 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0,
1224 btc8821a1ant_set_ant_path(btcoexist, BTC_ANT_PATH_WIFI,
1229 btc8821a1ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0,
1231 btc8821a1ant_set_ant_path(btcoexist, BTC_ANT_PATH_BT,
1237 btcoexist->btc_set(btcoexist,
1245 static bool btc8821a1ant_is_common_action(struct btc_coexist *btcoexist)
1247 struct rtl_priv *rtlpriv = btcoexist->adapter;
1250 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
1252 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
1259 btc8821a1ant_sw_mechanism(btcoexist, false);
1267 btc8821a1ant_sw_mechanism(btcoexist, false);
1275 btc8821a1ant_sw_mechanism(btcoexist, false);
1283 btc8821a1ant_sw_mechanism(btcoexist, false);
1291 btc8821a1ant_sw_mechanism(btcoexist, false);
1335 static void btc8821a1ant_power_save_state(struct btc_coexist *btcoexist,
1344 btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER,
1346 btcoexist->btc_set(btcoexist, BTC_SET_ACT_NORMAL_LPS, NULL);
1349 btc8821a1ant_ps_tdma_check_for_pwr_save(btcoexist,
1351 btc8821a1ant_lps_rpwm(btcoexist, NORMAL_EXEC, lps_val,
1355 btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER,
1358 btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL);
1361 btc8821a1ant_ps_tdma_check_for_pwr_save(btcoexist, false);
1362 btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL);
1369 static void btc8821a1ant_coex_under_5g(struct btc_coexist *btcoexist)
1371 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
1373 btc8821a1ant_ignore_wlan_act(btcoexist, NORMAL_EXEC, true);
1375 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 10);
1377 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
1379 btc8821a1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
1381 btc8821a1ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 5);
1391 static void btc8821a1ant_action_sco(struct btc_coexist *btcoexist)
1393 btc8821a1ant_sw_mechanism(btcoexist, true);
1396 static void btc8821a1ant_action_hid(struct btc_coexist *btcoexist)
1398 btc8821a1ant_sw_mechanism(btcoexist, true);
1402 static void btc8821a1ant_action_a2dp(struct btc_coexist *btcoexist)
1404 btc8821a1ant_sw_mechanism(btcoexist, false);
1407 static void btc8821a1ant_action_a2dp_pan_hs(struct btc_coexist *btcoexist)
1409 btc8821a1ant_sw_mechanism(btcoexist, false);
1412 static void btc8821a1ant_action_pan_edr(struct btc_coexist *btcoexist)
1414 btc8821a1ant_sw_mechanism(btcoexist, false);
1418 static void btc8821a1ant_action_pan_hs(struct btc_coexist *btcoexist)
1420 btc8821a1ant_sw_mechanism(btcoexist, false);
1424 static void btc8821a1ant_action_pan_edr_a2dp(struct btc_coexist *btcoexist)
1426 btc8821a1ant_sw_mechanism(btcoexist, false);
1429 static void btc8821a1ant_action_pan_edr_hid(struct btc_coexist *btcoexist)
1431 btc8821a1ant_sw_mechanism(btcoexist, true);
1435 static void btc8821a1ant_action_hid_a2dp_pan_edr(struct btc_coexist *btcoexist)
1437 btc8821a1ant_sw_mechanism(btcoexist, true);
1440 static void btc8821a1ant_action_hid_a2dp(struct btc_coexist *btcoexist)
1442 btc8821a1ant_sw_mechanism(btcoexist, true);
1451 void btc8821a1ant_action_wifi_multi_port(struct btc_coexist *btcoexist)
1453 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
1455 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0);
1459 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
1460 btc8821a1ant_coex_table_with_type(btcoexist,
1464 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1465 btc8821a1ant_coex_table_with_type(btcoexist,
1468 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
1469 btc8821a1ant_coex_table_with_type(btcoexist,
1475 btc8821a1ant_act_bt_sco_hid_only_busy(btcoexist,
1478 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1479 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
1485 struct btc_coexist *btcoexist)
1487 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
1489 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, 0x0,
1494 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
1495 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
1497 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
1498 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
1500 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1501 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
1506 static void btc8821a1ant_action_hs(struct btc_coexist *btcoexist)
1508 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5);
1509 btc8821a1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 2);
1512 static void btc8821a1ant_action_bt_inquiry(struct btc_coexist *btcoexist)
1514 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
1519 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
1521 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
1523 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
1524 btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy);
1527 btc8821a1ant_power_save_state(btcoexist,
1529 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1530 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
1534 btc8821a1ant_power_save_state(btcoexist,
1536 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
1537 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
1540 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
1542 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
1544 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
1546 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
1548 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
1550 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
1552 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
1554 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1555 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7);
1559 static void btc8821a1ant_act_bt_sco_hid_only_busy(struct btc_coexist *btcoexist,
1563 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5);
1565 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
1568 static void btc8821a1ant_act_wifi_con_bt_acl_busy(struct btc_coexist *btcoexist,
1573 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
1575 bt_rssi_state = btc8821a1ant_bt_rssi_state(btcoexist, 2, 28, 0);
1579 btc8821a1ant_act_bt_sco_hid_only_busy(btcoexist,
1586 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
1587 btc8821a1ant_coex_table_with_type(btcoexist,
1592 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
1593 btc8821a1ant_coex_table_with_type(btcoexist,
1597 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
1598 btc8821a1ant_coex_table_with_type(btcoexist,
1604 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC,
1608 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
1612 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3);
1613 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 6);
1619 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 43);
1620 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
1623 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 11);
1624 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
1630 void btc8821a1ant_action_wifi_not_connected(struct btc_coexist *btcoexist)
1633 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0);
1636 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1637 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
1640 static void btc8821a1ant_act_wifi_not_conn_scan(struct btc_coexist *btcoexist)
1642 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
1644 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0);
1649 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
1650 btc8821a1ant_coex_table_with_type(btcoexist,
1654 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 22);
1655 btc8821a1ant_coex_table_with_type(btcoexist,
1658 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
1659 btc8821a1ant_coex_table_with_type(btcoexist,
1665 btc8821a1ant_act_bt_sco_hid_only_busy(btcoexist,
1668 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1669 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
1674 void btc8821a1ant_action_wifi_connected_scan(struct btc_coexist *btcoexist)
1676 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
1679 btc8821a1ant_power_save_state(btcoexist,
1685 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
1686 btc8821a1ant_coex_table_with_type(btcoexist,
1689 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
1690 btc8821a1ant_coex_table_with_type(btcoexist,
1696 btc8821a1ant_act_bt_sco_hid_only_busy(btcoexist,
1699 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1700 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
1704 static void btc8821a1ant_act_wifi_conn_sp_pkt(struct btc_coexist *btcoexist)
1706 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
1708 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
1714 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
1715 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
1719 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
1720 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
1722 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
1723 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
1725 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1726 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
1730 static void btc8821a1ant_action_wifi_connected(struct btc_coexist *btcoexist)
1732 struct rtl_priv *rtlpriv = btcoexist->adapter;
1741 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
1744 btc8821a1ant_act_wifi_conn_sp_pkt(btcoexist);
1750 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
1751 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
1752 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
1755 btc8821a1ant_action_wifi_connected_scan(btcoexist);
1757 btc8821a1ant_act_wifi_conn_sp_pkt(btcoexist);
1765 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
1767 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
1770 !btcoexist->bt_link_info.hid_only) {
1771 if (!wifi_busy && btcoexist->bt_link_info.a2dp_only)
1773 btc8821a1ant_power_save_state(btcoexist,
1776 btc8821a1ant_power_save_state(btcoexist, BTC_PS_LPS_ON,
1779 btc8821a1ant_power_save_state(btcoexist,
1787 btc8821a1ant_act_wifi_con_bt_acl_busy(btcoexist,
1793 btc8821a1ant_act_bt_sco_hid_only_busy(btcoexist,
1796 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1797 btc8821a1ant_coex_table_with_type(btcoexist,
1802 btc8821a1ant_act_wifi_con_bt_acl_busy(btcoexist,
1808 btc8821a1ant_act_bt_sco_hid_only_busy(btcoexist,
1811 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
1812 btc8821a1ant_coex_table_with_type(btcoexist,
1818 static void btc8821a1ant_run_sw_coex_mech(struct btc_coexist *btcoexist)
1820 struct rtl_priv *rtlpriv = btcoexist->adapter;
1823 algorithm = btc8821a1ant_action_algorithm(btcoexist);
1826 if (!btc8821a1ant_is_common_action(btcoexist)) {
1831 btc8821a1ant_action_sco(btcoexist);
1836 btc8821a1ant_action_hid(btcoexist);
1841 btc8821a1ant_action_a2dp(btcoexist);
1846 btc8821a1ant_action_a2dp_pan_hs(btcoexist);
1851 btc8821a1ant_action_pan_edr(btcoexist);
1856 btc8821a1ant_action_pan_hs(btcoexist);
1861 btc8821a1ant_action_pan_edr_a2dp(btcoexist);
1866 btc8821a1ant_action_pan_edr_hid(btcoexist);
1871 btc8821a1ant_action_hid_a2dp_pan_edr(btcoexist);
1876 btc8821a1ant_action_hid_a2dp(btcoexist);
1881 /*btc8821a1ant_coex_all_off(btcoexist);*/
1888 static void btc8821a1ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
1890 struct rtl_priv *rtlpriv = btcoexist->adapter;
1891 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
1903 if (btcoexist->manual_control) {
1909 if (btcoexist->stop_coex_dm) {
1921 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
1925 btc8821a1ant_coex_under_5g(btcoexist);
1934 btcoexist->btc_set(btcoexist, BTC_SET_BL_INC_SCAN_DEV_NUM,
1937 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
1940 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
1945 btc8821a1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
1946 btc8821a1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
1948 btc8821a1ant_action_wifi_multi_port(btcoexist);
1953 btc8821a1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
1956 btc8821a1ant_wifi_rssi_state(btcoexist, 1, 2,
1958 btc8821a1ant_limited_tx(btcoexist,
1962 btc8821a1ant_limited_tx(btcoexist, NORMAL_EXEC,
1977 btc8821a1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
1980 btc8821a1ant_run_sw_coex_mech(btcoexist);
1982 btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
1984 btc8821a1ant_action_bt_inquiry(btcoexist);
1987 btc8821a1ant_action_hs(btcoexist);
1997 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
1998 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
1999 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
2003 btc8821a1ant_act_wifi_not_conn_scan(btcoexist);
2006 btcoexist);
2008 btc8821a1ant_action_wifi_not_connected(btcoexist);
2012 btc8821a1ant_action_wifi_connected(btcoexist);
2016 static void btc8821a1ant_init_coex_dm(struct btc_coexist *btcoexist)
2021 btc8821a1ant_sw_mechanism(btcoexist, false);
2023 btc8821a1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0);
2026 static void btc8821a1ant_init_hw_config(struct btc_coexist *btcoexist,
2029 struct rtl_priv *rtlpriv = btcoexist->adapter;
2040 coex_dm->backup_arfr_cnt1 = btcoexist->btc_read_4byte(btcoexist,
2042 coex_dm->backup_arfr_cnt2 = btcoexist->btc_read_4byte(btcoexist,
2045 btcoexist->btc_read_2byte(btcoexist, 0x42a);
2047 btcoexist->btc_read_1byte(btcoexist, 0x456);
2051 u1_tmp = btcoexist->btc_read_1byte(btcoexist, 0x790);
2054 btcoexist->btc_write_1byte(btcoexist, 0x790, u1_tmp);
2056 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
2060 btc8821a1ant_set_ant_path(btcoexist, BTC_ANT_PATH_BT,
2063 btc8821a1ant_set_ant_path(btcoexist, BTC_ANT_PATH_PTA,
2066 btc8821a1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0);
2071 btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc);
2072 btcoexist->btc_write_1byte(btcoexist, 0x778, 0x3);
2073 btcoexist->btc_write_1byte_bitmask(btcoexist, 0x40, 0x20, 0x1);
2079 void ex_btc8821a1ant_init_hwconfig(struct btc_coexist *btcoexist, bool wifionly)
2081 btc8821a1ant_init_hw_config(btcoexist, true, wifionly);
2082 btcoexist->auto_report_1ant = true;
2085 void ex_btc8821a1ant_init_coex_dm(struct btc_coexist *btcoexist)
2087 struct rtl_priv *rtlpriv = btcoexist->adapter;
2092 btcoexist->stop_coex_dm = false;
2094 btc8821a1ant_init_coex_dm(btcoexist);
2096 btc8821a1ant_query_bt_info(btcoexist);
2099 void ex_btc8821a1ant_display_coex_info(struct btc_coexist *btcoexist,
2102 struct btc_board_info *board_info = &btcoexist->board_info;
2103 struct btc_stack_info *stack_info = &btcoexist->stack_info;
2104 struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
2117 if (btcoexist->manual_control) {
2121 if (btcoexist->stop_coex_dm) {
2136 btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER,
2138 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver);
2146 btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION,
2148 btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_DOT11_CHNL,
2150 btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_HS_CHNL,
2160 btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi);
2161 btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi);
2165 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
2166 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
2167 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
2171 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G,
2173 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW,
2175 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY,
2177 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION,
2203 btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_BT_LINK_INFO, m);
2223 btcoexist->bt_info.lps_val,
2224 btcoexist->bt_info.rpwm_val);
2225 btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_FW_PWR_MODE_CMD, m);
2227 if (!btcoexist->manual_control) {
2237 (btcoexist->bt_info.reject_agg_pkt ? "Yes" : "No"),
2238 (btcoexist->bt_info.bt_ctrl_buf_size ? "Yes" : "No"),
2239 btcoexist->bt_info.agg_buf_size);
2241 btcoexist->bt_info.ra_mask);
2272 u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x430);
2273 u4_tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x434);
2274 u2_tmp[0] = btcoexist->btc_read_2byte(btcoexist, 0x42a);
2275 u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x456);
2280 u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x778);
2281 u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xc58);
2285 u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x8db);
2289 u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x975);
2290 u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
2297 u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x40);
2298 u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x4c);
2299 u1_tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x64);
2305 u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550);
2306 u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x522);
2310 u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xc50);
2314 u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xf48);
2315 u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0xa5d);
2316 u1_tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0xa5c);
2320 u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6c0);
2321 u4_tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x6c4);
2322 u4_tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x6c8);
2323 u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x6cc);
2332 if (btcoexist->auto_report_1ant)
2333 btc8821a1ant_monitor_bt_ctr(btcoexist);
2334 btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_COEX_STATISTICS, m);
2337 void ex_btc8821a1ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
2339 struct rtl_priv *rtlpriv = btcoexist->adapter;
2342 if (btcoexist->manual_control || btcoexist->stop_coex_dm)
2344 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
2348 btc8821a1ant_coex_under_5g(btcoexist);
2356 btc8821a1ant_set_ant_path(btcoexist,
2359 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
2360 btc8821a1ant_coex_table_with_type(btcoexist,
2367 btc8821a1ant_init_hw_config(btcoexist, false, false);
2368 btc8821a1ant_init_coex_dm(btcoexist);
2369 btc8821a1ant_query_bt_info(btcoexist);
2373 void ex_btc8821a1ant_lps_notify(struct btc_coexist *btcoexist, u8 type)
2375 struct rtl_priv *rtlpriv = btcoexist->adapter;
2377 if (btcoexist->manual_control || btcoexist->stop_coex_dm)
2391 void ex_btc8821a1ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
2393 struct rtl_priv *rtlpriv = btcoexist->adapter;
2401 if (btcoexist->manual_control || btcoexist->stop_coex_dm)
2403 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
2407 btc8821a1ant_coex_under_5g(btcoexist);
2417 btc8821a1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 8);
2427 btcoexist->btc_get(btcoexist,
2429 btcoexist->btc_get(btcoexist,
2432 btc8821a1ant_query_bt_info(btcoexist);
2434 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
2438 btc8821a1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
2439 btc8821a1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
2441 btc8821a1ant_action_wifi_multi_port(btcoexist);
2446 btc8821a1ant_action_bt_inquiry(btcoexist);
2449 btc8821a1ant_action_hs(btcoexist);
2458 btc8821a1ant_act_wifi_not_conn_scan(btcoexist);
2461 btc8821a1ant_action_wifi_connected_scan(btcoexist);
2468 btc8821a1ant_action_wifi_not_connected(btcoexist);
2470 btc8821a1ant_action_wifi_connected(btcoexist);
2475 void ex_btc8821a1ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
2477 struct rtl_priv *rtlpriv = btcoexist->adapter;
2485 if (btcoexist->manual_control || btcoexist->stop_coex_dm ||
2488 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
2492 btc8821a1ant_coex_under_5g(btcoexist);
2508 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
2512 btc8821a1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
2513 btc8821a1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
2515 btc8821a1ant_action_wifi_multi_port(btcoexist);
2519 btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
2521 btc8821a1ant_action_bt_inquiry(btcoexist);
2524 btc8821a1ant_action_hs(btcoexist);
2531 btc8821a1ant_act_wifi_not_conn_scan(btcoexist);
2536 btcoexist->btc_get(btcoexist,
2540 btc8821a1ant_action_wifi_not_connected(btcoexist);
2542 btc8821a1ant_action_wifi_connected(btcoexist);
2547 void ex_btc8821a1ant_media_status_notify(struct btc_coexist *btcoexist,
2550 struct rtl_priv *rtlpriv = btcoexist->adapter;
2556 if (btcoexist->manual_control || btcoexist->stop_coex_dm ||
2559 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
2563 btc8821a1ant_coex_under_5g(btcoexist);
2577 btcoexist->btc_get(btcoexist,
2584 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
2601 btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter);
2604 void ex_btc8821a1ant_special_packet_notify(struct btc_coexist *btcoexist,
2607 struct rtl_priv *rtlpriv = btcoexist->adapter;
2615 if (btcoexist->manual_control || btcoexist->stop_coex_dm ||
2619 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
2623 btc8821a1ant_coex_under_5g(btcoexist);
2647 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
2651 btc8821a1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
2652 btc8821a1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
2654 btc8821a1ant_action_wifi_multi_port(btcoexist);
2658 btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
2660 btc8821a1ant_action_bt_inquiry(btcoexist);
2663 btc8821a1ant_action_hs(btcoexist);
2683 btc8821a1ant_act_wifi_conn_sp_pkt(btcoexist);
2687 void ex_btc8821a1ant_bt_info_notify(struct btc_coexist *btcoexist,
2690 struct rtl_priv *rtlpriv = btcoexist->adapter;
2700 btcoexist->btc_get(btcoexist,
2736 btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TX_RX_MASK,
2744 btcoexist->btc_set_bt_reg(btcoexist, BTC_BT_REG_RF,
2754 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
2757 ex_btc8821a1ant_media_status_notify(btcoexist,
2760 ex_btc8821a1ant_media_status_notify(btcoexist,
2766 if (!btcoexist->manual_control &&
2767 !btcoexist->stop_coex_dm) {
2770 btc8821a1ant_ignore_wlan_act(btcoexist,
2811 btc8821a1ant_update_bt_link_info(btcoexist);
2850 btcoexist->btc_set(btcoexist,
2853 btc8821a1ant_run_coexist_mechanism(btcoexist);
2856 void ex_btc8821a1ant_halt_notify(struct btc_coexist *btcoexist)
2858 struct rtl_priv *rtlpriv = btcoexist->adapter;
2863 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
2867 btc8821a1ant_coex_under_5g(btcoexist);
2872 btcoexist->stop_coex_dm = true;
2874 btc8821a1ant_set_ant_path(btcoexist, BTC_ANT_PATH_BT, false, true);
2875 btc8821a1ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true);
2877 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0);
2878 btc8821a1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 0);
2880 ex_btc8821a1ant_media_status_notify(btcoexist, BTC_MEDIA_DISCONNECT);
2883 void ex_btc8821a1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
2885 struct rtl_priv *rtlpriv = btcoexist->adapter;
2888 btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
2892 btc8821a1ant_coex_under_5g(btcoexist);
2907 btcoexist->stop_coex_dm = true;
2908 btc8821a1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
2910 btc8821a1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
2911 btc8821a1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2);
2912 btc8821a1ant_set_ant_path(btcoexist, BTC_ANT_PATH_BT, false,
2917 btcoexist->stop_coex_dm = false;
2918 btc8821a1ant_init_hw_config(btcoexist, false, false);
2919 btc8821a1ant_init_coex_dm(btcoexist);
2920 btc8821a1ant_query_bt_info(btcoexist);
2924 void ex_btc8821a1ant_periodical(struct btc_coexist *btcoexist)
2926 struct rtl_priv *rtlpriv = btcoexist->adapter;
2929 struct btc_board_info *board_info = &btcoexist->board_info;
2930 struct btc_stack_info *stack_info = &btcoexist->stack_info;
2948 btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER,
2950 btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver);
2961 if (!btcoexist->auto_report_1ant) {
2962 btc8821a1ant_query_bt_info(btcoexist);
2963 btc8821a1ant_monitor_bt_ctr(btcoexist);