Lines Matching refs:btc
35 u8 halbtc8821c1ant_bt_rssi_state(struct btc_coexist *btc, u8 level_num,
38 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant;
102 u8 halbtc8821c1ant_wifi_rssi_state(struct btc_coexist *btc, u8 index,
106 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant;
110 btc->btc_get(btc, BTC_GET_S4_WIFI_RSSI, &wifi_rssi);
171 halbtc8821c1ant_limited_tx(struct btc_coexist *btc, boolean force_exec, in halbtc8821c1ant_limited_tx() argument
174 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_limited_tx()
176 &btc->wifi_link_info_8821c_1ant; in halbtc8821c1ant_limited_tx()
181 coex_sta->wl_0x430_backup = btc->btc_read_4byte(btc, 0x430); in halbtc8821c1ant_limited_tx()
182 coex_sta->wl_0x434_backup = btc->btc_read_4byte(btc, 0x434); in halbtc8821c1ant_limited_tx()
183 coex_sta->wl_0x42a_backup = btc->btc_read_2byte(btc, 0x42a); in halbtc8821c1ant_limited_tx()
187 coex_sta->wl_0x455_backup = btc->btc_read_1byte(btc, 0x455); in halbtc8821c1ant_limited_tx()
202 btc->btc_write_1byte_bitmask(btc, 0x45e, 0x8, 0x1); in halbtc8821c1ant_limited_tx()
203 btc->btc_write_1byte_bitmask(btc, 0x426, 0xf, 0xf); in halbtc8821c1ant_limited_tx()
206 btc->btc_write_2byte(btc, 0x42a, 0x0808); in halbtc8821c1ant_limited_tx()
208 btc->btc_get(btc, BTC_GET_BL_WIFI_UNDER_B_MODE, in halbtc8821c1ant_limited_tx()
213 btc->btc_write_4byte(btc, 0x430, 0x1000000); in halbtc8821c1ant_limited_tx()
214 btc->btc_write_4byte(btc, 0x434, 0x1010101); in halbtc8821c1ant_limited_tx()
216 btc->btc_write_4byte(btc, 0x430, 0x1000000); in halbtc8821c1ant_limited_tx()
217 btc->btc_write_4byte(btc, 0x434, 0x4030201); in halbtc8821c1ant_limited_tx()
223 btc->btc_write_1byte_bitmask(btc, 0x45e, 0x8, 0x0); in halbtc8821c1ant_limited_tx()
224 btc->btc_write_1byte_bitmask(btc, 0x426, 0xf, 0x0); in halbtc8821c1ant_limited_tx()
230 btc->btc_write_1byte_bitmask(btc, 0x426, 0xf, 0x0); in halbtc8821c1ant_limited_tx()
233 btc->btc_write_2byte(btc, 0x42a, coex_sta->wl_0x42a_backup); in halbtc8821c1ant_limited_tx()
234 btc->btc_write_4byte(btc, 0x430, coex_sta->wl_0x430_backup); in halbtc8821c1ant_limited_tx()
235 btc->btc_write_4byte(btc, 0x434, coex_sta->wl_0x434_backup); in halbtc8821c1ant_limited_tx()
239 btc->btc_write_1byte(btc, 0x455, 0x20); in halbtc8821c1ant_limited_tx()
241 btc->btc_write_1byte(btc, 0x455, coex_sta->wl_0x455_backup); in halbtc8821c1ant_limited_tx()
245 halbtc8821c1ant_limited_rx(struct btc_coexist *btc, boolean force_exec, in halbtc8821c1ant_limited_rx() argument
250 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_limited_rx()
265 btc->btc_set(btc, BTC_SET_BL_BT_CTRL_AGG_SIZE, &bt_ctrl_rx_agg_size); in halbtc8821c1ant_limited_rx()
269 btc->btc_set(btc, BTC_SET_U1_AGG_BUF_SIZE, &rx_agg_size); in halbtc8821c1ant_limited_rx()
271 btc->btc_set(btc, BTC_SET_ACT_AGGREGATE_CTRL, NULL); in halbtc8821c1ant_limited_rx()
276 halbtc8821c1ant_ccklock_action(struct btc_coexist *btc) in halbtc8821c1ant_ccklock_action() argument
278 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_ccklock_action()
279 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_ccklock_action()
284 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c1ant_ccklock_action()
294 btc->btc_fill_h2c(btc, 0x69, 2, h2c_parameter); in halbtc8821c1ant_ccklock_action()
328 btc->btc_fill_h2c(btc, 0x69, 2, h2c_parameter); in halbtc8821c1ant_ccklock_action()
339 btc->btc_fill_h2c(btc, 0x69, 2, h2c_parameter); in halbtc8821c1ant_ccklock_action()
345 halbtc8821c1ant_ccklock_detect(struct btc_coexist *btc) in halbtc8821c1ant_ccklock_detect() argument
347 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_ccklock_detect()
348 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_ccklock_detect()
350 &btc->wifi_link_info_8821c_1ant; in halbtc8821c1ant_ccklock_detect()
384 halbtc8821c1ant_set_tdma_timer_base(struct btc_coexist *btc, u8 type) in halbtc8821c1ant_set_tdma_timer_base() argument
386 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_set_tdma_timer_base()
390 btc->btc_get(btc, BTC_GET_U2_BEACON_PERIOD, &tbtt_interval); in halbtc8821c1ant_set_tdma_timer_base()
432 btc->btc_fill_h2c(btc, 0x69, 2, h2c_para); in halbtc8821c1ant_set_tdma_timer_base()
440 void halbtc8821c1ant_low_penalty_ra(struct btc_coexist *btc, in halbtc8821c1ant_low_penalty_ra() argument
444 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_low_penalty_ra()
454 btc->btc_phydm_modify_RA_PCR_threshold(btc, 0, thres); in halbtc8821c1ant_low_penalty_ra()
456 btc->btc_phydm_modify_RA_PCR_threshold(btc, 0, 0); in halbtc8821c1ant_low_penalty_ra()
463 void halbtc8821c1ant_write_scbd(struct btc_coexist *btc, u16 bitpos, in halbtc8821c1ant_write_scbd() argument
466 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_write_scbd()
478 btc->btc_write_2byte(btc, 0xaa, originalval); in halbtc8821c1ant_write_scbd()
487 void halbtc8821c1ant_read_scbd(struct btc_coexist *btc, in halbtc8821c1ant_read_scbd() argument
490 *score_board_val = (btc->btc_read_2byte(btc, 0xaa)) & 0x7fff; in halbtc8821c1ant_read_scbd()
494 void halbtc8821c1ant_query_bt_info(struct btc_coexist *btc) in halbtc8821c1ant_query_bt_info() argument
496 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_query_bt_info()
508 btc->btc_fill_h2c(btc, 0x61, 1, h2c_parameter); in halbtc8821c1ant_query_bt_info()
516 void halbtc8821c1ant_enable_gnt_to_gpio(struct btc_coexist *btc, in halbtc8821c1ant_enable_gnt_to_gpio() argument
522 if (!btc->dbg_mode) in halbtc8821c1ant_enable_gnt_to_gpio()
532 btc->btc_write_1byte_bitmask(btc, 0x73, 0x8, 0x1); in halbtc8821c1ant_enable_gnt_to_gpio()
536 bit_val[0] = (btc->btc_read_1byte(btc, 0x66) & BIT(4)) >> 4; in halbtc8821c1ant_enable_gnt_to_gpio()
538 bit_val[1] = (btc->btc_read_1byte(btc, 0x67) & BIT(0)); in halbtc8821c1ant_enable_gnt_to_gpio()
540 bit_val[2] = (btc->btc_read_1byte(btc, 0x42) & BIT(3)) >> 3; in halbtc8821c1ant_enable_gnt_to_gpio()
542 bit_val[3] = (btc->btc_read_1byte(btc, 0x65) & BIT(7)) >> 7; in halbtc8821c1ant_enable_gnt_to_gpio()
544 bit_val[4] = (btc->btc_read_1byte(btc, 0x72) & BIT(2)) >> 2; in halbtc8821c1ant_enable_gnt_to_gpio()
548 btc->btc_write_1byte_bitmask(btc, 0x66, BIT(4), 0x0); in halbtc8821c1ant_enable_gnt_to_gpio()
550 btc->btc_write_1byte_bitmask(btc, 0x67, BIT(0), 0x0); in halbtc8821c1ant_enable_gnt_to_gpio()
552 btc->btc_write_1byte_bitmask(btc, 0x42, BIT(3), 0x0); in halbtc8821c1ant_enable_gnt_to_gpio()
554 btc->btc_write_1byte_bitmask(btc, 0x65, BIT(7), 0x0); in halbtc8821c1ant_enable_gnt_to_gpio()
556 btc->btc_write_1byte_bitmask(btc, 0x72, BIT(2), 0x0); in halbtc8821c1ant_enable_gnt_to_gpio()
558 btc->btc_write_1byte_bitmask(btc, 0x73, 0x8, 0x0); in halbtc8821c1ant_enable_gnt_to_gpio()
563 btc->btc_write_1byte_bitmask(btc, 0x66, BIT(4), bit_val[0]); in halbtc8821c1ant_enable_gnt_to_gpio()
565 btc->btc_write_1byte_bitmask(btc, 0x67, BIT(0), bit_val[1]); in halbtc8821c1ant_enable_gnt_to_gpio()
567 btc->btc_write_1byte_bitmask(btc, 0x42, BIT(3), bit_val[2]); in halbtc8821c1ant_enable_gnt_to_gpio()
569 btc->btc_write_1byte_bitmask(btc, 0x65, BIT(7), bit_val[3]); in halbtc8821c1ant_enable_gnt_to_gpio()
571 btc->btc_write_1byte_bitmask(btc, 0x72, BIT(2), bit_val[4]); in halbtc8821c1ant_enable_gnt_to_gpio()
576 boolean halbtc8821c1ant_monitor_bt_ctr(struct btc_coexist *btc) in halbtc8821c1ant_monitor_bt_ctr() argument
578 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_monitor_bt_ctr()
579 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_monitor_bt_ctr()
584 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_monitor_bt_ctr()
593 u32tmp = btc->btc_read_4byte(btc, reg_hp_txrx); in halbtc8821c1ant_monitor_bt_ctr()
597 u32tmp = btc->btc_read_4byte(btc, reg_lp_txrx); in halbtc8821c1ant_monitor_bt_ctr()
613 btc->btc_write_1byte(btc, 0x76e, 0xc); in halbtc8821c1ant_monitor_bt_ctr()
669 void halbtc8821c1ant_monitor_wifi_ctr(struct btc_coexist *btc) in halbtc8821c1ant_monitor_wifi_ctr() argument
671 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_monitor_wifi_ctr()
672 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_monitor_wifi_ctr()
679 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c1ant_monitor_wifi_ctr()
680 btc->btc_get(btc, BTC_GET_BL_WIFI_SCAN, &wifi_scan); in halbtc8821c1ant_monitor_wifi_ctr()
681 btc->btc_get(btc, BTC_GET_U4_WIFI_FW_VER, &fw_ver); in halbtc8821c1ant_monitor_wifi_ctr()
686 if (btc->chip_interface != BTC_INTF_USB || in halbtc8821c1ant_monitor_wifi_ctr()
693 btc->btc_fill_h2c(btc, 0x69, 1, h2c_parameter); in halbtc8821c1ant_monitor_wifi_ctr()
698 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_CCK); in halbtc8821c1ant_monitor_wifi_ctr()
700 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_LEGACY); in halbtc8821c1ant_monitor_wifi_ctr()
702 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_HT); in halbtc8821c1ant_monitor_wifi_ctr()
704 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_VHT); in halbtc8821c1ant_monitor_wifi_ctr()
707 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_CCK); in halbtc8821c1ant_monitor_wifi_ctr()
709 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_LEGACY); in halbtc8821c1ant_monitor_wifi_ctr()
711 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_HT); in halbtc8821c1ant_monitor_wifi_ctr()
713 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_VHT); in halbtc8821c1ant_monitor_wifi_ctr()
768 void halbtc8821c1ant_monitor_bt_enable(struct btc_coexist *btc) in halbtc8821c1ant_monitor_bt_enable() argument
770 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_monitor_bt_enable()
778 halbtc8821c1ant_read_scbd(btc, &u16tmp); in halbtc8821c1ant_monitor_bt_enable()
784 btc->btc_set(btc, BTC_SET_BL_BT_DISABLE, &bt_disabled); in halbtc8821c1ant_monitor_bt_enable()
792 btc->btc_set(btc, BTC_SET_BL_BT_DISABLE, &bt_disabled); in halbtc8821c1ant_monitor_bt_enable()
815 boolean halbtc8821c1ant_moniter_wifibt_status(struct btc_coexist *btc) in halbtc8821c1ant_moniter_wifibt_status() argument
817 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_moniter_wifibt_status()
818 struct rfe_type_8821c_1ant *rfe_type = &btc->rfe_type_8821c_1ant; in halbtc8821c1ant_moniter_wifibt_status()
820 &btc->wifi_link_info_8821c_1ant; in halbtc8821c1ant_moniter_wifibt_status()
829 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_moniter_wifibt_status()
836 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in halbtc8821c1ant_moniter_wifibt_status()
837 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c1ant_moniter_wifibt_status()
838 btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way); in halbtc8821c1ant_moniter_wifibt_status()
872 btc->bt_info.bt_get_fw_ver = 0; in halbtc8821c1ant_moniter_wifibt_status()
887 btc->btc_set(btc, BTC_SET_BL_MIRACAST_PLUS_BT, in halbtc8821c1ant_moniter_wifibt_status()
893 wifi_link_mode = btc->wifi_link_info.link_mode; in halbtc8821c1ant_moniter_wifibt_status()
931 btc->btc_set(btc, BTC_SET_BL_BT_LNA_CONSTRAIN_LEVEL, in halbtc8821c1ant_moniter_wifibt_status()
962 void halbtc8821c1ant_update_wifi_link_info(struct btc_coexist *btc, u8 reason) in halbtc8821c1ant_update_wifi_link_info() argument
964 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_update_wifi_link_info()
966 &btc->wifi_link_info_8821c_1ant; in halbtc8821c1ant_update_wifi_link_info()
968 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_update_wifi_link_info()
973 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, in halbtc8821c1ant_update_wifi_link_info()
976 btc->btc_get(btc, BTC_GET_U4_WIFI_LINK_STATUS, &wifi_link_status); in halbtc8821c1ant_update_wifi_link_info()
979 btc->btc_get(btc, BTC_GET_BL_WIFI_LINK_INFO, &wifi_link_info); in halbtc8821c1ant_update_wifi_link_info()
980 btc->wifi_link_info = wifi_link_info; in halbtc8821c1ant_update_wifi_link_info()
982 btc->btc_get(btc, BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifi_central_chnl); in halbtc8821c1ant_update_wifi_link_info()
1068 btc->wifi_link_info.link_mode, in halbtc8821c1ant_update_wifi_link_info()
1069 btc->wifi_link_info.sta_center_channel, in halbtc8821c1ant_update_wifi_link_info()
1070 btc->wifi_link_info.p2p_center_channel, in halbtc8821c1ant_update_wifi_link_info()
1071 btc->wifi_link_info.bany_client_join_go); in halbtc8821c1ant_update_wifi_link_info()
1168 if (btc->manual_control || btc->stop_coex_dm) in halbtc8821c1ant_update_wifi_link_info()
1173 halbtc8821c1ant_low_penalty_ra(btc, NM_EXCU, FALSE, 0); in halbtc8821c1ant_update_wifi_link_info()
1174 halbtc8821c1ant_limited_tx(btc, NM_EXCU, FALSE, FALSE); in halbtc8821c1ant_update_wifi_link_info()
1175 halbtc8821c1ant_limited_rx(btc, NM_EXCU, FALSE, TRUE, 64); in halbtc8821c1ant_update_wifi_link_info()
1177 halbtc8821c1ant_low_penalty_ra(btc, NM_EXCU, TRUE, 30); in halbtc8821c1ant_update_wifi_link_info()
1178 halbtc8821c1ant_limited_tx(btc, NM_EXCU, FALSE, TRUE); in halbtc8821c1ant_update_wifi_link_info()
1179 halbtc8821c1ant_limited_rx(btc, NM_EXCU, FALSE, TRUE, 16); in halbtc8821c1ant_update_wifi_link_info()
1181 halbtc8821c1ant_low_penalty_ra(btc, NM_EXCU, TRUE, 15); in halbtc8821c1ant_update_wifi_link_info()
1185 halbtc8821c1ant_limited_tx(btc, NM_EXCU, TRUE, TRUE); in halbtc8821c1ant_update_wifi_link_info()
1188 halbtc8821c1ant_limited_rx(btc, NM_EXCU, FALSE, in halbtc8821c1ant_update_wifi_link_info()
1191 halbtc8821c1ant_limited_tx(btc, NM_EXCU, TRUE, FALSE); in halbtc8821c1ant_update_wifi_link_info()
1192 halbtc8821c1ant_limited_rx(btc, NM_EXCU, FALSE, TRUE, in halbtc8821c1ant_update_wifi_link_info()
1202 if (btc->chip_interface != BTC_INTF_SDIO) in halbtc8821c1ant_update_wifi_link_info()
1203 btc->btc_write_1byte_bitmask(btc, 0x454, BIT(6), 0x1); in halbtc8821c1ant_update_wifi_link_info()
1205 btc->btc_write_1byte_bitmask(btc, 0x454, BIT(6), 0x0); in halbtc8821c1ant_update_wifi_link_info()
1210 void halbtc8821c1ant_update_bt_link_info(struct btc_coexist *btc) in halbtc8821c1ant_update_bt_link_info() argument
1212 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_update_bt_link_info()
1213 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_update_bt_link_info()
1214 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_update_bt_link_info()
1227 btc->btc_get_ble_scan_type_from_bt(btc); in halbtc8821c1ant_update_bt_link_info()
1231 btc->btc_get_ble_scan_para_from_bt(btc, 0x1); in halbtc8821c1ant_update_bt_link_info()
1234 btc->btc_get_ble_scan_para_from_bt(btc, 0x2); in halbtc8821c1ant_update_bt_link_info()
1237 btc->btc_get_ble_scan_para_from_bt(btc, 0x4); in halbtc8821c1ant_update_bt_link_info()
1387 btc->btc_set(btc, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); in halbtc8821c1ant_update_bt_link_info()
1388 btc->btc_set(btc, BTC_SET_BL_INC_SCAN_DEV_NUM, &increase_scan_dev_num); in halbtc8821c1ant_update_bt_link_info()
1399 btc->btc_get(btc, BTC_GET_U4_BT_DEVICE_INFO, &val); in halbtc8821c1ant_update_bt_link_info()
1409 btc->btc_get(btc, BTC_GET_U4_BT_A2DP_FLUSH_VAL, &val); in halbtc8821c1ant_update_bt_link_info()
1422 void halbtc8821c1ant_update_wifi_ch_info(struct btc_coexist *btc, u8 type) in halbtc8821c1ant_update_wifi_ch_info() argument
1424 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_update_wifi_ch_info()
1425 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_update_wifi_ch_info()
1427 &btc->wifi_link_info_8821c_1ant; in halbtc8821c1ant_update_wifi_ch_info()
1435 if (btc->manual_control) in halbtc8821c1ant_update_wifi_ch_info()
1438 btc->btc_get(btc, BTC_GET_U4_WIFI_BW, &wifi_bw); in halbtc8821c1ant_update_wifi_ch_info()
1440 if (btc->stop_coex_dm || btc->wl_rf_state_off) { in halbtc8821c1ant_update_wifi_ch_info()
1447 wl_ch = btc->wifi_link_info.p2p_center_channel; in halbtc8821c1ant_update_wifi_ch_info()
1449 wl_ch = btc->wifi_link_info.sta_center_channel; in halbtc8821c1ant_update_wifi_ch_info()
1451 if (btc->wifi_link_info.p2p_center_channel > 14 && in halbtc8821c1ant_update_wifi_ch_info()
1452 btc->wifi_link_info.sta_center_channel > 14) in halbtc8821c1ant_update_wifi_ch_info()
1453 wl_ch = btc->wifi_link_info.p2p_center_channel; in halbtc8821c1ant_update_wifi_ch_info()
1454 else if (btc->wifi_link_info.p2p_center_channel <= 14) in halbtc8821c1ant_update_wifi_ch_info()
1455 wl_ch = btc->wifi_link_info.p2p_center_channel; in halbtc8821c1ant_update_wifi_ch_info()
1456 else if (btc->wifi_link_info.sta_center_channel <= 14) in halbtc8821c1ant_update_wifi_ch_info()
1457 wl_ch = btc->wifi_link_info.sta_center_channel; in halbtc8821c1ant_update_wifi_ch_info()
1487 btc->btc_fill_h2c(btc, 0x66, 3, h2c_parameter); in halbtc8821c1ant_update_wifi_ch_info()
1497 halbtc8821c1ant_wait_indirect_reg_ready(struct btc_coexist *btc) in halbtc8821c1ant_wait_indirect_reg_ready() argument
1503 if ((btc->btc_read_1byte(btc, 0x1703) & BIT(5)) == 0) { in halbtc8821c1ant_wait_indirect_reg_ready()
1516 u32 halbtc8821c1ant_read_indirect_reg(struct btc_coexist *btc, u16 reg_addr) in halbtc8821c1ant_read_indirect_reg() argument
1521 halbtc8821c1ant_wait_indirect_reg_ready(btc); in halbtc8821c1ant_read_indirect_reg()
1523 btc->btc_write_4byte(btc, 0x1700, 0x800F0000 | reg_addr); in halbtc8821c1ant_read_indirect_reg()
1525 return btc->btc_read_4byte(btc, 0x1708); in halbtc8821c1ant_read_indirect_reg()
1529 void halbtc8821c1ant_write_indirect_reg(struct btc_coexist *btc, u16 reg_addr, in halbtc8821c1ant_write_indirect_reg() argument
1539 halbtc8821c1ant_wait_indirect_reg_ready(btc); in halbtc8821c1ant_write_indirect_reg()
1542 btc->btc_write_4byte(btc, 0x1704, reg_value); in halbtc8821c1ant_write_indirect_reg()
1544 btc->btc_write_4byte(btc, 0x1700, 0xc00F0000 | reg_addr); in halbtc8821c1ant_write_indirect_reg()
1554 val = halbtc8821c1ant_read_indirect_reg(btc, reg_addr); in halbtc8821c1ant_write_indirect_reg()
1558 halbtc8821c1ant_wait_indirect_reg_ready(btc); in halbtc8821c1ant_write_indirect_reg()
1561 btc->btc_write_4byte(btc, 0x1704, val); in halbtc8821c1ant_write_indirect_reg()
1562 btc->btc_write_4byte(btc, 0x1700, 0xc00F0000 | reg_addr); in halbtc8821c1ant_write_indirect_reg()
1567 void halbtc8821c1ant_ltecoex_enable(struct btc_coexist *btc, boolean enable) in halbtc8821c1ant_ltecoex_enable() argument
1573 halbtc8821c1ant_write_indirect_reg(btc, 0x38, BIT(7), val); in halbtc8821c1ant_ltecoex_enable()
1577 void halbtc8821c1ant_ltecoex_table(struct btc_coexist *btc, u8 table_type, in halbtc8821c1ant_ltecoex_table() argument
1593 halbtc8821c1ant_write_indirect_reg(btc, reg_addr, 0xffff, val); in halbtc8821c1ant_ltecoex_table()
1597 void halbtc8821c1ant_coex_ctrl_owner(struct btc_coexist *btc, in halbtc8821c1ant_coex_ctrl_owner() argument
1604 btc->btc_write_1byte_bitmask(btc, 0x73, BIT(2), val); in halbtc8821c1ant_coex_ctrl_owner()
1608 halbtc8821c1ant_set_gnt_bt(struct btc_coexist *btc, u8 state) in halbtc8821c1ant_set_gnt_bt() argument
1612 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0xc000, 0x1); in halbtc8821c1ant_set_gnt_bt()
1613 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x0c00, 0x1); in halbtc8821c1ant_set_gnt_bt()
1616 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0xc000, 0x3); in halbtc8821c1ant_set_gnt_bt()
1617 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x0c00, 0x3); in halbtc8821c1ant_set_gnt_bt()
1621 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0xc000, 0x0); in halbtc8821c1ant_set_gnt_bt()
1622 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x0c00, 0x0); in halbtc8821c1ant_set_gnt_bt()
1628 halbtc8821c1ant_set_gnt_wl(struct btc_coexist *btc, u8 state) in halbtc8821c1ant_set_gnt_wl() argument
1632 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x3000, 0x1); in halbtc8821c1ant_set_gnt_wl()
1633 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x0300, 0x1); in halbtc8821c1ant_set_gnt_wl()
1636 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x3000, 0x3); in halbtc8821c1ant_set_gnt_wl()
1637 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x0300, 0x3); in halbtc8821c1ant_set_gnt_wl()
1641 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x3000, 0x0); in halbtc8821c1ant_set_gnt_wl()
1642 halbtc8821c1ant_write_indirect_reg(btc, 0x38, 0x0300, 0x0); in halbtc8821c1ant_set_gnt_wl()
1648 void halbtc8821c1ant_set_table(struct btc_coexist *btc, boolean force_exec, in halbtc8821c1ant_set_table() argument
1652 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_set_table()
1653 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_set_table()
1656 coex_dm->cur_val0x6c0 = btc->btc_read_4byte(btc, 0x6c0); in halbtc8821c1ant_set_table()
1657 coex_dm->cur_val0x6c4 = btc->btc_read_4byte(btc, 0x6c4); in halbtc8821c1ant_set_table()
1664 btc->btc_write_4byte(btc, 0x6c0, val0x6c0); in halbtc8821c1ant_set_table()
1665 btc->btc_write_4byte(btc, 0x6c4, val0x6c4); in halbtc8821c1ant_set_table()
1666 btc->btc_write_4byte(btc, 0x6c8, val0x6c8); in halbtc8821c1ant_set_table()
1667 btc->btc_write_1byte(btc, 0x6cc, val0x6cc); in halbtc8821c1ant_set_table()
1674 void halbtc8821c1ant_table(struct btc_coexist *btc, boolean force_exec, u8 type) in halbtc8821c1ant_table() argument
1676 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_table()
1699 halbtc8821c1ant_set_table(btc, force_exec, 0x55555555, in halbtc8821c1ant_table()
1704 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1709 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1714 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1719 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1724 halbtc8821c1ant_set_table(btc, force_exec, 0x6a5a5a5a, in halbtc8821c1ant_table()
1729 halbtc8821c1ant_set_table(btc, force_exec, 0x6a5a56aa, in halbtc8821c1ant_table()
1734 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1739 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1744 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1749 halbtc8821c1ant_set_table(btc, force_exec, 0xaaaaaaaa, in halbtc8821c1ant_table()
1754 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1759 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1764 halbtc8821c1ant_set_table(btc, force_exec, 0xaa5555aa, in halbtc8821c1ant_table()
1769 halbtc8821c1ant_set_table(btc, force_exec, 0x6a5a5aaa, in halbtc8821c1ant_table()
1774 halbtc8821c1ant_set_table(btc, force_exec, 0xffffffff, in halbtc8821c1ant_table()
1779 halbtc8821c1ant_set_table(btc, force_exec, 0x55555555, in halbtc8821c1ant_table()
1784 halbtc8821c1ant_set_table(btc, force_exec, 0x55555555, in halbtc8821c1ant_table()
1789 halbtc8821c1ant_set_table(btc, force_exec, 0x656a656a, in halbtc8821c1ant_table()
1794 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1799 halbtc8821c1ant_set_table(btc, force_exec, 0x6a5a5a5a, in halbtc8821c1ant_table()
1804 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1809 halbtc8821c1ant_set_table(btc, force_exec, 0x56555555, in halbtc8821c1ant_table()
1814 halbtc8821c1ant_set_table(btc, force_exec, 0xffffffff, in halbtc8821c1ant_table()
1819 halbtc8821c1ant_set_table(btc, force_exec, 0xffffffff, in halbtc8821c1ant_table()
1824 halbtc8821c1ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c1ant_table()
1829 halbtc8821c1ant_set_table(btc, force_exec, 0x6a555a5a, in halbtc8821c1ant_table()
1839 halbtc8821c1ant_wltoggle_table(IN struct btc_coexist *btc, in halbtc8821c1ant_wltoggle_table() argument
1871 btc->btc_fill_h2c(btc, 0x69, 6, cur_h2c_parameter); in halbtc8821c1ant_wltoggle_table()
1875 void halbtc8821c1ant_ignore_wlan_act(struct btc_coexist *btc, in halbtc8821c1ant_ignore_wlan_act() argument
1878 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_ignore_wlan_act()
1881 if (btc->manual_control || btc->stop_coex_dm) in halbtc8821c1ant_ignore_wlan_act()
1892 btc->btc_fill_h2c(btc, 0x63, 1, h2c_parameter); in halbtc8821c1ant_ignore_wlan_act()
1898 void halbtc8821c1ant_lps_rpwm(struct btc_coexist *btc, boolean force_exec, in halbtc8821c1ant_lps_rpwm() argument
1901 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_lps_rpwm()
1909 btc->btc_set(btc, BTC_SET_U1_LPS_VAL, &lps_val); in halbtc8821c1ant_lps_rpwm()
1910 btc->btc_set(btc, BTC_SET_U1_RPWM_VAL, &rpwm_val); in halbtc8821c1ant_lps_rpwm()
1918 void halbtc8821c1ant_multiport_tdma(struct btc_coexist *btc, u8 multi_port_mode)
1943 btc->btc_set(btc, BTC_SET_WIFI_BT_COEX_MODE, &multiport_tdma_para);
1950 void halbtc8821c1ant_tdma_check(struct btc_coexist *btc, boolean new_ps_state) in halbtc8821c1ant_tdma_check() argument
1955 btc->btc_get(btc, BTC_GET_U1_LPS_MODE, &lps_mode); in halbtc8821c1ant_tdma_check()
1962 btc->btc_fill_h2c(btc, 0x60, 5, h2c_parameter); in halbtc8821c1ant_tdma_check()
1967 btc->btc_fill_h2c(btc, 0x60, 5, h2c_parameter); in halbtc8821c1ant_tdma_check()
1975 boolean halbtc8821c1ant_power_save_state(struct btc_coexist *btc, u8 ps_type, in halbtc8821c1ant_power_save_state() argument
1978 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_power_save_state()
1989 btc->btc_set(btc, BTC_SET_ACT_PRE_NORMAL_LPS, NULL); in halbtc8821c1ant_power_save_state()
1993 halbtc8821c1ant_tdma_check(btc, TRUE); in halbtc8821c1ant_power_save_state()
1994 halbtc8821c1ant_lps_rpwm(btc, NM_EXCU, lps_val, rpwm_val); in halbtc8821c1ant_power_save_state()
1997 btc->btc_set(btc, BTC_SET_ACT_DISABLE_LOW_POWER, in halbtc8821c1ant_power_save_state()
2000 btc->btc_set(btc, BTC_SET_ACT_ENTER_LPS, NULL); in halbtc8821c1ant_power_save_state()
2004 halbtc8821c1ant_tdma_check(btc, FALSE); in halbtc8821c1ant_power_save_state()
2005 result = btc->btc_set(btc, BTC_SET_ACT_LEAVE_LPS, NULL); in halbtc8821c1ant_power_save_state()
2015 void halbtc8821c1ant_set_tdma(struct btc_coexist *btc, u8 byte1, u8 byte2, in halbtc8821c1ant_set_tdma() argument
2018 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_set_tdma()
2019 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_set_tdma()
2030 if (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO && in halbtc8821c1ant_set_tdma()
2031 btc->wifi_link_info.bhotspot && in halbtc8821c1ant_set_tdma()
2032 btc->wifi_link_info.bany_client_join_go) in halbtc8821c1ant_set_tdma()
2046 halbtc8821c1ant_power_save_state(btc, ps_type, 0x0, 0x0); in halbtc8821c1ant_set_tdma()
2054 if (!halbtc8821c1ant_power_save_state(btc, ps_type, 0x50, 0x4)) in halbtc8821c1ant_set_tdma()
2063 halbtc8821c1ant_power_save_state(btc, ps_type, 0x0, 0x0); in halbtc8821c1ant_set_tdma()
2081 btc->btc_fill_h2c(btc, 0x60, 5, h2c_parameter); in halbtc8821c1ant_set_tdma()
2102 btc->btc_set(btc, BTC_SET_ACT_POST_NORMAL_LPS, NULL); in halbtc8821c1ant_set_tdma()
2106 void halbtc8821c1ant_tdma(struct btc_coexist *btc, boolean force_exec, in halbtc8821c1ant_tdma() argument
2109 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_tdma()
2110 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_tdma()
2114 btc->btc_set_atomic(btc, &coex_dm->setting_tdma, TRUE); in halbtc8821c1ant_tdma()
2116 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c1ant_tdma()
2122 halbtc8821c1ant_set_tdma_timer_base(btc, 3); in halbtc8821c1ant_tdma()
2124 halbtc8821c1ant_set_tdma_timer_base(btc, 0); in halbtc8821c1ant_tdma()
2138 btc->btc_set_atomic(btc, &coex_dm->setting_tdma, FALSE); in halbtc8821c1ant_tdma()
2145 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_TDMA, in halbtc8821c1ant_tdma()
2148 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_TDMA, in halbtc8821c1ant_tdma()
2158 btc->btc_write_1byte_bitmask(btc, 0x550, 0x8, 0x1); in halbtc8821c1ant_tdma()
2162 halbtc8821c1ant_set_tdma(btc, 0x61, 0x35, 0x03, 0x11, in halbtc8821c1ant_tdma()
2166 halbtc8821c1ant_set_tdma(btc, 0x51, 0x30, 0x03, 0x10, in halbtc8821c1ant_tdma()
2170 halbtc8821c1ant_set_tdma(btc, 0x51, 0x21, 0x03, 0x10, in halbtc8821c1ant_tdma()
2174 halbtc8821c1ant_set_tdma(btc, 0x61, 0x3a, 0x03, 0x11, in halbtc8821c1ant_tdma()
2178 halbtc8821c1ant_set_tdma(btc, 0x61, 0x20, 0x03, 0x11, in halbtc8821c1ant_tdma()
2182 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x03, 0x10, in halbtc8821c1ant_tdma()
2186 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x03, 0x10, in halbtc8821c1ant_tdma()
2190 halbtc8821c1ant_set_tdma(btc, 0x55, 0x08, 0x03, 0x10, in halbtc8821c1ant_tdma()
2194 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x07, 0x10, in halbtc8821c1ant_tdma()
2198 halbtc8821c1ant_set_tdma(btc, 0x61, 0x25, 0x03, 0x11, in halbtc8821c1ant_tdma()
2202 halbtc8821c1ant_set_tdma(btc, 0x51, 0x35, 0x03, 0x10, in halbtc8821c1ant_tdma()
2206 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x07, 0x10, in halbtc8821c1ant_tdma()
2210 halbtc8821c1ant_set_tdma(btc, 0x51, 0x15, 0x03, 0x10, in halbtc8821c1ant_tdma()
2214 halbtc8821c1ant_set_tdma(btc, 0x51, 0x20, 0x03, 0x10, in halbtc8821c1ant_tdma()
2218 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x03, 0x10, in halbtc8821c1ant_tdma()
2222 halbtc8821c1ant_set_tdma(btc, 0x61, 0x08, 0x03, 0x11, in halbtc8821c1ant_tdma()
2226 halbtc8821c1ant_set_tdma(btc, 0x51, 0x30, 0x03, 0x10, in halbtc8821c1ant_tdma()
2230 halbtc8821c1ant_set_tdma(btc, 0x61, 0x08, 0x03, 0x11, in halbtc8821c1ant_tdma()
2234 halbtc8821c1ant_set_tdma(btc, 0x51, 0x10, 0x03, 0x10, in halbtc8821c1ant_tdma()
2238 halbtc8821c1ant_set_tdma(btc, 0x61, 0x30, 0x03, 0x11, in halbtc8821c1ant_tdma()
2242 halbtc8821c1ant_set_tdma(btc, 0x61, 0x25, 0x03, 0x11, in halbtc8821c1ant_tdma()
2246 halbtc8821c1ant_set_tdma(btc, 0x61, 0x10, 0x03, 0x11, in halbtc8821c1ant_tdma()
2250 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x03, 0x10, in halbtc8821c1ant_tdma()
2254 halbtc8821c1ant_set_tdma(btc, 0x51, 0x3a, 0x03, 0x10, in halbtc8821c1ant_tdma()
2258 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x03, 0x10, in halbtc8821c1ant_tdma()
2262 halbtc8821c1ant_set_tdma(btc, 0x61, 0x08, 0x03, 0x11, in halbtc8821c1ant_tdma()
2266 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x0b, 0x10, in halbtc8821c1ant_tdma()
2270 halbtc8821c1ant_set_tdma(btc, 0x61, 0x35, 0x03, 0x11, in halbtc8821c1ant_tdma()
2274 halbtc8821c1ant_set_tdma(btc, 0x61, 0x35, 0x03, 0x11, in halbtc8821c1ant_tdma()
2278 halbtc8821c1ant_set_tdma(btc, 0x61, 0x3f, 0x03, 0x11, in halbtc8821c1ant_tdma()
2282 halbtc8821c1ant_set_tdma(btc, 0x61, 0x45, 0x03, 0x11, in halbtc8821c1ant_tdma()
2286 halbtc8821c1ant_set_tdma(btc, 0x61, 0x3a, 0x03, 0x11, in halbtc8821c1ant_tdma()
2290 halbtc8821c1ant_set_tdma(btc, 0x65, 0x10, 0x03, 0x11, in halbtc8821c1ant_tdma()
2294 halbtc8821c1ant_set_tdma(btc, 0x55, 0x08, 0x3, 0x10, in halbtc8821c1ant_tdma()
2298 halbtc8821c1ant_set_tdma(btc, 0x51, 0x4a, 0x3, 0x10, in halbtc8821c1ant_tdma()
2302 halbtc8821c1ant_set_tdma(btc, 0x51, 0x08, 0x3, 0x30, in halbtc8821c1ant_tdma()
2313 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_TDMA, FALSE); in halbtc8821c1ant_tdma()
2318 halbtc8821c1ant_set_tdma(btc, 0x8, 0x0, 0x0, 0x0, 0x0); in halbtc8821c1ant_tdma()
2322 halbtc8821c1ant_set_tdma(btc, 0x0, 0x0, 0x0, 0x0, 0x0); in halbtc8821c1ant_tdma()
2327 halbtc8821c1ant_set_tdma(btc, 0x0, 0x0, 0x0, 0x48, 0x0); in halbtc8821c1ant_tdma()
2340 btc->btc_set_atomic(btc, &coex_dm->setting_tdma, FALSE); in halbtc8821c1ant_tdma()
2344 void halbtc8821c1ant_set_ant_switch(struct btc_coexist *btc, in halbtc8821c1ant_set_ant_switch() argument
2348 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_set_ant_switch()
2349 struct rfe_type_8821c_1ant *rfe_type = &btc->rfe_type_8821c_1ant; in halbtc8821c1ant_set_ant_switch()
2350 struct btc_board_info *board_info = &btc->board_info; in halbtc8821c1ant_set_ant_switch()
2402 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c1ant_set_ant_switch()
2404 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x1); in halbtc8821c1ant_set_ant_switch()
2406 btc->btc_write_1byte_bitmask(btc, 0xcb4, 0xff, 0x77); in halbtc8821c1ant_set_ant_switch()
2411 btc->btc_write_1byte_bitmask(btc, 0xcb7, 0x30, val); in halbtc8821c1ant_set_ant_switch()
2415 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c1ant_set_ant_switch()
2417 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x1); in halbtc8821c1ant_set_ant_switch()
2419 btc->btc_write_1byte_bitmask(btc, 0xcb4, 0xff, 0x66); in halbtc8821c1ant_set_ant_switch()
2424 btc->btc_write_1byte_bitmask(btc, 0xcb7, 0x30, val); in halbtc8821c1ant_set_ant_switch()
2428 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c1ant_set_ant_switch()
2430 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x1); in halbtc8821c1ant_set_ant_switch()
2431 btc->btc_write_1byte_bitmask(btc, 0xcb4, 0xff, 0x88); in halbtc8821c1ant_set_ant_switch()
2439 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x1); in halbtc8821c1ant_set_ant_switch()
2444 btc->btc_write_1byte_bitmask(btc, 0x64, 0x1, val); in halbtc8821c1ant_set_ant_switch()
2448 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c1ant_set_ant_switch()
2450 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x1); in halbtc8821c1ant_set_ant_switch()
2454 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c1ant_set_ant_switch()
2456 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x0); in halbtc8821c1ant_set_ant_switch()
2466 btc->btc_write_1byte_bitmask(btc, 0x67, 0x20, 0x0); in halbtc8821c1ant_set_ant_switch()
2468 btc->btc_write_1byte_bitmask(btc, 0x67, 0x10, 0x0); in halbtc8821c1ant_set_ant_switch()
2471 btc->btc_write_1byte_bitmask(btc, 0x67, 0x20, 0x1); in halbtc8821c1ant_set_ant_switch()
2473 btc->btc_write_1byte_bitmask(btc, 0x67, 0x10, 0x1); in halbtc8821c1ant_set_ant_switch()
2478 void halbtc8821c1ant_set_rfe_type(struct btc_coexist *btc) in halbtc8821c1ant_set_rfe_type() argument
2480 struct btc_board_info *board_info = &btc->board_info; in halbtc8821c1ant_set_rfe_type()
2481 struct rfe_type_8821c_1ant *rfe_type = &btc->rfe_type_8821c_1ant; in halbtc8821c1ant_set_rfe_type()
2550 void halbtc8821c1ant_set_ant_path(struct btc_coexist *btc, in halbtc8821c1ant_set_ant_path() argument
2554 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_set_ant_path()
2555 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_set_ant_path()
2556 struct rfe_type_8821c_1ant *rfe_type = &btc->rfe_type_8821c_1ant; in halbtc8821c1ant_set_ant_path()
2567 if (btc->dbg_mode) { in halbtc8821c1ant_set_ant_path()
2568 u32tmp1 = btc->btc_read_4byte(btc, 0xcb4); in halbtc8821c1ant_set_ant_path()
2569 u32tmp2 = btc->btc_read_4byte(btc, 0xcbc); in halbtc8821c1ant_set_ant_path()
2570 u8tmp = btc->btc_read_1byte(btc, 0x73); in halbtc8821c1ant_set_ant_path()
2582 halbtc8821c1ant_coex_ctrl_owner(btc, BT_8821C_1ANT_PCO_BTSIDE); in halbtc8821c1ant_set_ant_path()
2593 halbtc8821c1ant_ltecoex_enable(btc, 0x0); in halbtc8821c1ant_set_ant_path()
2598 halbtc8821c1ant_ltecoex_table(btc, BT_8821C_1ANT_CTT_WL_VS_LTE, in halbtc8821c1ant_set_ant_path()
2604 halbtc8821c1ant_ltecoex_table(btc, BT_8821C_1ANT_CTT_BT_VS_LTE, in halbtc8821c1ant_set_ant_path()
2611 u8tmp = btc->btc_read_1byte(btc, 0x49c); in halbtc8821c1ant_set_ant_path()
2629 halbtc8821c1ant_coex_ctrl_owner(btc, BT_8821C_1ANT_PCO_WLSIDE); in halbtc8821c1ant_set_ant_path()
2632 halbtc8821c1ant_set_gnt_bt(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c1ant_set_ant_path()
2634 halbtc8821c1ant_set_gnt_wl(btc, BTC_GNT_SET_SW_LOW); in halbtc8821c1ant_set_ant_path()
2645 halbtc8821c1ant_ltecoex_enable(btc, 0x0); in halbtc8821c1ant_set_ant_path()
2650 halbtc8821c1ant_ltecoex_table(btc, BT_8821C_1ANT_CTT_WL_VS_LTE, in halbtc8821c1ant_set_ant_path()
2656 halbtc8821c1ant_ltecoex_table(btc, BT_8821C_1ANT_CTT_BT_VS_LTE, in halbtc8821c1ant_set_ant_path()
2660 halbtc8821c1ant_coex_ctrl_owner(btc, BT_8821C_1ANT_PCO_WLSIDE); in halbtc8821c1ant_set_ant_path()
2663 halbtc8821c1ant_set_gnt_bt(btc, BTC_GNT_SET_SW_LOW); in halbtc8821c1ant_set_ant_path()
2665 halbtc8821c1ant_set_gnt_wl(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c1ant_set_ant_path()
2674 halbtc8821c1ant_ltecoex_enable(btc, 0x0); in halbtc8821c1ant_set_ant_path()
2677 halbtc8821c1ant_coex_ctrl_owner(btc, in halbtc8821c1ant_set_ant_path()
2685 u8tmp = btc->btc_read_1byte(btc, 0x49c); in halbtc8821c1ant_set_ant_path()
2710 halbtc8821c1ant_coex_ctrl_owner(btc, BT_8821C_1ANT_PCO_WLSIDE); in halbtc8821c1ant_set_ant_path()
2713 halbtc8821c1ant_set_gnt_bt(btc, BTC_GNT_SET_HW_PTA); in halbtc8821c1ant_set_ant_path()
2715 halbtc8821c1ant_set_gnt_wl(btc, BTC_GNT_SET_HW_PTA); in halbtc8821c1ant_set_ant_path()
2729 halbtc8821c1ant_coex_ctrl_owner(btc, BT_8821C_1ANT_PCO_WLSIDE); in halbtc8821c1ant_set_ant_path()
2732 halbtc8821c1ant_set_gnt_bt(btc, BTC_GNT_SET_HW_PTA); in halbtc8821c1ant_set_ant_path()
2735 halbtc8821c1ant_set_gnt_wl(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c1ant_set_ant_path()
2744 halbtc8821c1ant_ltecoex_enable(btc, 0x0); in halbtc8821c1ant_set_ant_path()
2747 halbtc8821c1ant_coex_ctrl_owner(btc, BT_8821C_1ANT_PCO_WLSIDE); in halbtc8821c1ant_set_ant_path()
2750 halbtc8821c1ant_set_gnt_bt(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c1ant_set_ant_path()
2753 halbtc8821c1ant_set_gnt_wl(btc, BTC_GNT_SET_SW_LOW); in halbtc8821c1ant_set_ant_path()
2762 halbtc8821c1ant_coex_ctrl_owner(btc, BT_8821C_1ANT_PCO_WLSIDE); in halbtc8821c1ant_set_ant_path()
2765 halbtc8821c1ant_set_gnt_bt(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c1ant_set_ant_path()
2767 halbtc8821c1ant_set_gnt_wl(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c1ant_set_ant_path()
2776 halbtc8821c1ant_coex_ctrl_owner(btc, BT_8821C_1ANT_PCO_WLSIDE); in halbtc8821c1ant_set_ant_path()
2779 halbtc8821c1ant_set_gnt_bt(btc, BTC_GNT_SET_HW_PTA); in halbtc8821c1ant_set_ant_path()
2781 halbtc8821c1ant_set_gnt_wl(btc, BTC_GNT_SET_HW_PTA); in halbtc8821c1ant_set_ant_path()
2819 halbtc8821c1ant_set_ant_switch(btc, force_exec, ctrl_type, pos_type); in halbtc8821c1ant_set_ant_path()
2821 if (btc->dbg_mode) { in halbtc8821c1ant_set_ant_path()
2822 u32tmp1 = btc->btc_read_4byte(btc, 0xcbc); in halbtc8821c1ant_set_ant_path()
2823 u32tmp2 = btc->btc_read_4byte(btc, 0xcb4); in halbtc8821c1ant_set_ant_path()
2824 u8tmp = btc->btc_read_1byte(btc, 0x73); in halbtc8821c1ant_set_ant_path()
2834 u8 halbtc8821c1ant_action_algorithm(struct btc_coexist *btc) in halbtc8821c1ant_action_algorithm() argument
2836 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_action_algorithm()
2955 void halbtc8821c1ant_action_coex_all_off(struct btc_coexist *btc) in halbtc8821c1ant_action_coex_all_off() argument
2957 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_coex_all_off()
2958 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c1ant_action_coex_all_off()
2962 void halbtc8821c1ant_action_bt_whql_test(struct btc_coexist *btc) in halbtc8821c1ant_action_bt_whql_test() argument
2964 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_bt_whql_test()
2966 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_bt_whql_test()
2967 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_bt_whql_test()
2971 void halbtc8821c1ant_action_bt_relink(struct btc_coexist *btc) in halbtc8821c1ant_action_bt_relink() argument
2973 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_bt_relink()
2974 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_action_bt_relink()
2977 halbtc8821c1ant_table(btc, NM_EXCU, 4); in halbtc8821c1ant_action_bt_relink()
2980 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_relink()
2983 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 20); in halbtc8821c1ant_action_bt_relink()
2985 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_bt_relink()
2986 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_bt_relink()
2991 void halbtc8821c1ant_action_bt_idle(struct btc_coexist *btc) in halbtc8821c1ant_action_bt_idle() argument
2993 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_bt_idle()
2994 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_action_bt_idle()
2997 halbtc8821c1ant_table(btc, NM_EXCU, 4); in halbtc8821c1ant_action_bt_idle()
2998 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 32); in halbtc8821c1ant_action_bt_idle()
3002 halbtc8821c1ant_table(btc, NM_EXCU, 2); in halbtc8821c1ant_action_bt_idle()
3004 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 36); in halbtc8821c1ant_action_bt_idle()
3006 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 34); in halbtc8821c1ant_action_bt_idle()
3008 halbtc8821c1ant_table(btc, NM_EXCU, 3); in halbtc8821c1ant_action_bt_idle()
3009 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 33); in halbtc8821c1ant_action_bt_idle()
3015 void halbtc8821c1ant_action_bt_inquiry(struct btc_coexist *btc) in halbtc8821c1ant_action_bt_inquiry() argument
3017 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_bt_inquiry()
3018 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_action_bt_inquiry()
3021 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in halbtc8821c1ant_action_bt_inquiry()
3022 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c1ant_action_bt_inquiry()
3031 halbtc8821c1ant_table(btc, NM_EXCU, 2); in halbtc8821c1ant_action_bt_inquiry()
3034 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 23); in halbtc8821c1ant_action_bt_inquiry()
3036 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 36); in halbtc8821c1ant_action_bt_inquiry()
3038 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 21); in halbtc8821c1ant_action_bt_inquiry()
3040 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 6); in halbtc8821c1ant_action_bt_inquiry()
3046 halbtc8821c1ant_table(btc, NM_EXCU, 2); in halbtc8821c1ant_action_bt_inquiry()
3047 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 20); in halbtc8821c1ant_action_bt_inquiry()
3053 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_inquiry()
3054 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 19); in halbtc8821c1ant_action_bt_inquiry()
3059 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_bt_inquiry()
3060 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_bt_inquiry()
3065 void halbtc8821c1ant_action_bt_sco_hid_busy(struct btc_coexist *btc) in halbtc8821c1ant_action_bt_sco_hid_busy() argument
3067 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_bt_sco_hid_busy()
3068 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_action_bt_sco_hid_busy()
3079 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_sco_hid_busy()
3080 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 25); in halbtc8821c1ant_action_bt_sco_hid_busy()
3082 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_sco_hid_busy()
3083 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 5); in halbtc8821c1ant_action_bt_sco_hid_busy()
3087 halbtc8821c1ant_table(btc, NM_EXCU, 16); in halbtc8821c1ant_action_bt_sco_hid_busy()
3088 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 37); in halbtc8821c1ant_action_bt_sco_hid_busy()
3090 halbtc8821c1ant_table(btc, NM_EXCU, 17); in halbtc8821c1ant_action_bt_sco_hid_busy()
3091 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 6); in halbtc8821c1ant_action_bt_sco_hid_busy()
3097 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_sco_hid_busy()
3098 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 18); in halbtc8821c1ant_action_bt_sco_hid_busy()
3105 halbtc8821c1ant_table(btc, NM_EXCU, 8); in halbtc8821c1ant_action_bt_sco_hid_busy()
3107 halbtc8821c1ant_table(btc, NM_EXCU, 3); in halbtc8821c1ant_action_bt_sco_hid_busy()
3108 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_sco_hid_busy()
3112 halbtc8821c1ant_table(btc, NM_EXCU, 22); in halbtc8821c1ant_action_bt_sco_hid_busy()
3113 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 19 in halbtc8821c1ant_action_bt_sco_hid_busy()
3117 halbtc8821c1ant_table(btc, NM_EXCU, 22); in halbtc8821c1ant_action_bt_sco_hid_busy()
3118 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 6); in halbtc8821c1ant_action_bt_sco_hid_busy()
3120 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_sco_hid_busy()
3121 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 6); in halbtc8821c1ant_action_bt_sco_hid_busy()
3127 void halbtc8821c1ant_action_bt_acl_busy(struct btc_coexist *btc) in halbtc8821c1ant_action_bt_acl_busy() argument
3129 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_bt_acl_busy()
3130 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_action_bt_acl_busy()
3134 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c1ant_action_bt_acl_busy()
3135 btc->btc_get(btc, BTC_GET_U1_AP_NUM, &coex_sta->scan_ap_num); in halbtc8821c1ant_action_bt_acl_busy()
3136 btc->btc_get(btc, BTC_GET_BL_WIFI_AP_MODE_ENABLE, &ap_enable); in halbtc8821c1ant_action_bt_acl_busy()
3146 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_bt_acl_busy()
3147 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_bt_acl_busy()
3149 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_acl_busy()
3150 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 4); in halbtc8821c1ant_action_bt_acl_busy()
3154 halbtc8821c1ant_table(btc, NM_EXCU, 3); in halbtc8821c1ant_action_bt_acl_busy()
3156 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_acl_busy()
3159 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_acl_busy()
3162 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_acl_busy()
3169 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_acl_busy()
3171 halbtc8821c1ant_table(btc, NM_EXCU, 3); in halbtc8821c1ant_action_bt_acl_busy()
3173 halbtc8821c1ant_table(btc, NM_EXCU, 4); in halbtc8821c1ant_action_bt_acl_busy()
3176 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 13); in halbtc8821c1ant_action_bt_acl_busy()
3178 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 14); in halbtc8821c1ant_action_bt_acl_busy()
3182 halbtc8821c1ant_table(btc, NM_EXCU, 16); in halbtc8821c1ant_action_bt_acl_busy()
3185 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_acl_busy()
3188 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_acl_busy()
3201 halbtc8821c1ant_table(btc, FC_EXCU, 4); in halbtc8821c1ant_action_bt_acl_busy()
3202 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_acl_busy()
3205 halbtc8821c1ant_table(btc, FC_EXCU, 4); in halbtc8821c1ant_action_bt_acl_busy()
3206 halbtc8821c1ant_wltoggle_table(btc, NM_EXCU, 1, in halbtc8821c1ant_action_bt_acl_busy()
3208 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_acl_busy()
3211 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_acl_busy()
3214 halbtc8821c1ant_table(btc, FC_EXCU, 4); in halbtc8821c1ant_action_bt_acl_busy()
3215 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, in halbtc8821c1ant_action_bt_acl_busy()
3222 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_bt_acl_busy()
3224 halbtc8821c1ant_table(btc, NM_EXCU, 3); in halbtc8821c1ant_action_bt_acl_busy()
3226 halbtc8821c1ant_table(btc, NM_EXCU, 4); in halbtc8821c1ant_action_bt_acl_busy()
3229 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 4); in halbtc8821c1ant_action_bt_acl_busy()
3231 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 3); in halbtc8821c1ant_action_bt_acl_busy()
3234 halbtc8821c1ant_table(btc, NM_EXCU, 4); in halbtc8821c1ant_action_bt_acl_busy()
3235 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 33); in halbtc8821c1ant_action_bt_acl_busy()
3240 void halbtc8821c1ant_action_bt_mr(struct btc_coexist *btc) in halbtc8821c1ant_action_bt_mr() argument
3243 &btc->wifi_link_info_8821c_1ant; in halbtc8821c1ant_action_bt_mr()
3246 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_bt_mr()
3249 halbtc8821c1ant_table(btc, NM_EXCU, 8); in halbtc8821c1ant_action_bt_mr()
3250 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 32); in halbtc8821c1ant_action_bt_mr()
3252 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_bt_mr()
3255 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_bt_mr()
3256 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_bt_mr()
3261 void halbtc8821c1ant_action_wifi_under5g(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_under5g() argument
3263 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_wifi_under5g()
3265 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_wifi_under5g()
3266 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_under5g()
3270 void halbtc8821c1ant_action_wifi_only(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_only() argument
3272 halbtc8821c1ant_table(btc, FC_EXCU, 10); in halbtc8821c1ant_action_wifi_only()
3273 halbtc8821c1ant_tdma(btc, FC_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_only()
3277 void halbtc8821c1ant_action_wifi_native_lps(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_native_lps() argument
3279 halbtc8821c1ant_table(btc, NM_EXCU, 21); in halbtc8821c1ant_action_wifi_native_lps()
3280 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_native_lps()
3284 void halbtc8821c1ant_action_wifi_linkscan(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_linkscan() argument
3286 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_wifi_linkscan()
3287 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_action_wifi_linkscan()
3290 halbtc8821c1ant_table(btc, NM_EXCU, 26); in halbtc8821c1ant_action_wifi_linkscan()
3291 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 22); in halbtc8821c1ant_action_wifi_linkscan()
3293 halbtc8821c1ant_table(btc, NM_EXCU, 4); in halbtc8821c1ant_action_wifi_linkscan()
3294 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 27); in halbtc8821c1ant_action_wifi_linkscan()
3296 halbtc8821c1ant_table(btc, NM_EXCU, 4); in halbtc8821c1ant_action_wifi_linkscan()
3297 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 21); in halbtc8821c1ant_action_wifi_linkscan()
3302 void halbtc8821c1ant_action_wifi_not_connected(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_not_connected() argument
3305 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_wifi_not_connected()
3306 halbtc8821c1ant_tdma(btc, FC_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_not_connected()
3310 void halbtc8821c1ant_action_wifi_connected(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_connected() argument
3312 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_action_wifi_connected()
3313 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_action_wifi_connected()
3315 coex_dm->cur_algorithm = halbtc8821c1ant_action_algorithm(btc); in halbtc8821c1ant_action_wifi_connected()
3322 halbtc8821c1ant_action_bt_sco_hid_busy(btc); in halbtc8821c1ant_action_wifi_connected()
3324 halbtc8821c1ant_action_bt_acl_busy(btc); in halbtc8821c1ant_action_wifi_connected()
3327 halbtc8821c1ant_action_bt_sco_hid_busy(btc); in halbtc8821c1ant_action_wifi_connected()
3329 halbtc8821c1ant_action_bt_idle(btc); in halbtc8821c1ant_action_wifi_connected()
3334 void halbtc8821c1ant_action_wifi_multiport25g(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_multiport25g() argument
3336 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_wifi_multiport25g()
3338 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_wifi_multiport25g()
3341 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_BTCQDDR, TRUE); in halbtc8821c1ant_action_wifi_multiport25g()
3348 halbtc8821c1ant_table(btc, NM_EXCU, 15); in halbtc8821c1ant_action_wifi_multiport25g()
3349 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_multiport25g()
3355 halbtc8821c1ant_table(btc, NM_EXCU, 15); in halbtc8821c1ant_action_wifi_multiport25g()
3356 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_multiport25g()
3365 halbtc8821c1ant_table(btc, NM_EXCU, 23); in halbtc8821c1ant_action_wifi_multiport25g()
3368 halbtc8821c1ant_table(btc, NM_EXCU, 24); in halbtc8821c1ant_action_wifi_multiport25g()
3370 halbtc8821c1ant_table(btc, NM_EXCU, 15); in halbtc8821c1ant_action_wifi_multiport25g()
3372 halbtc8821c1ant_table(btc, NM_EXCU, 15); in halbtc8821c1ant_action_wifi_multiport25g()
3375 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_multiport25g()
3379 static void halbtc8821c1ant_action_wifi_scc2g(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_scc2g() argument
3381 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_wifi_scc2g()
3386 halbtc8821c1ant_table(btc, NM_EXCU, 4); in halbtc8821c1ant_action_wifi_scc2g()
3387 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 50); in halbtc8821c1ant_action_wifi_scc2g()
3389 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_wifi_scc2g()
3390 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c1ant_action_wifi_scc2g()
3393 halbtc8821c1ant_table(btc, NM_EXCU, 11); in halbtc8821c1ant_action_wifi_scc2g()
3394 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 51); in halbtc8821c1ant_action_wifi_scc2g()
3396 halbtc8821c1ant_table(btc, NM_EXCU, 11); in halbtc8821c1ant_action_wifi_scc2g()
3397 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 50); in halbtc8821c1ant_action_wifi_scc2g()
3402 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_wifi_scc2g()
3403 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 51); in halbtc8821c1ant_action_wifi_scc2g()
3405 halbtc8821c1ant_table(btc, NM_EXCU, 11); in halbtc8821c1ant_action_wifi_scc2g()
3406 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 51); in halbtc8821c1ant_action_wifi_scc2g()
3408 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_wifi_scc2g()
3409 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 50); in halbtc8821c1ant_action_wifi_scc2g()
3415 void halbtc8821c1ant_action_wifi_multiport2g(struct btc_coexist *btc) in halbtc8821c1ant_action_wifi_multiport2g() argument
3417 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_action_wifi_multiport2g()
3421 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_BTCQDDR, TRUE); in halbtc8821c1ant_action_wifi_multiport2g()
3422 btc->btc_get(btc, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, &traffic_dir); in halbtc8821c1ant_action_wifi_multiport2g()
3429 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_wifi_multiport2g()
3432 halbtc8821c1ant_table(btc, NM_EXCU, 0); in halbtc8821c1ant_action_wifi_multiport2g()
3433 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_multiport2g()
3439 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_wifi_multiport2g()
3442 halbtc8821c1ant_table(btc, NM_EXCU, 1); in halbtc8821c1ant_action_wifi_multiport2g()
3443 halbtc8821c1ant_tdma(btc, NM_EXCU, TRUE, 33); in halbtc8821c1ant_action_wifi_multiport2g()
3449 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_wifi_multiport2g()
3452 if (btc->chip_interface == BTC_INTF_PCI && in halbtc8821c1ant_action_wifi_multiport2g()
3453 (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO || in halbtc8821c1ant_action_wifi_multiport2g()
3454 btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GC)) in halbtc8821c1ant_action_wifi_multiport2g()
3455 halbtc8821c1ant_table(btc, NM_EXCU, 10); in halbtc8821c1ant_action_wifi_multiport2g()
3457 halbtc8821c1ant_table(btc, NM_EXCU, 19); in halbtc8821c1ant_action_wifi_multiport2g()
3459 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_multiport2g()
3465 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_wifi_multiport2g()
3467 halbtc8821c1ant_action_wifi_linkscan(btc); in halbtc8821c1ant_action_wifi_multiport2g()
3470 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_action_wifi_multiport2g()
3473 switch (btc->wifi_link_info.link_mode) { in halbtc8821c1ant_action_wifi_multiport2g()
3476 halbtc8821c1ant_action_wifi_scc2g(btc); in halbtc8821c1ant_action_wifi_multiport2g()
3481 if (btc->chip_interface == BTC_INTF_PCI && in halbtc8821c1ant_action_wifi_multiport2g()
3483 PADAPTER Adapter=(PADAPTER)btc->Adapter; in halbtc8821c1ant_action_wifi_multiport2g()
3486 halbtc8821c1ant_table(btc, NM_EXCU, 16); in halbtc8821c1ant_action_wifi_multiport2g()
3487 halbtc8821c1ant_tdma(btc, NM_EXCU, in halbtc8821c1ant_action_wifi_multiport2g()
3490 halbtc8821c1ant_table(btc, NM_EXCU, 11); in halbtc8821c1ant_action_wifi_multiport2g()
3491 halbtc8821c1ant_tdma(btc, NM_EXCU, in halbtc8821c1ant_action_wifi_multiport2g()
3497 halbtc8821c1ant_table(btc, NM_EXCU, 19); in halbtc8821c1ant_action_wifi_multiport2g()
3498 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_multiport2g()
3503 halbtc8821c1ant_table(btc, NM_EXCU, 19); in halbtc8821c1ant_action_wifi_multiport2g()
3504 halbtc8821c1ant_tdma(btc, NM_EXCU, FALSE, 8); in halbtc8821c1ant_action_wifi_multiport2g()
3511 void halbtc8821c1ant_run_coex(struct btc_coexist *btc, u8 reason) in halbtc8821c1ant_run_coex() argument
3513 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_run_coex()
3514 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in halbtc8821c1ant_run_coex()
3515 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c1ant_run_coex()
3517 &btc->wifi_link_info_8821c_1ant; in halbtc8821c1ant_run_coex()
3521 btc->btc_get(btc, BTC_GET_BL_WIFI_SCAN, &scan); in halbtc8821c1ant_run_coex()
3522 btc->btc_get(btc, BTC_GET_BL_WIFI_LINK, &link); in halbtc8821c1ant_run_coex()
3523 btc->btc_get(btc, BTC_GET_BL_WIFI_ROAM, &roam); in halbtc8821c1ant_run_coex()
3524 btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way); in halbtc8821c1ant_run_coex()
3525 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in halbtc8821c1ant_run_coex()
3526 btc->btc_get(btc, BTC_GET_BL_WIFI_LW_PWR_STATE, &wifi_32k); in halbtc8821c1ant_run_coex()
3543 halbtc8821c1ant_update_wifi_link_info(btc, reason); in halbtc8821c1ant_run_coex()
3552 if (btc->manual_control) { in halbtc8821c1ant_run_coex()
3559 if (btc->stop_coex_dm) { in halbtc8821c1ant_run_coex()
3602 halbtc8821c1ant_action_bt_mr(btc); in halbtc8821c1ant_run_coex()
3612 halbtc8821c1ant_action_wifi_under5g(btc); in halbtc8821c1ant_run_coex()
3623 halbtc8821c1ant_action_wifi_multiport25g(btc); in halbtc8821c1ant_run_coex()
3628 (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO && in halbtc8821c1ant_run_coex()
3629 !btc->wifi_link_info.bhotspot && in halbtc8821c1ant_run_coex()
3630 btc->wifi_link_info.bany_client_join_go)) { in halbtc8821c1ant_run_coex()
3635 if (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO) in halbtc8821c1ant_run_coex()
3639 halbtc8821c1ant_action_wifi_multiport2g(btc); in halbtc8821c1ant_run_coex()
3649 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c1ant_run_coex()
3656 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_BTCQDDR, in halbtc8821c1ant_run_coex()
3659 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_BTCQDDR, in halbtc8821c1ant_run_coex()
3667 halbtc8821c1ant_action_wifi_only(btc); in halbtc8821c1ant_run_coex()
3676 halbtc8821c1ant_action_wifi_native_lps(btc); in halbtc8821c1ant_run_coex()
3684 halbtc8821c1ant_action_bt_whql_test(btc); in halbtc8821c1ant_run_coex()
3692 halbtc8821c1ant_action_bt_relink(btc); in halbtc8821c1ant_run_coex()
3700 halbtc8821c1ant_action_bt_inquiry(btc); in halbtc8821c1ant_run_coex()
3710 halbtc8821c1ant_action_bt_idle(btc); in halbtc8821c1ant_run_coex()
3718 halbtc8821c1ant_action_wifi_linkscan(btc); in halbtc8821c1ant_run_coex()
3727 halbtc8821c1ant_action_wifi_connected(btc); in halbtc8821c1ant_run_coex()
3733 halbtc8821c1ant_action_wifi_not_connected(btc); in halbtc8821c1ant_run_coex()
3737 static void halbtc8821c1ant_init_coex_var(struct btc_coexist *btc) in halbtc8821c1ant_init_coex_var() argument
3739 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_init_coex_var()
3742 btc->btc_set(btc, BTC_SET_RESET_COEX_VAR, NULL); in halbtc8821c1ant_init_coex_var()
3748 btc->bt_info.bt_get_fw_ver = 0; in halbtc8821c1ant_init_coex_var()
3752 void halbtc8821c1ant_init_coex_dm(struct btc_coexist *btc) in halbtc8821c1ant_init_coex_dm() argument
3757 void halbtc8821c1ant_init_hw_config(struct btc_coexist *btc, boolean back_up, in halbtc8821c1ant_init_hw_config() argument
3760 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in halbtc8821c1ant_init_hw_config()
3764 struct btc_board_info *board_info = &btc->board_info; in halbtc8821c1ant_init_hw_config()
3770 u32tmp3 = btc->btc_read_4byte(btc, 0xcb4); in halbtc8821c1ant_init_hw_config()
3771 u32tmp1 = halbtc8821c1ant_read_indirect_reg(btc, 0x38); in halbtc8821c1ant_init_hw_config()
3772 u32tmp2 = halbtc8821c1ant_read_indirect_reg(btc, 0x54); in halbtc8821c1ant_init_hw_config()
3780 halbtc8821c1ant_init_coex_var(btc); in halbtc8821c1ant_init_hw_config()
3783 coex_sta->kt_ver = (btc->btc_read_1byte(btc, 0xf1) & 0xf0) >> 4; in halbtc8821c1ant_init_hw_config()
3786 btc->btc_write_1byte_bitmask(btc, 0x550, 0x8, 0x1); in halbtc8821c1ant_init_hw_config()
3789 btc->btc_write_1byte(btc, 0x790, 0x5); in halbtc8821c1ant_init_hw_config()
3792 btc->btc_write_1byte(btc, 0x778, 0x1); in halbtc8821c1ant_init_hw_config()
3795 btc->btc_write_1byte_bitmask(btc, 0x40, 0x20, 0x1); in halbtc8821c1ant_init_hw_config()
3796 btc->btc_write_1byte_bitmask(btc, 0x41, 0x02, 0x1); in halbtc8821c1ant_init_hw_config()
3799 btc->btc_write_1byte_bitmask(btc, 0x4c6, 0x30, 0x1); in halbtc8821c1ant_init_hw_config()
3802 btc->btc_write_1byte_bitmask(btc, 0x763, 0x10, 0x1); in halbtc8821c1ant_init_hw_config()
3805 btc->btc_write_1byte_bitmask(btc, 0x6cf, BIT(3), 0x1); in halbtc8821c1ant_init_hw_config()
3807 halbtc8821c1ant_enable_gnt_to_gpio(btc, TRUE); in halbtc8821c1ant_init_hw_config()
3810 if (btc->wl_rf_state_off) { in halbtc8821c1ant_init_hw_config()
3811 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in halbtc8821c1ant_init_hw_config()
3813 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ALL, FALSE); in halbtc8821c1ant_init_hw_config()
3814 btc->stop_coex_dm = TRUE; in halbtc8821c1ant_init_hw_config()
3821 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_WIFI, FC_EXCU, in halbtc8821c1ant_init_hw_config()
3823 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE | in halbtc8821c1ant_init_hw_config()
3826 btc->stop_coex_dm = TRUE; in halbtc8821c1ant_init_hw_config()
3829 btc->btc_set_rf_reg(btc, BTC_RF_A, 0x1, 0x2, 0x0); in halbtc8821c1ant_init_hw_config()
3831 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in halbtc8821c1ant_init_hw_config()
3833 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE | in halbtc8821c1ant_init_hw_config()
3836 btc->stop_coex_dm = FALSE; in halbtc8821c1ant_init_hw_config()
3840 halbtc8821c1ant_table(btc, FC_EXCU, 0); in halbtc8821c1ant_init_hw_config()
3841 halbtc8821c1ant_tdma(btc, FC_EXCU, FALSE, 8); in halbtc8821c1ant_init_hw_config()
3843 halbtc8821c1ant_query_bt_info(btc); in halbtc8821c1ant_init_hw_config()
3845 u32tmp3 = btc->btc_read_4byte(btc, 0xcb4); in halbtc8821c1ant_init_hw_config()
3846 u32tmp1 = halbtc8821c1ant_read_indirect_reg(btc, 0x38); in halbtc8821c1ant_init_hw_config()
3847 u32tmp2 = halbtc8821c1ant_read_indirect_reg(btc, 0x54); in halbtc8821c1ant_init_hw_config()
3856 void ex_halbtc8821c1ant_power_on_setting(struct btc_coexist *btc) in ex_halbtc8821c1ant_power_on_setting() argument
3858 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_power_on_setting()
3859 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c1ant_power_on_setting()
3868 btc->stop_coex_dm = TRUE; in ex_halbtc8821c1ant_power_on_setting()
3869 btc->wl_rf_state_off = FALSE; in ex_halbtc8821c1ant_power_on_setting()
3872 u16tmp = btc->btc_read_2byte(btc, 0x2); in ex_halbtc8821c1ant_power_on_setting()
3873 btc->btc_write_2byte(btc, 0x2, u16tmp | BIT(0) | BIT(1)); in ex_halbtc8821c1ant_power_on_setting()
3899 halbtc8821c1ant_set_rfe_type(btc); in ex_halbtc8821c1ant_power_on_setting()
3902 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_power_on_setting()
3905 halbtc8821c1ant_table(btc, FC_EXCU, 0); in ex_halbtc8821c1ant_power_on_setting()
3910 if (btc->chip_interface == BTC_INTF_PCI) in ex_halbtc8821c1ant_power_on_setting()
3911 btc->btc_write_local_reg_1byte(btc, 0x3e0, u8tmp); in ex_halbtc8821c1ant_power_on_setting()
3912 else if (btc->chip_interface == BTC_INTF_USB) in ex_halbtc8821c1ant_power_on_setting()
3913 btc->btc_write_local_reg_1byte(btc, 0xfe08, u8tmp); in ex_halbtc8821c1ant_power_on_setting()
3914 else if (btc->chip_interface == BTC_INTF_SDIO) in ex_halbtc8821c1ant_power_on_setting()
3915 btc->btc_write_local_reg_1byte(btc, 0x60, u8tmp); in ex_halbtc8821c1ant_power_on_setting()
3918 halbtc8821c1ant_enable_gnt_to_gpio(btc, TRUE); in ex_halbtc8821c1ant_power_on_setting()
3920 if (btc->dbg_mode) { in ex_halbtc8821c1ant_power_on_setting()
3923 halbtc8821c1ant_read_indirect_reg(btc, 0x38)); in ex_halbtc8821c1ant_power_on_setting()
3928 btc->btc_read_4byte(btc, 0x70), in ex_halbtc8821c1ant_power_on_setting()
3929 btc->btc_read_4byte(btc, 0xcb4)); in ex_halbtc8821c1ant_power_on_setting()
3934 void ex_halbtc8821c1ant_pre_load_firmware(struct btc_coexist *btc) in ex_halbtc8821c1ant_pre_load_firmware() argument
3938 void ex_halbtc8821c1ant_init_hw_config(struct btc_coexist *btc, in ex_halbtc8821c1ant_init_hw_config() argument
3941 halbtc8821c1ant_init_hw_config(btc, TRUE, wifi_only); in ex_halbtc8821c1ant_init_hw_config()
3944 void ex_halbtc8821c1ant_init_coex_dm(struct btc_coexist *btc) in ex_halbtc8821c1ant_init_coex_dm() argument
3946 btc->stop_coex_dm = FALSE; in ex_halbtc8821c1ant_init_coex_dm()
3947 btc->auto_report = TRUE; in ex_halbtc8821c1ant_init_coex_dm()
3948 btc->dbg_mode = FALSE; in ex_halbtc8821c1ant_init_coex_dm()
3949 halbtc8821c1ant_init_coex_dm(btc); in ex_halbtc8821c1ant_init_coex_dm()
3952 void ex_halbtc8821c1ant_display_simple_coex_info(struct btc_coexist *btc) in ex_halbtc8821c1ant_display_simple_coex_info() argument
3954 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_display_simple_coex_info()
3955 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in ex_halbtc8821c1ant_display_simple_coex_info()
3956 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c1ant_display_simple_coex_info()
3957 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in ex_halbtc8821c1ant_display_simple_coex_info()
3959 u8 *cli_buf = btc->cli_buf; in ex_halbtc8821c1ant_display_simple_coex_info()
3968 btc->btc_get(btc, BTC_GET_U4_SUPPORTED_FEATURE, in ex_halbtc8821c1ant_display_simple_coex_info()
3971 btc->btc_get(btc, BTC_GET_U4_SUPPORTED_VERSION, in ex_halbtc8821c1ant_display_simple_coex_info()
3974 coex_sta->bt_reg_vendor_ac = (u16)(btc->btc_get_bt_reg(btc, 3, in ex_halbtc8821c1ant_display_simple_coex_info()
3978 coex_sta->bt_reg_vendor_ae = (u16)(btc->btc_get_bt_reg(btc, 3, in ex_halbtc8821c1ant_display_simple_coex_info()
3982 btc->btc_get(btc, BTC_GET_U4_BT_PATCH_VER, &bt_patch_ver); in ex_halbtc8821c1ant_display_simple_coex_info()
3983 btc->bt_info.bt_get_fw_ver = bt_patch_ver; in ex_halbtc8821c1ant_display_simple_coex_info()
3986 btc->btc_get_bt_afh_map_from_bt(btc, 0, p); in ex_halbtc8821c1ant_display_simple_coex_info()
3996 if (btc->manual_control) { in ex_halbtc8821c1ant_display_simple_coex_info()
4005 if (btc->stop_coex_dm) { in ex_halbtc8821c1ant_display_simple_coex_info()
4058 void ex_halbtc8821c1ant_display_coex_info(struct btc_coexist *btc) in ex_halbtc8821c1ant_display_coex_info() argument
4060 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_display_coex_info()
4061 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in ex_halbtc8821c1ant_display_coex_info()
4062 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c1ant_display_coex_info()
4063 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in ex_halbtc8821c1ant_display_coex_info()
4065 u8 *cli_buf = btc->cli_buf; in ex_halbtc8821c1ant_display_coex_info()
4081 if (btc->manual_control) { in ex_halbtc8821c1ant_display_coex_info()
4088 } else if (btc->stop_coex_dm) { in ex_halbtc8821c1ant_display_coex_info()
4114 btc->btc_get(btc, BTC_GET_U4_SUPPORTED_VERSION, in ex_halbtc8821c1ant_display_coex_info()
4125 btc->btc_get_bt_afh_map_from_bt(btc, 0, p); in ex_halbtc8821c1ant_display_coex_info()
4130 btc->btc_get(btc, BTC_GET_U4_SUPPORTED_FEATURE, in ex_halbtc8821c1ant_display_coex_info()
4134 val = btc->btc_get_bt_reg(btc, 3, 0xac); in ex_halbtc8821c1ant_display_coex_info()
4139 val = btc->btc_get_bt_reg(btc, 3, 0xae); in ex_halbtc8821c1ant_display_coex_info()
4143 if (btc->bt_info.bt_get_fw_ver == 0) { in ex_halbtc8821c1ant_display_coex_info()
4144 btc->btc_get(btc, BTC_GET_U4_BT_PATCH_VER, in ex_halbtc8821c1ant_display_coex_info()
4146 btc->bt_info.bt_get_fw_ver = bt_patch_ver; in ex_halbtc8821c1ant_display_coex_info()
4163 bt_patch_ver = btc->bt_info.bt_get_fw_ver; in ex_halbtc8821c1ant_display_coex_info()
4164 btc->btc_get(btc, BTC_GET_U4_WIFI_FW_VER, &fw_ver); in ex_halbtc8821c1ant_display_coex_info()
4165 phyver = btc->btc_get_bt_phydm_version(btc); in ex_halbtc8821c1ant_display_coex_info()
4200 btc->btc_disp_dbg_msg(btc, BTC_DBG_DISP_WIFI_STATUS); in ex_halbtc8821c1ant_display_coex_info()
4300 halbtc8821c1ant_read_scbd(btc, &u16tmp[0]); in ex_halbtc8821c1ant_display_coex_info()
4350 if (btc->manual_control) in ex_halbtc8821c1ant_display_coex_info()
4399 u32tmp[0] = btc->btc_read_4byte(btc, 0x6c0); in ex_halbtc8821c1ant_display_coex_info()
4400 u32tmp[1] = btc->btc_read_4byte(btc, 0x6c4); in ex_halbtc8821c1ant_display_coex_info()
4401 u32tmp[2] = btc->btc_read_4byte(btc, 0x6c8); in ex_halbtc8821c1ant_display_coex_info()
4408 u8tmp[0] = btc->btc_read_1byte(btc, 0x778); in ex_halbtc8821c1ant_display_coex_info()
4409 u32tmp[0] = btc->btc_read_4byte(btc, 0x6cc); in ex_halbtc8821c1ant_display_coex_info()
4442 u32tmp[0] = halbtc8821c1ant_read_indirect_reg(btc, 0x38); in ex_halbtc8821c1ant_display_coex_info()
4446 u32tmp[0] = halbtc8821c1ant_read_indirect_reg(btc, 0xa0); in ex_halbtc8821c1ant_display_coex_info()
4447 u32tmp[1] = halbtc8821c1ant_read_indirect_reg(btc, 0xa4); in ex_halbtc8821c1ant_display_coex_info()
4454 u32tmp[0] = halbtc8821c1ant_read_indirect_reg(btc, 0xa8); in ex_halbtc8821c1ant_display_coex_info()
4455 u32tmp[1] = halbtc8821c1ant_read_indirect_reg(btc, 0xac); in ex_halbtc8821c1ant_display_coex_info()
4456 u32tmp[2] = halbtc8821c1ant_read_indirect_reg(btc, 0xb0); in ex_halbtc8821c1ant_display_coex_info()
4457 u32tmp[3] = halbtc8821c1ant_read_indirect_reg(btc, 0xb4); in ex_halbtc8821c1ant_display_coex_info()
4472 u32tmp[0] = halbtc8821c1ant_read_indirect_reg(btc, 0x38); in ex_halbtc8821c1ant_display_coex_info()
4473 u32tmp[1] = halbtc8821c1ant_read_indirect_reg(btc, 0x54); in ex_halbtc8821c1ant_display_coex_info()
4474 u8tmp[0] = btc->btc_read_1byte(btc, 0x73); in ex_halbtc8821c1ant_display_coex_info()
4513 btc->btc_get_rf_reg(btc, BTC_RF_A, 0x1, 0xfffff)); in ex_halbtc8821c1ant_display_coex_info()
4517 u32tmp[0] = btc->btc_read_4byte(btc, 0xcb0); in ex_halbtc8821c1ant_display_coex_info()
4518 u32tmp[1] = btc->btc_read_4byte(btc, 0xcb4); in ex_halbtc8821c1ant_display_coex_info()
4519 u8tmp[0] = btc->btc_read_1byte(btc, 0xcba); in ex_halbtc8821c1ant_display_coex_info()
4528 u32tmp[0] = btc->btc_read_4byte(btc, 0x430); in ex_halbtc8821c1ant_display_coex_info()
4529 u32tmp[1] = btc->btc_read_4byte(btc, 0x434); in ex_halbtc8821c1ant_display_coex_info()
4530 u16tmp[0] = btc->btc_read_2byte(btc, 0x42a); in ex_halbtc8821c1ant_display_coex_info()
4531 u8tmp[0] = btc->btc_read_1byte(btc, 0x426); in ex_halbtc8821c1ant_display_coex_info()
4532 u8tmp[1] = btc->btc_read_1byte(btc, 0x45e); in ex_halbtc8821c1ant_display_coex_info()
4533 u8tmp[2] = btc->btc_read_1byte(btc, 0x455); in ex_halbtc8821c1ant_display_coex_info()
4541 u32tmp[0] = btc->btc_read_4byte(btc, 0x4c); in ex_halbtc8821c1ant_display_coex_info()
4542 u8tmp[2] = btc->btc_read_1byte(btc, 0x64); in ex_halbtc8821c1ant_display_coex_info()
4543 u8tmp[0] = btc->btc_read_1byte(btc, 0x4c6); in ex_halbtc8821c1ant_display_coex_info()
4544 u8tmp[1] = btc->btc_read_1byte(btc, 0x40); in ex_halbtc8821c1ant_display_coex_info()
4554 u32tmp[0] = btc->btc_read_4byte(btc, 0x550); in ex_halbtc8821c1ant_display_coex_info()
4555 u8tmp[0] = btc->btc_read_1byte(btc, 0x522); in ex_halbtc8821c1ant_display_coex_info()
4556 u8tmp[1] = btc->btc_read_1byte(btc, 0x953); in ex_halbtc8821c1ant_display_coex_info()
4557 u8tmp[2] = btc->btc_read_1byte(btc, 0xc50); in ex_halbtc8821c1ant_display_coex_info()
4558 u8tmp[3] = btc->btc_read_1byte(btc, 0x60a); in ex_halbtc8821c1ant_display_coex_info()
4567 fa_ofdm = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_FA_OFDM); in ex_halbtc8821c1ant_display_coex_info()
4568 fa_cck = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_FA_CCK); in ex_halbtc8821c1ant_display_coex_info()
4569 cca_ofdm = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CCA_OFDM); in ex_halbtc8821c1ant_display_coex_info()
4570 cca_cck = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CCA_CCK); in ex_halbtc8821c1ant_display_coex_info()
4620 btc->btc_disp_dbg_msg(btc, BTC_DBG_DISP_COEX_STATISTICS); in ex_halbtc8821c1ant_display_coex_info()
4623 void ex_halbtc8821c1ant_ips_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c1ant_ips_notify() argument
4625 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_ips_notify()
4627 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c1ant_ips_notify()
4637 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE | in ex_halbtc8821c1ant_ips_notify()
4643 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_ips_notify()
4645 halbtc8821c1ant_action_coex_all_off(btc); in ex_halbtc8821c1ant_ips_notify()
4651 halbtc8821c1ant_init_hw_config(btc, FALSE, FALSE); in ex_halbtc8821c1ant_ips_notify()
4652 halbtc8821c1ant_init_coex_dm(btc); in ex_halbtc8821c1ant_ips_notify()
4658 void ex_halbtc8821c1ant_lps_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c1ant_lps_notify() argument
4660 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_lps_notify()
4662 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c1ant_lps_notify()
4673 halbtc8821c1ant_write_scbd(btc, in ex_halbtc8821c1ant_lps_notify()
4680 halbtc8821c1ant_write_scbd(btc, in ex_halbtc8821c1ant_lps_notify()
4684 halbtc8821c1ant_action_wifi_native_lps(btc); in ex_halbtc8821c1ant_lps_notify()
4693 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE, in ex_halbtc8821c1ant_lps_notify()
4697 halbtc8821c1ant_query_bt_info(btc); in ex_halbtc8821c1ant_lps_notify()
4698 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_LPS); in ex_halbtc8821c1ant_lps_notify()
4703 void ex_halbtc8821c1ant_scan_notify(struct btc_coexist *btc, in ex_halbtc8821c1ant_scan_notify() argument
4706 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_scan_notify()
4709 if (btc->manual_control || in ex_halbtc8821c1ant_scan_notify()
4710 btc->stop_coex_dm) in ex_halbtc8821c1ant_scan_notify()
4715 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in ex_halbtc8821c1ant_scan_notify()
4728 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE | in ex_halbtc8821c1ant_scan_notify()
4739 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_scan_notify()
4742 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_5GSCANSTART); in ex_halbtc8821c1ant_scan_notify()
4752 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_scan_notify()
4755 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_2GSCANSTART); in ex_halbtc8821c1ant_scan_notify()
4757 btc->btc_get(btc, BTC_GET_U1_AP_NUM, &coex_sta->scan_ap_num); in ex_halbtc8821c1ant_scan_notify()
4766 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_SCANFINISH); in ex_halbtc8821c1ant_scan_notify()
4770 void ex_halbtc8821c1ant_switchband_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c1ant_switchband_notify() argument
4772 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_switchband_notify()
4774 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c1ant_switchband_notify()
4784 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_5GSWITCHBAND); in ex_halbtc8821c1ant_switchband_notify()
4791 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_2GSWITCHBAND); in ex_halbtc8821c1ant_switchband_notify()
4798 ex_halbtc8821c1ant_scan_notify(btc, BTC_SCAN_START_2G); in ex_halbtc8821c1ant_switchband_notify()
4804 void ex_halbtc8821c1ant_connect_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c1ant_connect_notify() argument
4806 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_connect_notify()
4807 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in ex_halbtc8821c1ant_connect_notify()
4809 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c1ant_connect_notify()
4812 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE | in ex_halbtc8821c1ant_connect_notify()
4819 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_connect_notify()
4827 halbtc8821c1ant_run_coex(btc, in ex_halbtc8821c1ant_connect_notify()
4834 halbtc8821c1ant_run_coex(btc, in ex_halbtc8821c1ant_connect_notify()
4848 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_connect_notify()
4851 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_2GCONSTART); in ex_halbtc8821c1ant_connect_notify()
4865 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_2GCONFINISH); in ex_halbtc8821c1ant_connect_notify()
4869 void ex_halbtc8821c1ant_media_status_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c1ant_media_status_notify() argument
4871 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_media_status_notify()
4875 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c1ant_media_status_notify()
4880 halbtc8821c1ant_write_scbd(btc, in ex_halbtc8821c1ant_media_status_notify()
4891 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, in ex_halbtc8821c1ant_media_status_notify()
4895 halbtc8821c1ant_run_coex(btc, in ex_halbtc8821c1ant_media_status_notify()
4903 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, in ex_halbtc8821c1ant_media_status_notify()
4907 btc->btc_get(btc, BTC_GET_BL_WIFI_UNDER_B_MODE, in ex_halbtc8821c1ant_media_status_notify()
4912 btc->btc_write_1byte_bitmask(btc, 0x6cf, BIT(4), in ex_halbtc8821c1ant_media_status_notify()
4915 btc->btc_write_1byte_bitmask(btc, 0x6cf, BIT(4), in ex_halbtc8821c1ant_media_status_notify()
4920 btc->btc_fill_h2c(btc, 0x69, 2, h2c_parameter); in ex_halbtc8821c1ant_media_status_notify()
4923 halbtc8821c1ant_run_coex(btc, in ex_halbtc8821c1ant_media_status_notify()
4932 btc->btc_write_1byte_bitmask(btc, 0x6cf, BIT(4), 0x0); in ex_halbtc8821c1ant_media_status_notify()
4937 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_MEDIADISCON); in ex_halbtc8821c1ant_media_status_notify()
4939 btc->btc_get(btc, BTC_GET_U1_IOT_PEER, &coex_sta->wl_iot_peer); in ex_halbtc8821c1ant_media_status_notify()
4940 halbtc8821c1ant_update_wifi_ch_info(btc, type); in ex_halbtc8821c1ant_media_status_notify()
4943 void ex_halbtc8821c1ant_specific_packet_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c1ant_specific_packet_notify() argument
4945 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_specific_packet_notify()
4946 struct coex_dm_8821c_1ant *coex_dm = &btc->coex_dm_8821c_1ant; in ex_halbtc8821c1ant_specific_packet_notify()
4949 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c1ant_specific_packet_notify()
4957 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_5GSPECIALPKT); in ex_halbtc8821c1ant_specific_packet_notify()
4961 btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way); in ex_halbtc8821c1ant_specific_packet_notify()
4988 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_SCAN, TRUE); in ex_halbtc8821c1ant_specific_packet_notify()
4989 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_2GSPECIALPKT); in ex_halbtc8821c1ant_specific_packet_notify()
4993 void ex_halbtc8821c1ant_bt_info_notify(struct btc_coexist *btc, u8 *tmp_buf, in ex_halbtc8821c1ant_bt_info_notify() argument
4996 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_bt_info_notify()
4997 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in ex_halbtc8821c1ant_bt_info_notify()
5025 halbtc8821c1ant_update_bt_link_info(btc); in ex_halbtc8821c1ant_bt_info_notify()
5026 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_BTINFO); in ex_halbtc8821c1ant_bt_info_notify()
5195 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in ex_halbtc8821c1ant_bt_info_notify()
5201 halbtc8821c1ant_write_scbd(btc, type_is_scan, TRUE); in ex_halbtc8821c1ant_bt_info_notify()
5203 halbtc8821c1ant_write_scbd(btc, type_is_scan, FALSE); in ex_halbtc8821c1ant_bt_info_notify()
5207 halbtc8821c1ant_write_scbd(btc, type_is_scan, FALSE); in ex_halbtc8821c1ant_bt_info_notify()
5214 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in ex_halbtc8821c1ant_bt_info_notify()
5224 halbtc8821c1ant_update_wifi_ch_info(btc, type); in ex_halbtc8821c1ant_bt_info_notify()
5233 halbtc8821c1ant_ignore_wlan_act(btc, FC_EXCU, FALSE); in ex_halbtc8821c1ant_bt_info_notify()
5236 halbtc8821c1ant_update_bt_link_info(btc); in ex_halbtc8821c1ant_bt_info_notify()
5237 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_BTINFO); in ex_halbtc8821c1ant_bt_info_notify()
5240 void ex_halbtc8821c1ant_wl_fwdbginfo_notify(struct btc_coexist *btc, in ex_halbtc8821c1ant_wl_fwdbginfo_notify() argument
5243 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_wl_fwdbginfo_notify()
5265 halbtc8821c1ant_ccklock_action(btc); in ex_halbtc8821c1ant_wl_fwdbginfo_notify()
5268 void ex_halbtc8821c1ant_rx_rate_change_notify(struct btc_coexist *btc, in ex_halbtc8821c1ant_rx_rate_change_notify() argument
5272 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_rx_rate_change_notify()
5290 halbtc8821c1ant_ccklock_detect(btc); in ex_halbtc8821c1ant_rx_rate_change_notify()
5293 void ex_halbtc8821c1ant_tx_rate_change_notify(struct btc_coexist *btc, in ex_halbtc8821c1ant_tx_rate_change_notify() argument
5297 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_tx_rate_change_notify()
5309 void ex_halbtc8821c1ant_rf_status_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c1ant_rf_status_notify() argument
5311 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_rf_status_notify()
5321 btc->stop_coex_dm = FALSE; in ex_halbtc8821c1ant_rf_status_notify()
5322 btc->wl_rf_state_off = FALSE; in ex_halbtc8821c1ant_rf_status_notify()
5328 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE | in ex_halbtc8821c1ant_rf_status_notify()
5334 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_rf_status_notify()
5337 halbtc8821c1ant_action_coex_all_off(btc); in ex_halbtc8821c1ant_rf_status_notify()
5339 btc->stop_coex_dm = TRUE; in ex_halbtc8821c1ant_rf_status_notify()
5340 btc->wl_rf_state_off = TRUE; in ex_halbtc8821c1ant_rf_status_notify()
5343 halbtc8821c1ant_update_wifi_ch_info(btc, BTC_MEDIA_DISCONNECT); in ex_halbtc8821c1ant_rf_status_notify()
5347 void ex_halbtc8821c1ant_halt_notify(struct btc_coexist *btc) in ex_halbtc8821c1ant_halt_notify() argument
5352 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE | in ex_halbtc8821c1ant_halt_notify()
5358 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_halt_notify()
5361 halbtc8821c1ant_action_coex_all_off(btc); in ex_halbtc8821c1ant_halt_notify()
5363 btc->stop_coex_dm = TRUE; in ex_halbtc8821c1ant_halt_notify()
5366 halbtc8821c1ant_update_wifi_ch_info(btc, BTC_MEDIA_DISCONNECT); in ex_halbtc8821c1ant_halt_notify()
5369 void ex_halbtc8821c1ant_pnp_notify(struct btc_coexist *btc, u8 pnp_state) in ex_halbtc8821c1ant_pnp_notify() argument
5371 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_pnp_notify()
5373 &btc->wifi_link_info_8821c_1ant; in ex_halbtc8821c1ant_pnp_notify()
5383 halbtc8821c1ant_write_scbd(btc, BT_8821C_1ANT_SCBD_ACTIVE | in ex_halbtc8821c1ant_pnp_notify()
5398 halbtc8821c1ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c1ant_pnp_notify()
5400 btc->stop_coex_dm = TRUE; in ex_halbtc8821c1ant_pnp_notify()
5412 btc->stop_coex_dm = FALSE; in ex_halbtc8821c1ant_pnp_notify()
5413 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_PNP); in ex_halbtc8821c1ant_pnp_notify()
5419 void ex_halbtc8821c1ant_coex_dm_reset(struct btc_coexist *btc) in ex_halbtc8821c1ant_coex_dm_reset() argument
5425 halbtc8821c1ant_init_hw_config(btc, FALSE, FALSE); in ex_halbtc8821c1ant_coex_dm_reset()
5426 halbtc8821c1ant_init_coex_dm(btc); in ex_halbtc8821c1ant_coex_dm_reset()
5429 void ex_halbtc8821c1ant_periodical(struct btc_coexist *btc) in ex_halbtc8821c1ant_periodical() argument
5431 struct coex_sta_8821c_1ant *coex_sta = &btc->coex_sta_8821c_1ant; in ex_halbtc8821c1ant_periodical()
5432 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c1ant_periodical()
5443 if (!btc->auto_report) in ex_halbtc8821c1ant_periodical()
5444 halbtc8821c1ant_query_bt_info(btc); in ex_halbtc8821c1ant_periodical()
5446 bt_ctr_change = halbtc8821c1ant_monitor_bt_ctr(btc); in ex_halbtc8821c1ant_periodical()
5447 halbtc8821c1ant_monitor_wifi_ctr(btc); in ex_halbtc8821c1ant_periodical()
5448 halbtc8821c1ant_update_wifi_link_info(btc, in ex_halbtc8821c1ant_periodical()
5450 halbtc8821c1ant_monitor_bt_enable(btc); in ex_halbtc8821c1ant_periodical()
5532 if (halbtc8821c1ant_moniter_wifibt_status(btc) || bt_relink_finish || in ex_halbtc8821c1ant_periodical()
5534 halbtc8821c1ant_run_coex(btc, BT_8821C_1ANT_RSN_PERIODICAL); in ex_halbtc8821c1ant_periodical()