Lines Matching refs:btc

35 u8 halbtc8821c2ant_bt_rssi_state(struct btc_coexist *btc,  in halbtc8821c2ant_bt_rssi_state()  argument
39 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_bt_rssi_state()
97 u8 halbtc8821c2ant_wifi_rssi_state(struct btc_coexist *btc, in halbtc8821c2ant_wifi_rssi_state() argument
105 btc->btc_get(btc, BTC_GET_S4_WIFI_RSSI, &wifi_rssi); in halbtc8821c2ant_wifi_rssi_state()
159 halbtc8821c2ant_limited_tx(struct btc_coexist *btc, boolean force_exec, in halbtc8821c2ant_limited_tx() argument
162 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_limited_tx()
164 &btc->wifi_link_info_8821c_2ant; in halbtc8821c2ant_limited_tx()
169 coex_sta->wl_0x430_backup = btc->btc_read_4byte(btc, 0x430); in halbtc8821c2ant_limited_tx()
170 coex_sta->wl_0x434_backup = btc->btc_read_4byte(btc, 0x434); in halbtc8821c2ant_limited_tx()
171 coex_sta->wl_0x42a_backup = btc->btc_read_2byte(btc, 0x42a); in halbtc8821c2ant_limited_tx()
175 coex_sta->wl_0x455_backup = btc->btc_read_1byte(btc, 0x455); in halbtc8821c2ant_limited_tx()
190 btc->btc_write_1byte_bitmask(btc, 0x45e, 0x8, 0x1); in halbtc8821c2ant_limited_tx()
191 btc->btc_write_1byte_bitmask(btc, 0x426, 0xf, 0xf); in halbtc8821c2ant_limited_tx()
194 btc->btc_write_2byte(btc, 0x42a, 0x0808); in halbtc8821c2ant_limited_tx()
196 btc->btc_get(btc, BTC_GET_BL_WIFI_UNDER_B_MODE, in halbtc8821c2ant_limited_tx()
201 btc->btc_write_4byte(btc, 0x430, 0x1000000); in halbtc8821c2ant_limited_tx()
202 btc->btc_write_4byte(btc, 0x434, 0x1010101); in halbtc8821c2ant_limited_tx()
204 btc->btc_write_4byte(btc, 0x430, 0x1000000); in halbtc8821c2ant_limited_tx()
205 btc->btc_write_4byte(btc, 0x434, 0x4030201); in halbtc8821c2ant_limited_tx()
211 btc->btc_write_1byte_bitmask(btc, 0x45e, 0x8, 0x0); in halbtc8821c2ant_limited_tx()
212 btc->btc_write_1byte_bitmask(btc, 0x426, 0xf, 0x0); in halbtc8821c2ant_limited_tx()
218 btc->btc_write_1byte_bitmask(btc, 0x426, 0xf, 0x0); in halbtc8821c2ant_limited_tx()
221 btc->btc_write_2byte(btc, 0x42a, coex_sta->wl_0x42a_backup); in halbtc8821c2ant_limited_tx()
222 btc->btc_write_4byte(btc, 0x430, coex_sta->wl_0x430_backup); in halbtc8821c2ant_limited_tx()
223 btc->btc_write_4byte(btc, 0x434, coex_sta->wl_0x434_backup); in halbtc8821c2ant_limited_tx()
227 btc->btc_write_1byte(btc, 0x455, 0x20); in halbtc8821c2ant_limited_tx()
229 btc->btc_write_1byte(btc, 0x455, coex_sta->wl_0x455_backup); in halbtc8821c2ant_limited_tx()
233 halbtc8821c2ant_limited_rx(struct btc_coexist *btc, boolean force_exec, in halbtc8821c2ant_limited_rx() argument
238 struct coex_sta_8822b_2ant *coex_sta = &btc->coex_sta_8822b_2ant; in halbtc8821c2ant_limited_rx()
253 btc->btc_set(btc, BTC_SET_BL_BT_CTRL_AGG_SIZE, &bt_ctrl_rx_agg_size); in halbtc8821c2ant_limited_rx()
255 btc->btc_set(btc, BTC_SET_U1_AGG_BUF_SIZE, &rx_agg_size); in halbtc8821c2ant_limited_rx()
257 btc->btc_set(btc, BTC_SET_ACT_AGGREGATE_CTRL, NULL); in halbtc8821c2ant_limited_rx()
262 halbtc8821c2ant_ccklock_action(struct btc_coexist *btc) in halbtc8821c2ant_ccklock_action() argument
264 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_ccklock_action()
269 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_ccklock_action()
298 btc->btc_fill_h2c(btc, 0x69, 2, h2c_parameter); in halbtc8821c2ant_ccklock_action()
309 btc->btc_fill_h2c(btc, 0x69, 2, h2c_parameter); in halbtc8821c2ant_ccklock_action()
315 halbtc8821c2ant_ccklock_detect(struct btc_coexist *btc) in halbtc8821c2ant_ccklock_detect() argument
317 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_ccklock_detect()
318 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_ccklock_detect()
320 &btc->wifi_link_info_8821c_2ant; in halbtc8821c2ant_ccklock_detect()
367 halbtc8821c2ant_set_tdma_timer_base(struct btc_coexist *btc, u8 type) in halbtc8821c2ant_set_tdma_timer_base() argument
369 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_set_tdma_timer_base()
373 btc->btc_get(btc, BTC_GET_U2_BEACON_PERIOD, &tbtt_interval); in halbtc8821c2ant_set_tdma_timer_base()
415 btc->btc_fill_h2c(btc, 0x69, 2, h2c_para); in halbtc8821c2ant_set_tdma_timer_base()
423 void halbtc8821c2ant_coex_switch_thres(struct btc_coexist *btc, in halbtc8821c2ant_coex_switch_thres() argument
426 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_coex_switch_thres()
442 void halbtc8821c2ant_low_penalty_ra(struct btc_coexist *btc, in halbtc8821c2ant_low_penalty_ra() argument
446 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_low_penalty_ra()
456 btc->btc_phydm_modify_RA_PCR_threshold(btc, 0, thres); in halbtc8821c2ant_low_penalty_ra()
458 btc->btc_phydm_modify_RA_PCR_threshold(btc, 0, 0); in halbtc8821c2ant_low_penalty_ra()
465 void halbtc8821c2ant_set_antdiv_hwsw(struct btc_coexist *btc, in halbtc8821c2ant_set_antdiv_hwsw() argument
468 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_set_antdiv_hwsw()
478 btc->btc_phydm_modify_antdiv_hwsw(btc, coex_dm->cur_antdiv_type); in halbtc8821c2ant_set_antdiv_hwsw()
489 halbtc8821c2ant_freerun_check(struct btc_coexist *btc) in halbtc8821c2ant_freerun_check() argument
491 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_freerun_check()
497 halbtc8821c2ant_wifi_rssi_state(btc, &prewifi_rssi_state, 2, in halbtc8821c2ant_freerun_check()
501 halbtc8821c2ant_bt_rssi_state(btc, &pre_bt_rssi_state, 2, in halbtc8821c2ant_freerun_check()
504 if (btc->board_info.ant_distance >= 40) in halbtc8821c2ant_freerun_check()
507 if (btc->board_info.ant_distance <= 5) in halbtc8821c2ant_freerun_check()
519 void halbtc8821c2ant_write_scbd(struct btc_coexist *btc, u16 bitpos, in halbtc8821c2ant_write_scbd() argument
522 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_write_scbd()
534 btc->btc_write_2byte(btc, 0xaa, originalval); in halbtc8821c2ant_write_scbd()
543 void halbtc8821c2ant_read_scbd(struct btc_coexist *btc, u16 *score_board_val) in halbtc8821c2ant_read_scbd() argument
545 *score_board_val = (btc->btc_read_2byte(btc, 0xaa)) & 0x7fff; in halbtc8821c2ant_read_scbd()
549 void halbtc8821c2ant_query_bt_info(struct btc_coexist *btc) in halbtc8821c2ant_query_bt_info() argument
551 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_query_bt_info()
563 btc->btc_fill_h2c(btc, 0x61, 1, h2c_parameter); in halbtc8821c2ant_query_bt_info()
567 void halbtc8821c2ant_enable_gnt_to_gpio(struct btc_coexist *btc, in halbtc8821c2ant_enable_gnt_to_gpio() argument
573 if (!btc->dbg_mode) in halbtc8821c2ant_enable_gnt_to_gpio()
583 btc->btc_write_1byte_bitmask(btc, 0x73, 0x8, 0x1); in halbtc8821c2ant_enable_gnt_to_gpio()
587 bit_val[0] = (btc->btc_read_1byte(btc, 0x66) & BIT(4)) >> 4; in halbtc8821c2ant_enable_gnt_to_gpio()
589 bit_val[1] = (btc->btc_read_1byte(btc, 0x67) & BIT(0)); in halbtc8821c2ant_enable_gnt_to_gpio()
591 bit_val[2] = (btc->btc_read_1byte(btc, 0x42) & BIT(3)) >> 3; in halbtc8821c2ant_enable_gnt_to_gpio()
593 bit_val[3] = (btc->btc_read_1byte(btc, 0x65) & BIT(7)) >> 7; in halbtc8821c2ant_enable_gnt_to_gpio()
595 bit_val[4] = (btc->btc_read_1byte(btc, 0x72) & BIT(2)) >> 2; in halbtc8821c2ant_enable_gnt_to_gpio()
599 btc->btc_write_1byte_bitmask(btc, 0x66, BIT(4), 0x0); in halbtc8821c2ant_enable_gnt_to_gpio()
601 btc->btc_write_1byte_bitmask(btc, 0x67, BIT(0), 0x0); in halbtc8821c2ant_enable_gnt_to_gpio()
603 btc->btc_write_1byte_bitmask(btc, 0x42, BIT(3), 0x0); in halbtc8821c2ant_enable_gnt_to_gpio()
605 btc->btc_write_1byte_bitmask(btc, 0x65, BIT(7), 0x0); in halbtc8821c2ant_enable_gnt_to_gpio()
607 btc->btc_write_1byte_bitmask(btc, 0x72, BIT(2), 0x0); in halbtc8821c2ant_enable_gnt_to_gpio()
609 btc->btc_write_1byte_bitmask(btc, 0x73, 0x8, 0x0); in halbtc8821c2ant_enable_gnt_to_gpio()
614 btc->btc_write_1byte_bitmask(btc, 0x66, BIT(4), bit_val[0]); in halbtc8821c2ant_enable_gnt_to_gpio()
616 btc->btc_write_1byte_bitmask(btc, 0x67, BIT(0), bit_val[1]); in halbtc8821c2ant_enable_gnt_to_gpio()
618 btc->btc_write_1byte_bitmask(btc, 0x42, BIT(3), bit_val[2]); in halbtc8821c2ant_enable_gnt_to_gpio()
620 btc->btc_write_1byte_bitmask(btc, 0x65, BIT(7), bit_val[3]); in halbtc8821c2ant_enable_gnt_to_gpio()
622 btc->btc_write_1byte_bitmask(btc, 0x72, BIT(2), bit_val[4]); in halbtc8821c2ant_enable_gnt_to_gpio()
627 boolean halbtc8821c2ant_monitor_bt_ctr(struct btc_coexist *btc) in halbtc8821c2ant_monitor_bt_ctr() argument
629 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_monitor_bt_ctr()
630 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_monitor_bt_ctr()
635 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c2ant_monitor_bt_ctr()
641 u32tmp = btc->btc_read_4byte(btc, reg_hp_txrx); in halbtc8821c2ant_monitor_bt_ctr()
645 u32tmp = btc->btc_read_4byte(btc, reg_lp_txrx); in halbtc8821c2ant_monitor_bt_ctr()
661 btc->btc_write_1byte(btc, 0x76e, 0xc); in halbtc8821c2ant_monitor_bt_ctr()
726 void halbtc8821c2ant_monitor_wifi_ctr(struct btc_coexist *btc) in halbtc8821c2ant_monitor_wifi_ctr() argument
728 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_monitor_wifi_ctr()
729 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_monitor_wifi_ctr()
736 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_monitor_wifi_ctr()
737 btc->btc_get(btc, BTC_GET_BL_WIFI_SCAN, &wifi_scan); in halbtc8821c2ant_monitor_wifi_ctr()
738 btc->btc_get(btc, BTC_GET_U4_WIFI_FW_VER, &fw_ver); in halbtc8821c2ant_monitor_wifi_ctr()
743 if (btc->chip_interface != BTC_INTF_USB || in halbtc8821c2ant_monitor_wifi_ctr()
750 btc->btc_fill_h2c(btc, 0x69, 1, h2c_parameter); in halbtc8821c2ant_monitor_wifi_ctr()
755 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_CCK); in halbtc8821c2ant_monitor_wifi_ctr()
757 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_LEGACY); in halbtc8821c2ant_monitor_wifi_ctr()
759 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_HT); in halbtc8821c2ant_monitor_wifi_ctr()
761 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_OK_VHT); in halbtc8821c2ant_monitor_wifi_ctr()
764 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_CCK); in halbtc8821c2ant_monitor_wifi_ctr()
766 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_LEGACY); in halbtc8821c2ant_monitor_wifi_ctr()
768 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_HT); in halbtc8821c2ant_monitor_wifi_ctr()
770 btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CRC32_ERROR_VHT); in halbtc8821c2ant_monitor_wifi_ctr()
825 void halbtc8821c2ant_monitor_bt_enable(struct btc_coexist *btc) in halbtc8821c2ant_monitor_bt_enable() argument
827 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_monitor_bt_enable()
835 halbtc8821c2ant_read_scbd(btc, &u16tmp); in halbtc8821c2ant_monitor_bt_enable()
842 btc->btc_set(btc, BTC_SET_BL_BT_DISABLE, &bt_disabled); in halbtc8821c2ant_monitor_bt_enable()
850 btc->btc_set(btc, BTC_SET_BL_BT_DISABLE, &bt_disabled); in halbtc8821c2ant_monitor_bt_enable()
874 *btc) in halbtc8821c2ant_moniter_wifibt_status()
876 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_moniter_wifibt_status()
878 &btc->wifi_link_info_8821c_2ant; in halbtc8821c2ant_moniter_wifibt_status()
886 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c2ant_moniter_wifibt_status()
892 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in halbtc8821c2ant_moniter_wifibt_status()
893 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_moniter_wifibt_status()
894 btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way); in halbtc8821c2ant_moniter_wifibt_status()
928 btc->bt_info.bt_get_fw_ver = 0; in halbtc8821c2ant_moniter_wifibt_status()
943 btc->btc_set(btc, BTC_SET_BL_MIRACAST_PLUS_BT, in halbtc8821c2ant_moniter_wifibt_status()
949 wifi_link_mode = btc->wifi_link_info.link_mode; in halbtc8821c2ant_moniter_wifibt_status()
988 btc->btc_set(btc, BTC_SET_BL_BT_LNA_CONSTRAIN_LEVEL, in halbtc8821c2ant_moniter_wifibt_status()
1020 void halbtc8821c2ant_update_wifi_link_info(struct btc_coexist *btc, u8 reason) in halbtc8821c2ant_update_wifi_link_info() argument
1022 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_update_wifi_link_info()
1024 &btc->wifi_link_info_8821c_2ant; in halbtc8821c2ant_update_wifi_link_info()
1026 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_update_wifi_link_info()
1031 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, in halbtc8821c2ant_update_wifi_link_info()
1034 btc->btc_get(btc, BTC_GET_U4_WIFI_LINK_STATUS, &wifi_link_status); in halbtc8821c2ant_update_wifi_link_info()
1037 btc->btc_get(btc, BTC_GET_BL_WIFI_LINK_INFO, &wifi_link_info); in halbtc8821c2ant_update_wifi_link_info()
1038 btc->wifi_link_info = wifi_link_info; in halbtc8821c2ant_update_wifi_link_info()
1040 btc->btc_get(btc, BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifi_central_chnl); in halbtc8821c2ant_update_wifi_link_info()
1126 btc->wifi_link_info.link_mode, in halbtc8821c2ant_update_wifi_link_info()
1127 btc->wifi_link_info.sta_center_channel, in halbtc8821c2ant_update_wifi_link_info()
1128 btc->wifi_link_info.p2p_center_channel, in halbtc8821c2ant_update_wifi_link_info()
1129 btc->wifi_link_info.bany_client_join_go); in halbtc8821c2ant_update_wifi_link_info()
1226 if (btc->manual_control || btc->stop_coex_dm) in halbtc8821c2ant_update_wifi_link_info()
1231 halbtc8821c2ant_low_penalty_ra(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_update_wifi_link_info()
1232 halbtc8821c2ant_limited_tx(btc, NM_EXCU, FALSE, FALSE); in halbtc8821c2ant_update_wifi_link_info()
1233 halbtc8821c2ant_limited_rx(btc, NM_EXCU, FALSE, TRUE, 64); in halbtc8821c2ant_update_wifi_link_info()
1235 halbtc8821c2ant_low_penalty_ra(btc, NM_EXCU, TRUE, 30); in halbtc8821c2ant_update_wifi_link_info()
1236 halbtc8821c2ant_limited_tx(btc, NM_EXCU, FALSE, TRUE); in halbtc8821c2ant_update_wifi_link_info()
1237 halbtc8821c2ant_limited_rx(btc, NM_EXCU, FALSE, TRUE, 16); in halbtc8821c2ant_update_wifi_link_info()
1239 halbtc8821c2ant_low_penalty_ra(btc, NM_EXCU, TRUE, 15); in halbtc8821c2ant_update_wifi_link_info()
1243 halbtc8821c2ant_limited_tx(btc, NM_EXCU, TRUE, TRUE); in halbtc8821c2ant_update_wifi_link_info()
1244 halbtc8821c2ant_limited_rx(btc, NM_EXCU, FALSE, TRUE, in halbtc8821c2ant_update_wifi_link_info()
1247 halbtc8821c2ant_limited_tx(btc, NM_EXCU, TRUE, FALSE); in halbtc8821c2ant_update_wifi_link_info()
1248 halbtc8821c2ant_limited_rx(btc, NM_EXCU, FALSE, TRUE, in halbtc8821c2ant_update_wifi_link_info()
1258 if (btc->chip_interface != BTC_INTF_SDIO) in halbtc8821c2ant_update_wifi_link_info()
1259 btc->btc_write_1byte_bitmask(btc, 0x454, BIT(6), 0x1); in halbtc8821c2ant_update_wifi_link_info()
1261 btc->btc_write_1byte_bitmask(btc, 0x454, BIT(6), 0x0); in halbtc8821c2ant_update_wifi_link_info()
1266 void halbtc8821c2ant_update_bt_link_info(struct btc_coexist *btc) in halbtc8821c2ant_update_bt_link_info() argument
1268 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_update_bt_link_info()
1269 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_update_bt_link_info()
1270 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c2ant_update_bt_link_info()
1283 btc->btc_get_ble_scan_type_from_bt(btc); in halbtc8821c2ant_update_bt_link_info()
1287 btc->btc_get_ble_scan_para_from_bt(btc, 0x1); in halbtc8821c2ant_update_bt_link_info()
1290 btc->btc_get_ble_scan_para_from_bt(btc, 0x2); in halbtc8821c2ant_update_bt_link_info()
1293 btc->btc_get_ble_scan_para_from_bt(btc, 0x4); in halbtc8821c2ant_update_bt_link_info()
1442 btc->btc_set(btc, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); in halbtc8821c2ant_update_bt_link_info()
1443 btc->btc_set(btc, BTC_SET_BL_INC_SCAN_DEV_NUM, &increase_scan_dev_num); in halbtc8821c2ant_update_bt_link_info()
1450 if (btc->board_info.customer_id == RT_CID_LENOVO_CHINA) { in halbtc8821c2ant_update_bt_link_info()
1452 halbtc8821c2ant_set_antdiv_hwsw(btc, NM_EXCU, TRUE); in halbtc8821c2ant_update_bt_link_info()
1454 halbtc8821c2ant_set_antdiv_hwsw(btc, NM_EXCU, FALSE); in halbtc8821c2ant_update_bt_link_info()
1461 btc->btc_get(btc, BTC_GET_U4_BT_DEVICE_INFO, &val); in halbtc8821c2ant_update_bt_link_info()
1471 btc->btc_get(btc, BTC_GET_U4_BT_A2DP_FLUSH_VAL, &val); in halbtc8821c2ant_update_bt_link_info()
1484 void halbtc8821c2ant_update_wifi_ch_info(struct btc_coexist *btc, u8 type) in halbtc8821c2ant_update_wifi_ch_info() argument
1486 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_update_wifi_ch_info()
1487 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_update_wifi_ch_info()
1489 &btc->wifi_link_info_8821c_2ant; in halbtc8821c2ant_update_wifi_ch_info()
1497 if (btc->manual_control) in halbtc8821c2ant_update_wifi_ch_info()
1500 btc->btc_get(btc, BTC_GET_U4_WIFI_BW, &wifi_bw); in halbtc8821c2ant_update_wifi_ch_info()
1502 if (btc->stop_coex_dm || btc->wl_rf_state_off) { in halbtc8821c2ant_update_wifi_ch_info()
1509 wl_ch = btc->wifi_link_info.p2p_center_channel; in halbtc8821c2ant_update_wifi_ch_info()
1511 wl_ch = btc->wifi_link_info.sta_center_channel; in halbtc8821c2ant_update_wifi_ch_info()
1513 if (btc->wifi_link_info.p2p_center_channel > 14 && in halbtc8821c2ant_update_wifi_ch_info()
1514 btc->wifi_link_info.sta_center_channel > 14) in halbtc8821c2ant_update_wifi_ch_info()
1515 wl_ch = btc->wifi_link_info.p2p_center_channel; in halbtc8821c2ant_update_wifi_ch_info()
1516 else if (btc->wifi_link_info.p2p_center_channel <= 14) in halbtc8821c2ant_update_wifi_ch_info()
1517 wl_ch = btc->wifi_link_info.p2p_center_channel; in halbtc8821c2ant_update_wifi_ch_info()
1518 else if (btc->wifi_link_info.sta_center_channel <= 14) in halbtc8821c2ant_update_wifi_ch_info()
1519 wl_ch = btc->wifi_link_info.sta_center_channel; in halbtc8821c2ant_update_wifi_ch_info()
1554 btc->btc_fill_h2c(btc, 0x66, 3, h2c_parameter); in halbtc8821c2ant_update_wifi_ch_info()
1564 void halbtc8821c2ant_set_wl_tx_power(struct btc_coexist *btc, in halbtc8821c2ant_set_wl_tx_power() argument
1567 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_set_wl_tx_power()
1579 void halbtc8821c2ant_set_bt_tx_power(struct btc_coexist *btc, in halbtc8821c2ant_set_bt_tx_power() argument
1582 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_set_bt_tx_power()
1591 btc->btc_fill_h2c(btc, 0x62, 1, h2c_parameter); in halbtc8821c2ant_set_bt_tx_power()
1597 halbtc8821c2ant_wait_indirect_reg_ready(struct btc_coexist *btc) in halbtc8821c2ant_wait_indirect_reg_ready() argument
1603 if ((btc->btc_read_1byte(btc, 0x1703) & BIT(5)) == 0) { in halbtc8821c2ant_wait_indirect_reg_ready()
1616 u32 halbtc8821c2ant_read_indirect_reg(struct btc_coexist *btc, u16 reg_addr) in halbtc8821c2ant_read_indirect_reg() argument
1620 halbtc8821c2ant_wait_indirect_reg_ready(btc); in halbtc8821c2ant_read_indirect_reg()
1623 btc->btc_write_4byte(btc, 0x1700, 0x800F0000 | reg_addr); in halbtc8821c2ant_read_indirect_reg()
1625 return btc->btc_read_4byte(btc, 0x1708); /* get read data */ in halbtc8821c2ant_read_indirect_reg()
1629 void halbtc8821c2ant_write_indirect_reg(struct btc_coexist *btc, u16 reg_addr, in halbtc8821c2ant_write_indirect_reg() argument
1638 halbtc8821c2ant_wait_indirect_reg_ready(btc); in halbtc8821c2ant_write_indirect_reg()
1641 btc->btc_write_4byte(btc, 0x1704, reg_value); in halbtc8821c2ant_write_indirect_reg()
1642 btc->btc_write_4byte(btc, 0x1700, 0xc00F0000 | reg_addr); in halbtc8821c2ant_write_indirect_reg()
1652 val = halbtc8821c2ant_read_indirect_reg(btc, reg_addr); in halbtc8821c2ant_write_indirect_reg()
1656 halbtc8821c2ant_wait_indirect_reg_ready(btc); in halbtc8821c2ant_write_indirect_reg()
1659 btc->btc_write_4byte(btc, 0x1704, val); in halbtc8821c2ant_write_indirect_reg()
1660 btc->btc_write_4byte(btc, 0x1700, 0xc00F0000 | reg_addr); in halbtc8821c2ant_write_indirect_reg()
1665 void halbtc8821c2ant_ltecoex_enable(struct btc_coexist *btc, boolean enable) in halbtc8821c2ant_ltecoex_enable() argument
1671 halbtc8821c2ant_write_indirect_reg(btc, 0x38, BIT(7), val); in halbtc8821c2ant_ltecoex_enable()
1675 void halbtc8821c2ant_ltecoex_table(struct btc_coexist *btc, u8 table_type, in halbtc8821c2ant_ltecoex_table() argument
1691 halbtc8821c2ant_write_indirect_reg(btc, reg_addr, 0xffff, val); in halbtc8821c2ant_ltecoex_table()
1695 void halbtc8821c2ant_coex_ctrl_owner(struct btc_coexist *btc, in halbtc8821c2ant_coex_ctrl_owner() argument
1702 btc->btc_write_1byte_bitmask(btc, 0x73, BIT(2), val); in halbtc8821c2ant_coex_ctrl_owner()
1706 halbtc8821c2ant_set_gnt_bt(struct btc_coexist *btc, u8 state) in halbtc8821c2ant_set_gnt_bt() argument
1710 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0xc000, 0x1); in halbtc8821c2ant_set_gnt_bt()
1711 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x0c00, 0x1); in halbtc8821c2ant_set_gnt_bt()
1714 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0xc000, 0x3); in halbtc8821c2ant_set_gnt_bt()
1715 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x0c00, 0x3); in halbtc8821c2ant_set_gnt_bt()
1719 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0xc000, 0x0); in halbtc8821c2ant_set_gnt_bt()
1720 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x0c00, 0x0); in halbtc8821c2ant_set_gnt_bt()
1726 halbtc8821c2ant_set_gnt_wl(struct btc_coexist *btc, u8 state) in halbtc8821c2ant_set_gnt_wl() argument
1730 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x3000, 0x1); in halbtc8821c2ant_set_gnt_wl()
1731 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x0300, 0x1); in halbtc8821c2ant_set_gnt_wl()
1734 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x3000, 0x3); in halbtc8821c2ant_set_gnt_wl()
1735 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x0300, 0x3); in halbtc8821c2ant_set_gnt_wl()
1739 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x3000, 0x0); in halbtc8821c2ant_set_gnt_wl()
1740 halbtc8821c2ant_write_indirect_reg(btc, 0x38, 0x0300, 0x0); in halbtc8821c2ant_set_gnt_wl()
1746 void halbtc8821c2ant_set_table(struct btc_coexist *btc, in halbtc8821c2ant_set_table() argument
1751 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_set_table()
1752 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_set_table()
1755 coex_dm->cur_val0x6c0 = btc->btc_read_4byte(btc, 0x6c0); in halbtc8821c2ant_set_table()
1756 coex_dm->cur_val0x6c4 = btc->btc_read_4byte(btc, 0x6c4); in halbtc8821c2ant_set_table()
1763 btc->btc_write_4byte(btc, 0x6c0, val0x6c0); in halbtc8821c2ant_set_table()
1764 btc->btc_write_4byte(btc, 0x6c4, val0x6c4); in halbtc8821c2ant_set_table()
1765 btc->btc_write_4byte(btc, 0x6c8, val0x6c8); in halbtc8821c2ant_set_table()
1766 btc->btc_write_1byte(btc, 0x6cc, val0x6cc); in halbtc8821c2ant_set_table()
1772 void halbtc8821c2ant_table(struct btc_coexist *btc, boolean force_exec, u8 type) in halbtc8821c2ant_table() argument
1774 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_table()
1797 halbtc8821c2ant_set_table(btc, force_exec, 0xffffffff, in halbtc8821c2ant_table()
1802 halbtc8821c2ant_set_table(btc, force_exec, 0x55555555, in halbtc8821c2ant_table()
1807 halbtc8821c2ant_set_table(btc, force_exec, 0x5a5a5a5a, in halbtc8821c2ant_table()
1812 halbtc8821c2ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c2ant_table()
1817 halbtc8821c2ant_set_table(btc, force_exec, 0xffff55ff, in halbtc8821c2ant_table()
1822 halbtc8821c2ant_set_table(btc, force_exec, 0x55555555, in halbtc8821c2ant_table()
1827 halbtc8821c2ant_set_table(btc, force_exec, 0xaaffffaa, in halbtc8821c2ant_table()
1832 halbtc8821c2ant_set_table(btc, force_exec, 0xaaffffaa, in halbtc8821c2ant_table()
1837 halbtc8821c2ant_set_table(btc, force_exec, 0xffff55ff, in halbtc8821c2ant_table()
1842 halbtc8821c2ant_set_table(btc, force_exec, 0x5a5a5a5a, in halbtc8821c2ant_table()
1847 halbtc8821c2ant_set_table(btc, force_exec, 0xaaaaaaaa, in halbtc8821c2ant_table()
1852 halbtc8821c2ant_set_table(btc, force_exec, 0xffffffff, in halbtc8821c2ant_table()
1857 halbtc8821c2ant_set_table(btc, force_exec, 0xffff55ff, in halbtc8821c2ant_table()
1862 halbtc8821c2ant_set_table(btc, force_exec, 0xffff55ff, in halbtc8821c2ant_table()
1867 halbtc8821c2ant_set_table(btc, force_exec, 0x66555555, in halbtc8821c2ant_table()
1872 halbtc8821c2ant_set_table(btc, force_exec, 0xffff55ff, in halbtc8821c2ant_table()
1883 halbtc8821c2ant_wltoggle_table(IN struct btc_coexist *btc,
1915 btc->btc_fill_h2c(btc, 0x69, 6, cur_h2c_parameter);
1920 void halbtc8821c2ant_ignore_wlan_act(struct btc_coexist *btc, in halbtc8821c2ant_ignore_wlan_act() argument
1923 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_ignore_wlan_act()
1926 if (btc->manual_control || btc->stop_coex_dm) in halbtc8821c2ant_ignore_wlan_act()
1937 btc->btc_fill_h2c(btc, 0x63, 1, h2c_parameter); in halbtc8821c2ant_ignore_wlan_act()
1943 void halbtc8821c2ant_lps_rpwm(struct btc_coexist *btc, boolean force_exec, in halbtc8821c2ant_lps_rpwm() argument
1946 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_lps_rpwm()
1954 btc->btc_set(btc, BTC_SET_U1_LPS_VAL, &lps_val); in halbtc8821c2ant_lps_rpwm()
1955 btc->btc_set(btc, BTC_SET_U1_RPWM_VAL, &rpwm_val); in halbtc8821c2ant_lps_rpwm()
1962 void halbtc8821c2ant_tdma_check(struct btc_coexist *btc, boolean new_ps_state) in halbtc8821c2ant_tdma_check() argument
1967 btc->btc_get(btc, BTC_GET_U1_LPS_MODE, &lps_mode); in halbtc8821c2ant_tdma_check()
1974 btc->btc_fill_h2c(btc, 0x60, 5, h2c_parameter); in halbtc8821c2ant_tdma_check()
1979 btc->btc_fill_h2c(btc, 0x60, 5, h2c_parameter); in halbtc8821c2ant_tdma_check()
1987 boolean halbtc8821c2ant_power_save_state(struct btc_coexist *btc, u8 ps_type, in halbtc8821c2ant_power_save_state() argument
1990 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_power_save_state()
2005 btc->btc_set(btc, BTC_SET_ACT_PRE_NORMAL_LPS, NULL); in halbtc8821c2ant_power_save_state()
2013 halbtc8821c2ant_tdma_check(btc, TRUE); in halbtc8821c2ant_power_save_state()
2014 halbtc8821c2ant_lps_rpwm(btc, NM_EXCU, lps_val, rpwm_val); in halbtc8821c2ant_power_save_state()
2017 btc->btc_set(btc, BTC_SET_ACT_DISABLE_LOW_POWER, in halbtc8821c2ant_power_save_state()
2020 btc->btc_set(btc, BTC_SET_ACT_ENTER_LPS, NULL); in halbtc8821c2ant_power_save_state()
2028 halbtc8821c2ant_tdma_check(btc, FALSE); in halbtc8821c2ant_power_save_state()
2029 result = btc->btc_set(btc, BTC_SET_ACT_LEAVE_LPS, NULL); in halbtc8821c2ant_power_save_state()
2039 void halbtc8821c2ant_set_tdma(struct btc_coexist *btc, u8 byte1, u8 byte2, in halbtc8821c2ant_set_tdma() argument
2042 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_set_tdma()
2043 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_set_tdma()
2054 if (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO && in halbtc8821c2ant_set_tdma()
2055 btc->wifi_link_info.bhotspot && in halbtc8821c2ant_set_tdma()
2056 btc->wifi_link_info.bany_client_join_go) in halbtc8821c2ant_set_tdma()
2071 halbtc8821c2ant_power_save_state(btc, ps_type, 0x0, 0x0); in halbtc8821c2ant_set_tdma()
2079 if (!halbtc8821c2ant_power_save_state(btc, ps_type, 0x50, 0x4)) in halbtc8821c2ant_set_tdma()
2088 halbtc8821c2ant_power_save_state(btc, ps_type, 0x0, 0x0); in halbtc8821c2ant_set_tdma()
2106 btc->btc_fill_h2c(btc, 0x60, 5, h2c_parameter); in halbtc8821c2ant_set_tdma()
2127 btc->btc_set(btc, BTC_SET_ACT_POST_NORMAL_LPS, NULL); in halbtc8821c2ant_set_tdma()
2131 void halbtc8821c2ant_tdma(struct btc_coexist *btc, in halbtc8821c2ant_tdma() argument
2134 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_tdma()
2135 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_tdma()
2139 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_tdma()
2141 btc->btc_set_atomic(btc, &coex_dm->setting_tdma, TRUE); in halbtc8821c2ant_tdma()
2147 halbtc8821c2ant_set_tdma_timer_base(btc, 3); in halbtc8821c2ant_tdma()
2149 halbtc8821c2ant_set_tdma_timer_base(btc, 0); in halbtc8821c2ant_tdma()
2163 btc->btc_set_atomic(btc, &coex_dm->setting_tdma, FALSE); in halbtc8821c2ant_tdma()
2170 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_TDMA, in halbtc8821c2ant_tdma()
2173 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_TDMA, in halbtc8821c2ant_tdma()
2183 btc->btc_write_1byte_bitmask(btc, 0x550, 0x8, 0x1); in halbtc8821c2ant_tdma()
2187 halbtc8821c2ant_set_tdma(btc, 0x61, 0x10, 0x03, 0x91, in halbtc8821c2ant_tdma()
2192 halbtc8821c2ant_set_tdma(btc, 0x61, 0x35, 0x03, 0x11, in halbtc8821c2ant_tdma()
2196 halbtc8821c2ant_set_tdma(btc, 0x61, 0x30, 0x3, 0x91, in halbtc8821c2ant_tdma()
2200 halbtc8821c2ant_set_tdma(btc, 0x61, 0x21, 0x3, 0x91, in halbtc8821c2ant_tdma()
2204 halbtc8821c2ant_set_tdma(btc, 0x61, 0x25, 0x3, 0x91, in halbtc8821c2ant_tdma()
2208 halbtc8821c2ant_set_tdma(btc, 0x61, 0x10, 0x3, 0x91, in halbtc8821c2ant_tdma()
2212 halbtc8821c2ant_set_tdma(btc, 0x61, 0x20, 0x3, 0x91, in halbtc8821c2ant_tdma()
2216 halbtc8821c2ant_set_tdma(btc, 0x61, 0x15, 0x03, 0x11, in halbtc8821c2ant_tdma()
2220 halbtc8821c2ant_set_tdma(btc, 0x61, 0x30, 0x03, 0x11, in halbtc8821c2ant_tdma()
2224 halbtc8821c2ant_set_tdma(btc, 0x61, 0x35, 0x03, 0x11, in halbtc8821c2ant_tdma()
2228 halbtc8821c2ant_set_tdma(btc, 0x61, 0x35, 0x03, 0x11, in halbtc8821c2ant_tdma()
2232 halbtc8821c2ant_set_tdma(btc, 0x61, 0x20, 0x03, 0x11, in halbtc8821c2ant_tdma()
2236 halbtc8821c2ant_set_tdma(btc, 0x61, 0x20, 0x03, 0x11, in halbtc8821c2ant_tdma()
2240 halbtc8821c2ant_set_tdma(btc, 0x61, 0x10, 0x03, 0x11, in halbtc8821c2ant_tdma()
2244 halbtc8821c2ant_set_tdma(btc, 0x61, 0x10, 0x03, 0x11, in halbtc8821c2ant_tdma()
2248 halbtc8821c2ant_set_tdma(btc, 0x61, 0x08, 0x03, 0x11, in halbtc8821c2ant_tdma()
2252 halbtc8821c2ant_set_tdma(btc, 0x61, 0x30, 0x03, 0x11, in halbtc8821c2ant_tdma()
2256 halbtc8821c2ant_set_tdma(btc, 0x61, 0x25, 0x03, 0x11, in halbtc8821c2ant_tdma()
2260 halbtc8821c2ant_set_tdma(btc, 0x61, 0x10, 0x03, 0x11, in halbtc8821c2ant_tdma()
2264 halbtc8821c2ant_set_tdma(btc, 0x51, 0x3a, 0x3, 0x11, in halbtc8821c2ant_tdma()
2268 halbtc8821c2ant_set_tdma(btc, 0x61, 0x10, 0x03, 0x91, in halbtc8821c2ant_tdma()
2272 halbtc8821c2ant_set_tdma(btc, 0x51, 0x08, 0x03, 0x10, in halbtc8821c2ant_tdma()
2276 halbtc8821c2ant_set_tdma(btc, 0x61, 0x35, 0x03, 0x11, in halbtc8821c2ant_tdma()
2280 halbtc8821c2ant_set_tdma(btc, 0x51, 0x30, 0x3, 0x10, in halbtc8821c2ant_tdma()
2284 halbtc8821c2ant_set_tdma(btc, 0x51, 0x21, 0x3, 0x10, in halbtc8821c2ant_tdma()
2288 halbtc8821c2ant_set_tdma(btc, 0x51, 0x45, 0x3, 0x10, in halbtc8821c2ant_tdma()
2292 halbtc8821c2ant_set_tdma(btc, 0x51, 0x1a, 0x3, 0x10, in halbtc8821c2ant_tdma()
2296 halbtc8821c2ant_set_tdma(btc, 0x51, 0x08, 0x7, 0x10, in halbtc8821c2ant_tdma()
2300 halbtc8821c2ant_set_tdma(btc, 0x51, 0x30, 0x3, 0x10, in halbtc8821c2ant_tdma()
2304 halbtc8821c2ant_set_tdma(btc, 0x51, 0x08, 0x03, 0x10, in halbtc8821c2ant_tdma()
2308 halbtc8821c2ant_set_tdma(btc, 0x51, 0x30, 0x03, 0x10, in halbtc8821c2ant_tdma()
2312 halbtc8821c2ant_set_tdma(btc, 0x61, 0x25, 0x03, 0x11, in halbtc8821c2ant_tdma()
2316 halbtc8821c2ant_set_tdma(btc, 0x51, 0x4a, 0x3, 0x10, in halbtc8821c2ant_tdma()
2320 halbtc8821c2ant_set_tdma(btc, 0x61, 0x45, 0x03, 0x11, in halbtc8821c2ant_tdma()
2324 halbtc8821c2ant_set_tdma(btc, 0x51, 0x30, 0x03, 0x10, in halbtc8821c2ant_tdma()
2328 halbtc8821c2ant_set_tdma(btc, 0x51, 0x08, 0x03, 0x10, in halbtc8821c2ant_tdma()
2332 halbtc8821c2ant_set_tdma(btc, 0x61, 0x08, 0x03, 0x11, in halbtc8821c2ant_tdma()
2336 halbtc8821c2ant_set_tdma(btc, 0x61, 0x08, 0x03, 0x10, in halbtc8821c2ant_tdma()
2340 halbtc8821c2ant_set_tdma(btc, 0x61, 0x08, 0x03, 0x10, in halbtc8821c2ant_tdma()
2344 halbtc8821c2ant_set_tdma(btc, 0x51, 0x10, 0x03, 0x10, in halbtc8821c2ant_tdma()
2354 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_TDMA, FALSE); in halbtc8821c2ant_tdma()
2359 halbtc8821c2ant_set_tdma(btc, 0x0, 0x0, 0x0, 0x40, 0x0); in halbtc8821c2ant_tdma()
2362 halbtc8821c2ant_set_tdma(btc, 0x0, 0x0, 0x0, 0x48, 0x0); in halbtc8821c2ant_tdma()
2365 halbtc8821c2ant_set_tdma(btc, 0x0, 0x0, 0x0, 0x40, 0x0); in halbtc8821c2ant_tdma()
2378 btc->btc_set_atomic(btc, &coex_dm->setting_tdma, FALSE); in halbtc8821c2ant_tdma()
2382 void halbtc8821c2ant_set_ant_switch(struct btc_coexist *btc, in halbtc8821c2ant_set_ant_switch() argument
2386 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_set_ant_switch()
2387 struct rfe_type_8821c_2ant *rfe_type = &btc->rfe_type_8821c_2ant; in halbtc8821c2ant_set_ant_switch()
2388 struct btc_board_info *board_info = &btc->board_info; in halbtc8821c2ant_set_ant_switch()
2440 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c2ant_set_ant_switch()
2442 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x1); in halbtc8821c2ant_set_ant_switch()
2444 btc->btc_write_1byte_bitmask(btc, 0xcb4, 0xff, 0x77); in halbtc8821c2ant_set_ant_switch()
2449 btc->btc_write_1byte_bitmask(btc, 0xcb7, 0x30, val); in halbtc8821c2ant_set_ant_switch()
2453 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c2ant_set_ant_switch()
2455 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x1); in halbtc8821c2ant_set_ant_switch()
2457 btc->btc_write_1byte_bitmask(btc, 0xcb4, 0xff, 0x66); in halbtc8821c2ant_set_ant_switch()
2462 btc->btc_write_1byte_bitmask(btc, 0xcb7, 0x30, val); in halbtc8821c2ant_set_ant_switch()
2466 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c2ant_set_ant_switch()
2468 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x1); in halbtc8821c2ant_set_ant_switch()
2469 btc->btc_write_1byte_bitmask(btc, 0xcb4, 0xff, 0x88); in halbtc8821c2ant_set_ant_switch()
2477 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x1); in halbtc8821c2ant_set_ant_switch()
2482 btc->btc_write_1byte_bitmask(btc, 0x64, 0x1, val); in halbtc8821c2ant_set_ant_switch()
2486 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c2ant_set_ant_switch()
2488 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x1); in halbtc8821c2ant_set_ant_switch()
2492 btc->btc_write_1byte_bitmask(btc, 0x4e, 0x80, 0x0); in halbtc8821c2ant_set_ant_switch()
2494 btc->btc_write_1byte_bitmask(btc, 0x4f, 0x01, 0x0); in halbtc8821c2ant_set_ant_switch()
2506 btc->btc_write_1byte_bitmask(btc, 0x67, 0x20, 0x0); in halbtc8821c2ant_set_ant_switch()
2508 btc->btc_write_1byte_bitmask(btc, 0x67, 0x10, 0x0); in halbtc8821c2ant_set_ant_switch()
2511 btc->btc_write_1byte_bitmask(btc, 0x67, 0x20, 0x1); in halbtc8821c2ant_set_ant_switch()
2513 btc->btc_write_1byte_bitmask(btc, 0x67, 0x10, 0x1); in halbtc8821c2ant_set_ant_switch()
2518 void halbtc8821c2ant_set_rfe_type(struct btc_coexist *btc) in halbtc8821c2ant_set_rfe_type() argument
2520 struct rfe_type_8821c_2ant *rfe_type = &btc->rfe_type_8821c_2ant; in halbtc8821c2ant_set_rfe_type()
2521 struct btc_board_info *board_info = &btc->board_info; in halbtc8821c2ant_set_rfe_type()
2590 void halbtc8821c2ant_set_ant_path(struct btc_coexist *btc, in halbtc8821c2ant_set_ant_path() argument
2594 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_set_ant_path()
2595 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_set_ant_path()
2596 struct btc_board_info *board_info = &btc->board_info; in halbtc8821c2ant_set_ant_path()
2607 if (btc->dbg_mode) { in halbtc8821c2ant_set_ant_path()
2608 u32tmp1 = btc->btc_read_4byte(btc, 0xcb4); in halbtc8821c2ant_set_ant_path()
2609 u32tmp2 = btc->btc_read_4byte(btc, 0xcbc); in halbtc8821c2ant_set_ant_path()
2610 u8tmp = btc->btc_read_1byte(btc, 0x73); in halbtc8821c2ant_set_ant_path()
2621 halbtc8821c2ant_coex_ctrl_owner(btc, BT_8821C_2ANT_PCO_BTSIDE); in halbtc8821c2ant_set_ant_path()
2637 halbtc8821c2ant_ltecoex_enable(btc, 0x0); in halbtc8821c2ant_set_ant_path()
2642 halbtc8821c2ant_ltecoex_table(btc, BT_8821C_2ANT_CTT_WL_VS_LTE, in halbtc8821c2ant_set_ant_path()
2648 halbtc8821c2ant_ltecoex_table(btc, BT_8821C_2ANT_CTT_BT_VS_LTE, in halbtc8821c2ant_set_ant_path()
2655 u8tmp = btc->btc_read_1byte(btc, 0x49c); in halbtc8821c2ant_set_ant_path()
2674 halbtc8821c2ant_coex_ctrl_owner(btc, BT_8821C_2ANT_PCO_WLSIDE); in halbtc8821c2ant_set_ant_path()
2677 halbtc8821c2ant_set_gnt_bt(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c2ant_set_ant_path()
2679 halbtc8821c2ant_set_gnt_wl(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c2ant_set_ant_path()
2695 halbtc8821c2ant_ltecoex_enable(btc, 0x0); in halbtc8821c2ant_set_ant_path()
2700 halbtc8821c2ant_ltecoex_table(btc, BT_8821C_2ANT_CTT_WL_VS_LTE, in halbtc8821c2ant_set_ant_path()
2706 halbtc8821c2ant_ltecoex_table(btc, BT_8821C_2ANT_CTT_BT_VS_LTE, in halbtc8821c2ant_set_ant_path()
2710 halbtc8821c2ant_coex_ctrl_owner(btc, BT_8821C_2ANT_PCO_WLSIDE); in halbtc8821c2ant_set_ant_path()
2713 halbtc8821c2ant_set_gnt_bt(btc, BTC_GNT_SET_SW_LOW); in halbtc8821c2ant_set_ant_path()
2715 halbtc8821c2ant_set_gnt_wl(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c2ant_set_ant_path()
2730 halbtc8821c2ant_ltecoex_enable(btc, 0x0); in halbtc8821c2ant_set_ant_path()
2733 halbtc8821c2ant_coex_ctrl_owner(btc, BT_8821C_2ANT_PCO_BTSIDE); in halbtc8821c2ant_set_ant_path()
2740 u8tmp = btc->btc_read_1byte(btc, 0x49c); in halbtc8821c2ant_set_ant_path()
2765 halbtc8821c2ant_coex_ctrl_owner(btc, BT_8821C_2ANT_PCO_WLSIDE); in halbtc8821c2ant_set_ant_path()
2768 halbtc8821c2ant_set_gnt_bt(btc, BTC_GNT_SET_HW_PTA); in halbtc8821c2ant_set_ant_path()
2771 halbtc8821c2ant_set_gnt_wl(btc, BTC_GNT_SET_HW_PTA); in halbtc8821c2ant_set_ant_path()
2786 halbtc8821c2ant_coex_ctrl_owner(btc, BT_8821C_2ANT_PCO_WLSIDE); in halbtc8821c2ant_set_ant_path()
2789 halbtc8821c2ant_set_gnt_bt(btc, BTC_GNT_SET_HW_PTA); in halbtc8821c2ant_set_ant_path()
2792 halbtc8821c2ant_set_gnt_wl(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c2ant_set_ant_path()
2807 halbtc8821c2ant_ltecoex_enable(btc, 0x0); in halbtc8821c2ant_set_ant_path()
2810 halbtc8821c2ant_coex_ctrl_owner(btc, BT_8821C_2ANT_PCO_WLSIDE); in halbtc8821c2ant_set_ant_path()
2813 halbtc8821c2ant_set_gnt_bt(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c2ant_set_ant_path()
2816 halbtc8821c2ant_set_gnt_wl(btc, BTC_GNT_SET_SW_LOW); in halbtc8821c2ant_set_ant_path()
2830 halbtc8821c2ant_coex_ctrl_owner(btc, BT_8821C_2ANT_PCO_WLSIDE); in halbtc8821c2ant_set_ant_path()
2833 halbtc8821c2ant_set_gnt_bt(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c2ant_set_ant_path()
2835 halbtc8821c2ant_set_gnt_wl(btc, BTC_GNT_SET_SW_HIGH); in halbtc8821c2ant_set_ant_path()
2871 halbtc8821c2ant_set_ant_switch(btc, force_exec, ctrl_type, pos_type); in halbtc8821c2ant_set_ant_path()
2873 if (btc->dbg_mode) { in halbtc8821c2ant_set_ant_path()
2874 u32tmp1 = btc->btc_read_4byte(btc, 0xcbc); in halbtc8821c2ant_set_ant_path()
2875 u32tmp2 = btc->btc_read_4byte(btc, 0xcb4); in halbtc8821c2ant_set_ant_path()
2876 u8tmp = btc->btc_read_1byte(btc, 0x73); in halbtc8821c2ant_set_ant_path()
2886 u8 halbtc8821c2ant_action_algorithm(struct btc_coexist *btc) in halbtc8821c2ant_action_algorithm() argument
2888 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c2ant_action_algorithm()
3006 static void halbtc8821c2ant_action_freerun(struct btc_coexist *btc) in halbtc8821c2ant_action_freerun() argument
3008 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_freerun()
3009 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_freerun()
3011 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_freerun()
3012 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_freerun()
3016 void halbtc8821c2ant_action_coex_all_off(struct btc_coexist *btc) in halbtc8821c2ant_action_coex_all_off() argument
3018 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_coex_all_off()
3019 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_coex_all_off()
3021 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_coex_all_off()
3022 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_coex_all_off()
3026 void halbtc8821c2ant_action_bt_whql_test(struct btc_coexist *btc) in halbtc8821c2ant_action_bt_whql_test() argument
3028 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_bt_whql_test()
3029 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_bt_whql_test()
3031 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_bt_whql_test()
3032 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_bt_whql_test()
3036 void halbtc8821c2ant_action_bt_inquiry(struct btc_coexist *btc) in halbtc8821c2ant_action_bt_inquiry() argument
3038 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_bt_inquiry()
3039 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c2ant_action_bt_inquiry()
3042 halbtc8821c2ant_set_wl_tx_power(btc, FC_EXCU, 0xd8); in halbtc8821c2ant_action_bt_inquiry()
3043 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_bt_inquiry()
3045 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in halbtc8821c2ant_action_bt_inquiry()
3046 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_action_bt_inquiry()
3055 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_bt_inquiry()
3058 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 15); in halbtc8821c2ant_action_bt_inquiry()
3060 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 113); in halbtc8821c2ant_action_bt_inquiry()
3062 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 10); in halbtc8821c2ant_action_bt_inquiry()
3064 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 13); in halbtc8821c2ant_action_bt_inquiry()
3070 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_bt_inquiry()
3071 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 151); in halbtc8821c2ant_action_bt_inquiry()
3077 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_bt_inquiry()
3078 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 117); in halbtc8821c2ant_action_bt_inquiry()
3083 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_bt_inquiry()
3084 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_bt_inquiry()
3089 void halbtc8821c2ant_action_bt_relink(struct btc_coexist *btc) in halbtc8821c2ant_action_bt_relink() argument
3091 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_bt_relink()
3094 halbtc8821c2ant_table(btc, NM_EXCU, 18); in halbtc8821c2ant_action_bt_relink()
3096 halbtc8821c2ant_table(btc, NM_EXCU, 5); in halbtc8821c2ant_action_bt_relink()
3098 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_bt_relink()
3102 void halbtc8821c2ant_action_bt_idle(struct btc_coexist *btc) in halbtc8821c2ant_action_bt_idle() argument
3104 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_bt_idle()
3105 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_action_bt_idle()
3110 halbtc8821c2ant_wifi_rssi_state(btc, &prewifi_rssi_state, 2, in halbtc8821c2ant_action_bt_idle()
3114 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_bt_idle()
3115 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 14); in halbtc8821c2ant_action_bt_idle()
3119 halbtc8821c2ant_table(btc, NM_EXCU, 14); in halbtc8821c2ant_action_bt_idle()
3120 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 12); in halbtc8821c2ant_action_bt_idle()
3123 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_bt_idle()
3125 halbtc8821c2ant_table(btc, NM_EXCU, 3); in halbtc8821c2ant_action_bt_idle()
3126 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 12); in halbtc8821c2ant_action_bt_idle()
3130 halbtc8821c2ant_set_wl_tx_power(btc, FC_EXCU, 0xd8); in halbtc8821c2ant_action_bt_idle()
3131 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_bt_idle()
3135 void halbtc8821c2ant_action_bt_mr(struct btc_coexist *btc) in halbtc8821c2ant_action_bt_mr() argument
3138 &btc->wifi_link_info_8821c_2ant; in halbtc8821c2ant_action_bt_mr()
3141 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c2ant_action_bt_mr()
3144 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_bt_mr()
3145 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_bt_mr()
3147 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c2ant_action_bt_mr()
3150 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_bt_mr()
3151 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_bt_mr()
3156 void halbtc8821c2ant_action_sco(struct btc_coexist *btc) in halbtc8821c2ant_action_sco() argument
3158 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_sco()
3160 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_sco()
3161 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_sco()
3164 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_sco()
3165 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 25); in halbtc8821c2ant_action_sco()
3168 halbtc8821c2ant_table(btc, NM_EXCU, 1); in halbtc8821c2ant_action_sco()
3170 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_sco()
3172 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 8); in halbtc8821c2ant_action_sco()
3177 void halbtc8821c2ant_action_hid(struct btc_coexist *btc) in halbtc8821c2ant_action_hid() argument
3179 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_hid()
3182 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_action_hid()
3184 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_hid()
3185 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_hid()
3188 halbtc8821c2ant_table(btc, NM_EXCU, 12); in halbtc8821c2ant_action_hid()
3189 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 108); in halbtc8821c2ant_action_hid()
3191 halbtc8821c2ant_table(btc, NM_EXCU, 12); in halbtc8821c2ant_action_hid()
3194 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 113); in halbtc8821c2ant_action_hid()
3196 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 111); in halbtc8821c2ant_action_hid()
3198 halbtc8821c2ant_table(btc, NM_EXCU, 12); in halbtc8821c2ant_action_hid()
3199 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 111); in halbtc8821c2ant_action_hid()
3204 void halbtc8821c2ant_action_a2dpsink(struct btc_coexist *btc) in halbtc8821c2ant_action_a2dpsink() argument
3208 if (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO && in halbtc8821c2ant_action_a2dpsink()
3209 btc->wifi_link_info.bhotspot && in halbtc8821c2ant_action_a2dpsink()
3210 btc->wifi_link_info.bany_client_join_go) in halbtc8821c2ant_action_a2dpsink()
3213 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_a2dpsink()
3214 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_a2dpsink()
3217 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_a2dpsink()
3218 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_a2dpsink()
3220 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_a2dpsink()
3221 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 104); in halbtc8821c2ant_action_a2dpsink()
3226 void halbtc8821c2ant_action_a2dp(struct btc_coexist *btc) in halbtc8821c2ant_action_a2dp() argument
3232 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_action_a2dp()
3235 halbtc8821c2ant_wifi_rssi_state(btc, &prewifi_rssi_state, 2, in halbtc8821c2ant_action_a2dp()
3238 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_a2dp()
3239 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_a2dp()
3241 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_a2dp()
3244 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 120 | TDMA_4SLOT); in halbtc8821c2ant_action_a2dp()
3246 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 119 | TDMA_4SLOT); in halbtc8821c2ant_action_a2dp()
3248 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 101 | TDMA_4SLOT); in halbtc8821c2ant_action_a2dp()
3252 void halbtc8821c2ant_action_pan(struct btc_coexist *btc) in halbtc8821c2ant_action_pan() argument
3259 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_action_pan()
3262 halbtc8821c2ant_wifi_rssi_state(btc, &prewifi_rssi_state, 2, in halbtc8821c2ant_action_pan()
3265 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_pan()
3266 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_pan()
3269 if (btc->board_info.customer_id == RT_CID_LENOVO_CHINA && in halbtc8821c2ant_action_pan()
3271 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_pan()
3273 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 103); in halbtc8821c2ant_action_pan()
3275 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_pan()
3278 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 103); in halbtc8821c2ant_action_pan()
3280 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 104); in halbtc8821c2ant_action_pan()
3285 void halbtc8821c2ant_action_hid_a2dp(struct btc_coexist *btc) in halbtc8821c2ant_action_hid_a2dp() argument
3287 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_hid_a2dp()
3293 halbtc8821c2ant_wifi_rssi_state(btc, &prewifi_rssi_state, 2, in halbtc8821c2ant_action_hid_a2dp()
3296 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_hid_a2dp()
3297 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_hid_a2dp()
3303 halbtc8821c2ant_table(btc, NM_EXCU, 12); in halbtc8821c2ant_action_hid_a2dp()
3306 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 119 | slot_type); in halbtc8821c2ant_action_hid_a2dp()
3308 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 109 | slot_type); in halbtc8821c2ant_action_hid_a2dp()
3312 void halbtc8821c2ant_action_pan_a2dp(struct btc_coexist *btc) in halbtc8821c2ant_action_pan_a2dp() argument
3314 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_pan_a2dp()
3320 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_action_pan_a2dp()
3321 btc->btc_get(btc, BTC_GET_U1_IOT_PEER, &iot_peer); in halbtc8821c2ant_action_pan_a2dp()
3327 halbtc8821c2ant_wifi_rssi_state(btc, &prewifi_rssi_state, 2, in halbtc8821c2ant_action_pan_a2dp()
3330 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_pan_a2dp()
3333 if (btc->board_info.customer_id == RT_CID_LENOVO_CHINA && in halbtc8821c2ant_action_pan_a2dp()
3338 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 20); in halbtc8821c2ant_action_pan_a2dp()
3340 halbtc8821c2ant_table(btc, NM_EXCU, 7); in halbtc8821c2ant_action_pan_a2dp()
3341 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 110); in halbtc8821c2ant_action_pan_a2dp()
3343 halbtc8821c2ant_table(btc, NM_EXCU, 7); in halbtc8821c2ant_action_pan_a2dp()
3344 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 107); in halbtc8821c2ant_action_pan_a2dp()
3347 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_pan_a2dp()
3348 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_pan_a2dp()
3349 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 116); in halbtc8821c2ant_action_pan_a2dp()
3352 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_pan_a2dp()
3353 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_pan_a2dp()
3356 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 107); in halbtc8821c2ant_action_pan_a2dp()
3358 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 106); in halbtc8821c2ant_action_pan_a2dp()
3363 void halbtc8821c2ant_action_pan_hid(struct btc_coexist *btc) in halbtc8821c2ant_action_pan_hid() argument
3367 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_action_pan_hid()
3369 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_pan_hid()
3370 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_pan_hid()
3372 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_pan_hid()
3375 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 103); in halbtc8821c2ant_action_pan_hid()
3377 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 104); in halbtc8821c2ant_action_pan_hid()
3381 void halbtc8821c2ant_action_hid_a2dp_pan(struct btc_coexist *btc) in halbtc8821c2ant_action_hid_a2dp_pan() argument
3385 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in halbtc8821c2ant_action_hid_a2dp_pan()
3387 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_hid_a2dp_pan()
3388 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_hid_a2dp_pan()
3390 halbtc8821c2ant_table(btc, NM_EXCU, 12); in halbtc8821c2ant_action_hid_a2dp_pan()
3393 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 107); in halbtc8821c2ant_action_hid_a2dp_pan()
3395 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 106); in halbtc8821c2ant_action_hid_a2dp_pan()
3399 void halbtc8821c2ant_action_wifi_under5g(struct btc_coexist *btc) in halbtc8821c2ant_action_wifi_under5g() argument
3401 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_wifi_under5g()
3402 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_under5g()
3404 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c2ant_action_wifi_under5g()
3407 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_under5g()
3408 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_under5g()
3412 void halbtc8821c2ant_action_wifi_native_lps(struct btc_coexist *btc) in halbtc8821c2ant_action_wifi_native_lps() argument
3414 halbtc8821c2ant_table(btc, NM_EXCU, 4); in halbtc8821c2ant_action_wifi_native_lps()
3415 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_native_lps()
3419 void halbtc8821c2ant_action_wifi_linkscan(struct btc_coexist *btc) in halbtc8821c2ant_action_wifi_linkscan() argument
3421 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in halbtc8821c2ant_action_wifi_linkscan()
3423 halbtc8821c2ant_set_wl_tx_power(btc, FC_EXCU, 0xd8); in halbtc8821c2ant_action_wifi_linkscan()
3424 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_linkscan()
3426 halbtc8821c2ant_table(btc, NM_EXCU, 8); in halbtc8821c2ant_action_wifi_linkscan()
3429 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 22); in halbtc8821c2ant_action_wifi_linkscan()
3431 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 16); in halbtc8821c2ant_action_wifi_linkscan()
3433 halbtc8821c2ant_tdma(btc, NM_EXCU, TRUE, 21); in halbtc8821c2ant_action_wifi_linkscan()
3437 void halbtc8821c2ant_action_wifi_not_connected(struct btc_coexist *btc) in halbtc8821c2ant_action_wifi_not_connected() argument
3439 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_wifi_not_connected()
3440 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_not_connected()
3442 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_not_connected()
3443 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_not_connected()
3447 void halbtc8821c2ant_action_wifi_connected(struct btc_coexist *btc) in halbtc8821c2ant_action_wifi_connected() argument
3449 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_wifi_connected()
3450 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_action_wifi_connected()
3452 coex_dm->cur_algorithm = halbtc8821c2ant_action_algorithm(btc); in halbtc8821c2ant_action_wifi_connected()
3454 if (halbtc8821c2ant_freerun_check(btc)) { in halbtc8821c2ant_action_wifi_connected()
3458 halbtc8821c2ant_action_freerun(btc); in halbtc8821c2ant_action_wifi_connected()
3467 halbtc8821c2ant_action_sco(btc); in halbtc8821c2ant_action_wifi_connected()
3473 halbtc8821c2ant_action_hid(btc); in halbtc8821c2ant_action_wifi_connected()
3484 halbtc8821c2ant_action_pan_a2dp(btc); in halbtc8821c2ant_action_wifi_connected()
3486 halbtc8821c2ant_action_a2dpsink(btc); in halbtc8821c2ant_action_wifi_connected()
3488 halbtc8821c2ant_action_a2dp(btc); in halbtc8821c2ant_action_wifi_connected()
3494 halbtc8821c2ant_action_pan(btc); in halbtc8821c2ant_action_wifi_connected()
3500 halbtc8821c2ant_action_pan_a2dp(btc); in halbtc8821c2ant_action_wifi_connected()
3506 halbtc8821c2ant_action_pan_hid(btc); in halbtc8821c2ant_action_wifi_connected()
3512 halbtc8821c2ant_action_hid_a2dp_pan(btc); in halbtc8821c2ant_action_wifi_connected()
3518 halbtc8821c2ant_action_hid_a2dp(btc); in halbtc8821c2ant_action_wifi_connected()
3524 halbtc8821c2ant_action_coex_all_off(btc); in halbtc8821c2ant_action_wifi_connected()
3530 void halbtc8821c2ant_action_wifi_multiport25g(struct btc_coexist *btc) in halbtc8821c2ant_action_wifi_multiport25g() argument
3532 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_wifi_multiport25g()
3534 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_wifi_multiport25g()
3535 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_multiport25g()
3537 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_BTCQDDR, TRUE); in halbtc8821c2ant_action_wifi_multiport25g()
3544 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_multiport25g()
3545 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_multiport25g()
3551 halbtc8821c2ant_table(btc, NM_EXCU, 11); in halbtc8821c2ant_action_wifi_multiport25g()
3552 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_multiport25g()
3558 halbtc8821c2ant_table(btc, NM_EXCU, 11); in halbtc8821c2ant_action_wifi_multiport25g()
3559 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_multiport25g()
3564 void halbtc8821c2ant_action_wifi_multiport2g(struct btc_coexist *btc) in halbtc8821c2ant_action_wifi_multiport2g() argument
3566 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_action_wifi_multiport2g()
3570 btc->btc_get(btc, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, &traffic_dir); in halbtc8821c2ant_action_wifi_multiport2g()
3572 halbtc8821c2ant_set_wl_tx_power(btc, NM_EXCU, 0xd8); in halbtc8821c2ant_action_wifi_multiport2g()
3573 halbtc8821c2ant_set_bt_tx_power(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3575 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_BTCQDDR, TRUE); in halbtc8821c2ant_action_wifi_multiport2g()
3582 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3583 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3589 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3590 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3596 if (btc->chip_interface == BTC_INTF_PCI && in halbtc8821c2ant_action_wifi_multiport2g()
3597 (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO || in halbtc8821c2ant_action_wifi_multiport2g()
3598 btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GC)) in halbtc8821c2ant_action_wifi_multiport2g()
3599 halbtc8821c2ant_table(btc, NM_EXCU, 10); in halbtc8821c2ant_action_wifi_multiport2g()
3601 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3603 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3609 halbtc8821c2ant_action_wifi_linkscan(btc); in halbtc8821c2ant_action_wifi_multiport2g()
3611 switch (btc->wifi_link_info.link_mode) { in halbtc8821c2ant_action_wifi_multiport2g()
3614 if (btc->chip_interface == BTC_INTF_PCI && in halbtc8821c2ant_action_wifi_multiport2g()
3616 halbtc8821c2ant_table(btc, NM_EXCU, 10); in halbtc8821c2ant_action_wifi_multiport2g()
3618 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3619 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3626 halbtc8821c2ant_table(btc, NM_EXCU, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3627 halbtc8821c2ant_tdma(btc, NM_EXCU, FALSE, 0); in halbtc8821c2ant_action_wifi_multiport2g()
3634 void halbtc8821c2ant_run_coex(struct btc_coexist *btc, u8 reason) in halbtc8821c2ant_run_coex() argument
3636 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_run_coex()
3637 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in halbtc8821c2ant_run_coex()
3639 &btc->wifi_link_info_8821c_2ant; in halbtc8821c2ant_run_coex()
3643 btc->btc_get(btc, BTC_GET_BL_WIFI_SCAN, &scan); in halbtc8821c2ant_run_coex()
3644 btc->btc_get(btc, BTC_GET_BL_WIFI_LINK, &link); in halbtc8821c2ant_run_coex()
3645 btc->btc_get(btc, BTC_GET_BL_WIFI_ROAM, &roam); in halbtc8821c2ant_run_coex()
3646 btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way); in halbtc8821c2ant_run_coex()
3647 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in halbtc8821c2ant_run_coex()
3648 btc->btc_get(btc, BTC_GET_BL_WIFI_LW_PWR_STATE, &wifi_32k); in halbtc8821c2ant_run_coex()
3665 halbtc8821c2ant_update_wifi_link_info(btc, reason); in halbtc8821c2ant_run_coex()
3674 if (btc->manual_control) { in halbtc8821c2ant_run_coex()
3681 if (btc->stop_coex_dm) { in halbtc8821c2ant_run_coex()
3724 halbtc8821c2ant_action_bt_mr(btc); in halbtc8821c2ant_run_coex()
3734 halbtc8821c2ant_action_wifi_under5g(btc); in halbtc8821c2ant_run_coex()
3744 halbtc8821c2ant_action_wifi_multiport25g(btc); in halbtc8821c2ant_run_coex()
3749 (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO && in halbtc8821c2ant_run_coex()
3750 !btc->wifi_link_info.bhotspot && in halbtc8821c2ant_run_coex()
3751 btc->wifi_link_info.bany_client_join_go)) { in halbtc8821c2ant_run_coex()
3756 if (btc->wifi_link_info.link_mode == BTC_LINK_ONLY_GO) in halbtc8821c2ant_run_coex()
3760 halbtc8821c2ant_action_wifi_multiport2g(btc); in halbtc8821c2ant_run_coex()
3770 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, NM_EXCU, in halbtc8821c2ant_run_coex()
3775 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_BTCQDDR, in halbtc8821c2ant_run_coex()
3778 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_BTCQDDR, in halbtc8821c2ant_run_coex()
3785 halbtc8821c2ant_action_coex_all_off(btc); in halbtc8821c2ant_run_coex()
3794 halbtc8821c2ant_action_wifi_native_lps(btc); in halbtc8821c2ant_run_coex()
3802 halbtc8821c2ant_action_bt_whql_test(btc); in halbtc8821c2ant_run_coex()
3810 halbtc8821c2ant_action_bt_relink(btc); in halbtc8821c2ant_run_coex()
3818 halbtc8821c2ant_action_bt_inquiry(btc); in halbtc8821c2ant_run_coex()
3828 halbtc8821c2ant_action_bt_idle(btc); in halbtc8821c2ant_run_coex()
3836 halbtc8821c2ant_action_wifi_linkscan(btc); in halbtc8821c2ant_run_coex()
3845 halbtc8821c2ant_action_wifi_connected(btc); in halbtc8821c2ant_run_coex()
3851 halbtc8821c2ant_action_wifi_not_connected(btc); in halbtc8821c2ant_run_coex()
3855 static void halbtc8821c2ant_init_coex_var(struct btc_coexist *btc) in halbtc8821c2ant_init_coex_var() argument
3857 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_init_coex_var()
3860 btc->btc_set(btc, BTC_SET_RESET_COEX_VAR, NULL); in halbtc8821c2ant_init_coex_var()
3866 btc->bt_info.bt_get_fw_ver = 0; in halbtc8821c2ant_init_coex_var()
3870 void halbtc8821c2ant_init_coex_dm(struct btc_coexist *btc) in halbtc8821c2ant_init_coex_dm() argument
3875 void halbtc8821c2ant_init_hw_config(struct btc_coexist *btc, boolean wifi_only) in halbtc8821c2ant_init_hw_config() argument
3877 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in halbtc8821c2ant_init_hw_config()
3887 u32tmp3 = btc->btc_read_4byte(btc, 0xcb4); in halbtc8821c2ant_init_hw_config()
3888 u32tmp1 = halbtc8821c2ant_read_indirect_reg(btc, 0x38); in halbtc8821c2ant_init_hw_config()
3889 u32tmp2 = halbtc8821c2ant_read_indirect_reg(btc, 0x54); in halbtc8821c2ant_init_hw_config()
3897 halbtc8821c2ant_init_coex_var(btc); in halbtc8821c2ant_init_hw_config()
3900 coex_sta->kt_ver = (btc->btc_read_1byte(btc, 0xf1) & 0xf0) >> 4; in halbtc8821c2ant_init_hw_config()
3902 halbtc8821c2ant_coex_switch_thres(btc, coex_sta->isolation_btween_wb); in halbtc8821c2ant_init_hw_config()
3904 btc->btc_write_1byte_bitmask(btc, 0x550, 0x8, 0x1); in halbtc8821c2ant_init_hw_config()
3907 btc->btc_write_1byte(btc, 0x790, 0x5); in halbtc8821c2ant_init_hw_config()
3910 btc->btc_write_1byte(btc, 0x778, 0x1); in halbtc8821c2ant_init_hw_config()
3913 btc->btc_write_1byte_bitmask(btc, 0x40, 0x20, 0x1); in halbtc8821c2ant_init_hw_config()
3914 btc->btc_write_1byte_bitmask(btc, 0x41, 0x02, 0x1); in halbtc8821c2ant_init_hw_config()
3917 btc->btc_write_1byte_bitmask(btc, 0x4c6, 0x30, 0x1); in halbtc8821c2ant_init_hw_config()
3920 btc->btc_write_1byte_bitmask(btc, 0x763, 0x10, 0x1); in halbtc8821c2ant_init_hw_config()
3922 halbtc8821c2ant_enable_gnt_to_gpio(btc, TRUE); in halbtc8821c2ant_init_hw_config()
3926 btc->btc_write_1byte(btc, 0x76e, 0x4); in halbtc8821c2ant_init_hw_config()
3928 if (btc->wl_rf_state_off) { in halbtc8821c2ant_init_hw_config()
3929 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in halbtc8821c2ant_init_hw_config()
3931 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ALL, FALSE); in halbtc8821c2ant_init_hw_config()
3932 btc->stop_coex_dm = TRUE; in halbtc8821c2ant_init_hw_config()
3940 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in halbtc8821c2ant_init_hw_config()
3942 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in halbtc8821c2ant_init_hw_config()
3945 btc->stop_coex_dm = TRUE; in halbtc8821c2ant_init_hw_config()
3953 btc->btc_set_rf_reg(btc, BTC_RF_A, 0x1, 0x2, 0x0); in halbtc8821c2ant_init_hw_config()
3956 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in halbtc8821c2ant_init_hw_config()
3958 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in halbtc8821c2ant_init_hw_config()
3961 btc->stop_coex_dm = FALSE; in halbtc8821c2ant_init_hw_config()
3964 halbtc8821c2ant_table(btc, FC_EXCU, 0); in halbtc8821c2ant_init_hw_config()
3965 halbtc8821c2ant_tdma(btc, FC_EXCU, FALSE, 0); in halbtc8821c2ant_init_hw_config()
3967 halbtc8821c2ant_query_bt_info(btc); in halbtc8821c2ant_init_hw_config()
3970 void ex_halbtc8821c2ant_power_on_setting(struct btc_coexist *btc) in ex_halbtc8821c2ant_power_on_setting() argument
3972 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_power_on_setting()
3973 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c2ant_power_on_setting()
3981 btc->stop_coex_dm = TRUE; in ex_halbtc8821c2ant_power_on_setting()
3982 btc->wl_rf_state_off = FALSE; in ex_halbtc8821c2ant_power_on_setting()
3987 u16tmp = btc->btc_read_2byte(btc, 0x2); in ex_halbtc8821c2ant_power_on_setting()
3988 btc->btc_write_2byte(btc, 0x2, u16tmp | BIT(0) | BIT(1)); in ex_halbtc8821c2ant_power_on_setting()
4021 halbtc8821c2ant_set_rfe_type(btc); in ex_halbtc8821c2ant_power_on_setting()
4024 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c2ant_power_on_setting()
4027 halbtc8821c2ant_table(btc, FC_EXCU, 0); in ex_halbtc8821c2ant_power_on_setting()
4032 if (btc->chip_interface == BTC_INTF_PCI) in ex_halbtc8821c2ant_power_on_setting()
4033 btc->btc_write_local_reg_1byte(btc, 0x3e0, u8tmp); in ex_halbtc8821c2ant_power_on_setting()
4034 else if (btc->chip_interface == BTC_INTF_USB) in ex_halbtc8821c2ant_power_on_setting()
4035 btc->btc_write_local_reg_1byte(btc, 0xfe08, u8tmp); in ex_halbtc8821c2ant_power_on_setting()
4036 else if (btc->chip_interface == BTC_INTF_SDIO) in ex_halbtc8821c2ant_power_on_setting()
4037 btc->btc_write_local_reg_1byte(btc, 0x60, u8tmp); in ex_halbtc8821c2ant_power_on_setting()
4040 halbtc8821c2ant_enable_gnt_to_gpio(btc, TRUE); in ex_halbtc8821c2ant_power_on_setting()
4042 if (btc->dbg_mode) { in ex_halbtc8821c2ant_power_on_setting()
4045 halbtc8821c2ant_read_indirect_reg(btc, 0x38)); in ex_halbtc8821c2ant_power_on_setting()
4050 btc->btc_read_4byte(btc, 0x70), in ex_halbtc8821c2ant_power_on_setting()
4051 btc->btc_read_4byte(btc, 0xcb4)); in ex_halbtc8821c2ant_power_on_setting()
4056 void ex_halbtc8821c2ant_pre_load_firmware(struct btc_coexist *btc) in ex_halbtc8821c2ant_pre_load_firmware() argument
4058 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c2ant_pre_load_firmware()
4070 if (btc->chip_interface == BTC_INTF_USB) { in ex_halbtc8821c2ant_pre_load_firmware()
4073 btc->btc_write_local_reg_1byte(btc, 0xfe08, u8tmp); in ex_halbtc8821c2ant_pre_load_firmware()
4082 if (btc->chip_interface == BTC_INTF_PCI) in ex_halbtc8821c2ant_pre_load_firmware()
4083 btc->btc_write_local_reg_1byte(btc, 0x3e0, u8tmp); in ex_halbtc8821c2ant_pre_load_firmware()
4084 else if (btc->chip_interface == BTC_INTF_SDIO) in ex_halbtc8821c2ant_pre_load_firmware()
4085 btc->btc_write_local_reg_1byte(btc, 0x60, u8tmp); in ex_halbtc8821c2ant_pre_load_firmware()
4090 void ex_halbtc8821c2ant_init_hw_config(struct btc_coexist *btc, in ex_halbtc8821c2ant_init_hw_config() argument
4093 halbtc8821c2ant_init_hw_config(btc, wifi_only); in ex_halbtc8821c2ant_init_hw_config()
4096 void ex_halbtc8821c2ant_init_coex_dm(struct btc_coexist *btc) in ex_halbtc8821c2ant_init_coex_dm() argument
4098 btc->stop_coex_dm = FALSE; in ex_halbtc8821c2ant_init_coex_dm()
4099 btc->auto_report = TRUE; in ex_halbtc8821c2ant_init_coex_dm()
4100 btc->dbg_mode = FALSE; in ex_halbtc8821c2ant_init_coex_dm()
4101 halbtc8821c2ant_init_coex_dm(btc); in ex_halbtc8821c2ant_init_coex_dm()
4104 void ex_halbtc8821c2ant_display_simple_coex_info(struct btc_coexist *btc) in ex_halbtc8821c2ant_display_simple_coex_info() argument
4106 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_display_simple_coex_info()
4107 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in ex_halbtc8821c2ant_display_simple_coex_info()
4108 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c2ant_display_simple_coex_info()
4109 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in ex_halbtc8821c2ant_display_simple_coex_info()
4111 u8 *cli_buf = btc->cli_buf; in ex_halbtc8821c2ant_display_simple_coex_info()
4120 btc->btc_get(btc, BTC_GET_U4_SUPPORTED_FEATURE, in ex_halbtc8821c2ant_display_simple_coex_info()
4123 btc->btc_get(btc, BTC_GET_U4_SUPPORTED_VERSION, in ex_halbtc8821c2ant_display_simple_coex_info()
4126 coex_sta->bt_reg_vendor_ac = (u16)(btc->btc_get_bt_reg(btc, 3, in ex_halbtc8821c2ant_display_simple_coex_info()
4130 coex_sta->bt_reg_vendor_ae = (u16)(btc->btc_get_bt_reg(btc, 3, in ex_halbtc8821c2ant_display_simple_coex_info()
4134 btc->btc_get(btc, BTC_GET_U4_BT_PATCH_VER, &bt_patch_ver); in ex_halbtc8821c2ant_display_simple_coex_info()
4135 btc->bt_info.bt_get_fw_ver = bt_patch_ver; in ex_halbtc8821c2ant_display_simple_coex_info()
4138 btc->btc_get_bt_afh_map_from_bt(btc, 0, p); in ex_halbtc8821c2ant_display_simple_coex_info()
4148 if (btc->manual_control) { in ex_halbtc8821c2ant_display_simple_coex_info()
4157 if (btc->stop_coex_dm) { in ex_halbtc8821c2ant_display_simple_coex_info()
4209 void ex_halbtc8821c2ant_display_coex_info(struct btc_coexist *btc) in ex_halbtc8821c2ant_display_coex_info() argument
4211 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_display_coex_info()
4212 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in ex_halbtc8821c2ant_display_coex_info()
4213 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c2ant_display_coex_info()
4214 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in ex_halbtc8821c2ant_display_coex_info()
4216 u8 *cli_buf = btc->cli_buf; in ex_halbtc8821c2ant_display_coex_info()
4233 if (btc->manual_control) { in ex_halbtc8821c2ant_display_coex_info()
4240 } else if (btc->stop_coex_dm) { in ex_halbtc8821c2ant_display_coex_info()
4266 btc->btc_get(btc, BTC_GET_U4_SUPPORTED_VERSION, in ex_halbtc8821c2ant_display_coex_info()
4277 btc->btc_get_bt_afh_map_from_bt(btc, 0, p); in ex_halbtc8821c2ant_display_coex_info()
4282 btc->btc_get(btc, BTC_GET_U4_SUPPORTED_FEATURE, in ex_halbtc8821c2ant_display_coex_info()
4286 val = btc->btc_get_bt_reg(btc, 3, 0xac); in ex_halbtc8821c2ant_display_coex_info()
4291 val = btc->btc_get_bt_reg(btc, 3, 0xae); in ex_halbtc8821c2ant_display_coex_info()
4295 if (btc->bt_info.bt_get_fw_ver == 0) { in ex_halbtc8821c2ant_display_coex_info()
4296 btc->btc_get(btc, BTC_GET_U4_BT_PATCH_VER, in ex_halbtc8821c2ant_display_coex_info()
4298 btc->bt_info.bt_get_fw_ver = bt_patch_ver; in ex_halbtc8821c2ant_display_coex_info()
4315 bt_patch_ver = btc->bt_info.bt_get_fw_ver; in ex_halbtc8821c2ant_display_coex_info()
4316 btc->btc_get(btc, BTC_GET_U4_WIFI_FW_VER, &fw_ver); in ex_halbtc8821c2ant_display_coex_info()
4317 phyver = btc->btc_get_bt_phydm_version(btc); in ex_halbtc8821c2ant_display_coex_info()
4359 btc->btc_disp_dbg_msg(btc, BTC_DBG_DISP_WIFI_STATUS); in ex_halbtc8821c2ant_display_coex_info()
4456 halbtc8821c2ant_read_scbd(btc, &u16tmp[0]); in ex_halbtc8821c2ant_display_coex_info()
4506 if (btc->manual_control) in ex_halbtc8821c2ant_display_coex_info()
4555 u32tmp[0] = btc->btc_read_4byte(btc, 0x6c0); in ex_halbtc8821c2ant_display_coex_info()
4556 u32tmp[1] = btc->btc_read_4byte(btc, 0x6c4); in ex_halbtc8821c2ant_display_coex_info()
4557 u32tmp[2] = btc->btc_read_4byte(btc, 0x6c8); in ex_halbtc8821c2ant_display_coex_info()
4564 u8tmp[0] = btc->btc_read_1byte(btc, 0x778); in ex_halbtc8821c2ant_display_coex_info()
4565 u32tmp[0] = btc->btc_read_4byte(btc, 0x6cc); in ex_halbtc8821c2ant_display_coex_info()
4604 u32tmp[0] = halbtc8821c2ant_read_indirect_reg(btc, 0x38); in ex_halbtc8821c2ant_display_coex_info()
4608 u32tmp[0] = halbtc8821c2ant_read_indirect_reg(btc, 0xa0); in ex_halbtc8821c2ant_display_coex_info()
4609 u32tmp[1] = halbtc8821c2ant_read_indirect_reg(btc, 0xa4); in ex_halbtc8821c2ant_display_coex_info()
4615 u32tmp[0] = halbtc8821c2ant_read_indirect_reg(btc, 0xa8); in ex_halbtc8821c2ant_display_coex_info()
4616 u32tmp[1] = halbtc8821c2ant_read_indirect_reg(btc, 0xac); in ex_halbtc8821c2ant_display_coex_info()
4617 u32tmp[2] = halbtc8821c2ant_read_indirect_reg(btc, 0xb0); in ex_halbtc8821c2ant_display_coex_info()
4618 u32tmp[3] = halbtc8821c2ant_read_indirect_reg(btc, 0xb4); in ex_halbtc8821c2ant_display_coex_info()
4632 u32tmp[0] = halbtc8821c2ant_read_indirect_reg(btc, 0x38); in ex_halbtc8821c2ant_display_coex_info()
4633 u32tmp[1] = halbtc8821c2ant_read_indirect_reg(btc, 0x54); in ex_halbtc8821c2ant_display_coex_info()
4634 u8tmp[0] = btc->btc_read_1byte(btc, 0x73); in ex_halbtc8821c2ant_display_coex_info()
4673 btc->btc_get_rf_reg(btc, BTC_RF_A, 0x1, 0xfffff)); in ex_halbtc8821c2ant_display_coex_info()
4676 u32tmp[0] = btc->btc_read_4byte(btc, 0xcb0); in ex_halbtc8821c2ant_display_coex_info()
4677 u32tmp[1] = btc->btc_read_4byte(btc, 0xcb4); in ex_halbtc8821c2ant_display_coex_info()
4678 u8tmp[0] = btc->btc_read_1byte(btc, 0xcba); in ex_halbtc8821c2ant_display_coex_info()
4687 u32tmp[0] = btc->btc_read_4byte(btc, 0x430); in ex_halbtc8821c2ant_display_coex_info()
4688 u32tmp[1] = btc->btc_read_4byte(btc, 0x434); in ex_halbtc8821c2ant_display_coex_info()
4689 u16tmp[0] = btc->btc_read_2byte(btc, 0x42a); in ex_halbtc8821c2ant_display_coex_info()
4690 u8tmp[0] = btc->btc_read_1byte(btc, 0x426); in ex_halbtc8821c2ant_display_coex_info()
4691 u8tmp[1] = btc->btc_read_1byte(btc, 0x45e); in ex_halbtc8821c2ant_display_coex_info()
4692 u8tmp[2] = btc->btc_read_1byte(btc, 0x455); in ex_halbtc8821c2ant_display_coex_info()
4700 u32tmp[0] = btc->btc_read_4byte(btc, 0x4c); in ex_halbtc8821c2ant_display_coex_info()
4701 u8tmp[2] = btc->btc_read_1byte(btc, 0x64); in ex_halbtc8821c2ant_display_coex_info()
4702 u8tmp[0] = btc->btc_read_1byte(btc, 0x4c6); in ex_halbtc8821c2ant_display_coex_info()
4703 u8tmp[1] = btc->btc_read_1byte(btc, 0x40); in ex_halbtc8821c2ant_display_coex_info()
4713 u32tmp[0] = btc->btc_read_4byte(btc, 0x550); in ex_halbtc8821c2ant_display_coex_info()
4714 u8tmp[0] = btc->btc_read_1byte(btc, 0x522); in ex_halbtc8821c2ant_display_coex_info()
4715 u8tmp[1] = btc->btc_read_1byte(btc, 0x953); in ex_halbtc8821c2ant_display_coex_info()
4716 u8tmp[2] = btc->btc_read_1byte(btc, 0xc50); in ex_halbtc8821c2ant_display_coex_info()
4724 fa_ofdm = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_FA_OFDM); in ex_halbtc8821c2ant_display_coex_info()
4725 fa_cck = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_FA_CCK); in ex_halbtc8821c2ant_display_coex_info()
4726 cca_ofdm = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CCA_OFDM); in ex_halbtc8821c2ant_display_coex_info()
4727 cca_cck = btc->btc_phydm_query_PHY_counter(btc, PHYDM_INFO_CCA_CCK); in ex_halbtc8821c2ant_display_coex_info()
4777 btc->btc_disp_dbg_msg(btc, BTC_DBG_DISP_COEX_STATISTICS); in ex_halbtc8821c2ant_display_coex_info()
4780 void ex_halbtc8821c2ant_ips_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c2ant_ips_notify() argument
4782 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_ips_notify()
4784 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c2ant_ips_notify()
4794 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in ex_halbtc8821c2ant_ips_notify()
4800 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c2ant_ips_notify()
4803 halbtc8821c2ant_action_coex_all_off(btc); in ex_halbtc8821c2ant_ips_notify()
4810 halbtc8821c2ant_init_hw_config(btc, FALSE); in ex_halbtc8821c2ant_ips_notify()
4811 halbtc8821c2ant_init_coex_dm(btc); in ex_halbtc8821c2ant_ips_notify()
4812 halbtc8821c2ant_query_bt_info(btc); in ex_halbtc8821c2ant_ips_notify()
4816 void ex_halbtc8821c2ant_lps_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c2ant_lps_notify() argument
4818 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_lps_notify()
4820 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c2ant_lps_notify()
4832 halbtc8821c2ant_write_scbd(btc, in ex_halbtc8821c2ant_lps_notify()
4838 halbtc8821c2ant_write_scbd(btc, in ex_halbtc8821c2ant_lps_notify()
4842 halbtc8821c2ant_action_wifi_native_lps(btc); in ex_halbtc8821c2ant_lps_notify()
4851 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE, in ex_halbtc8821c2ant_lps_notify()
4855 halbtc8821c2ant_query_bt_info(btc); in ex_halbtc8821c2ant_lps_notify()
4856 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_LPS); in ex_halbtc8821c2ant_lps_notify()
4861 void ex_halbtc8821c2ant_scan_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c2ant_scan_notify() argument
4863 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_scan_notify()
4870 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c2ant_scan_notify()
4873 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in ex_halbtc8821c2ant_scan_notify()
4888 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in ex_halbtc8821c2ant_scan_notify()
4898 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, in ex_halbtc8821c2ant_scan_notify()
4901 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_5GSCANSTART); in ex_halbtc8821c2ant_scan_notify()
4910 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c2ant_scan_notify()
4913 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_2GSCANSTART); in ex_halbtc8821c2ant_scan_notify()
4915 btc->btc_get(btc, BTC_GET_U1_AP_NUM, &coex_sta->scan_ap_num); in ex_halbtc8821c2ant_scan_notify()
4924 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_SCANFINISH); in ex_halbtc8821c2ant_scan_notify()
4928 void ex_halbtc8821c2ant_switchband_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c2ant_switchband_notify() argument
4930 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_switchband_notify()
4932 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c2ant_switchband_notify()
4942 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_5GSWITCHBAND); in ex_halbtc8821c2ant_switchband_notify()
4948 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_2GSWITCHBAND); in ex_halbtc8821c2ant_switchband_notify()
4954 ex_halbtc8821c2ant_scan_notify(btc, BTC_SCAN_START_2G); in ex_halbtc8821c2ant_switchband_notify()
4960 void ex_halbtc8821c2ant_connect_notify(struct btc_coexist *btc, in ex_halbtc8821c2ant_connect_notify() argument
4963 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_connect_notify()
4964 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in ex_halbtc8821c2ant_connect_notify()
4966 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c2ant_connect_notify()
4969 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in ex_halbtc8821c2ant_connect_notify()
4975 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c2ant_connect_notify()
4983 halbtc8821c2ant_run_coex(btc, in ex_halbtc8821c2ant_connect_notify()
4990 halbtc8821c2ant_run_coex(btc, in ex_halbtc8821c2ant_connect_notify()
5000 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c2ant_connect_notify()
5003 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_2GCONSTART); in ex_halbtc8821c2ant_connect_notify()
5017 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_2GCONFINISH); in ex_halbtc8821c2ant_connect_notify()
5021 void ex_halbtc8821c2ant_media_status_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c2ant_media_status_notify() argument
5023 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_media_status_notify()
5027 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c2ant_media_status_notify()
5035 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in ex_halbtc8821c2ant_media_status_notify()
5043 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, in ex_halbtc8821c2ant_media_status_notify()
5047 halbtc8821c2ant_run_coex(btc, in ex_halbtc8821c2ant_media_status_notify()
5050 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, in ex_halbtc8821c2ant_media_status_notify()
5054 btc->btc_get(btc, BTC_GET_BL_WIFI_UNDER_B_MODE, in ex_halbtc8821c2ant_media_status_notify()
5059 btc->btc_write_1byte_bitmask(btc, 0x6cf, BIT(4), in ex_halbtc8821c2ant_media_status_notify()
5062 btc->btc_write_1byte_bitmask(btc, 0x6cf, BIT(4), in ex_halbtc8821c2ant_media_status_notify()
5068 btc->btc_fill_h2c(btc, 0x69, 2, h2c_parameter); in ex_halbtc8821c2ant_media_status_notify()
5071 halbtc8821c2ant_run_coex(btc, in ex_halbtc8821c2ant_media_status_notify()
5079 btc->btc_write_1byte_bitmask(btc, 0x6cf, BIT(4), 0x0); in ex_halbtc8821c2ant_media_status_notify()
5085 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_MEDIADISCON); in ex_halbtc8821c2ant_media_status_notify()
5087 btc->btc_get(btc, BTC_GET_U1_IOT_PEER, &coex_sta->wl_iot_peer); in ex_halbtc8821c2ant_media_status_notify()
5088 halbtc8821c2ant_update_wifi_ch_info(btc, type); in ex_halbtc8821c2ant_media_status_notify()
5091 void ex_halbtc8821c2ant_specific_packet_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c2ant_specific_packet_notify() argument
5093 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_specific_packet_notify()
5094 struct coex_dm_8821c_2ant *coex_dm = &btc->coex_dm_8821c_2ant; in ex_halbtc8821c2ant_specific_packet_notify()
5097 if (btc->manual_control || btc->stop_coex_dm) in ex_halbtc8821c2ant_specific_packet_notify()
5105 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_5GSPECIALPKT); in ex_halbtc8821c2ant_specific_packet_notify()
5109 btc->btc_get(btc, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under_4way); in ex_halbtc8821c2ant_specific_packet_notify()
5135 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_SCAN, TRUE); in ex_halbtc8821c2ant_specific_packet_notify()
5136 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_2GSPECIALPKT); in ex_halbtc8821c2ant_specific_packet_notify()
5140 void ex_halbtc8821c2ant_bt_info_notify(struct btc_coexist *btc, u8 *tmp_buf, in ex_halbtc8821c2ant_bt_info_notify() argument
5143 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_bt_info_notify()
5144 struct btc_bt_link_info *bt_link_info = &btc->bt_link_info; in ex_halbtc8821c2ant_bt_info_notify()
5172 halbtc8821c2ant_update_bt_link_info(btc); in ex_halbtc8821c2ant_bt_info_notify()
5173 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_BTINFO); in ex_halbtc8821c2ant_bt_info_notify()
5333 btc->btc_get(btc, BTC_GET_BL_WIFI_BUSY, &wifi_busy); in ex_halbtc8821c2ant_bt_info_notify()
5339 halbtc8821c2ant_write_scbd(btc, type_is_scan, TRUE); in ex_halbtc8821c2ant_bt_info_notify()
5341 halbtc8821c2ant_write_scbd(btc, type_is_scan, FALSE); in ex_halbtc8821c2ant_bt_info_notify()
5345 halbtc8821c2ant_write_scbd(btc, type_is_scan, FALSE); in ex_halbtc8821c2ant_bt_info_notify()
5352 btc->btc_get(btc, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); in ex_halbtc8821c2ant_bt_info_notify()
5362 halbtc8821c2ant_update_wifi_ch_info(btc, type); in ex_halbtc8821c2ant_bt_info_notify()
5371 halbtc8821c2ant_ignore_wlan_act(btc, FC_EXCU, FALSE); in ex_halbtc8821c2ant_bt_info_notify()
5374 halbtc8821c2ant_update_bt_link_info(btc); in ex_halbtc8821c2ant_bt_info_notify()
5375 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_BTINFO); in ex_halbtc8821c2ant_bt_info_notify()
5378 void ex_halbtc8821c2ant_wl_fwdbginfo_notify(struct btc_coexist *btc, in ex_halbtc8821c2ant_wl_fwdbginfo_notify() argument
5381 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_wl_fwdbginfo_notify()
5403 halbtc8821c2ant_ccklock_action(btc); in ex_halbtc8821c2ant_wl_fwdbginfo_notify()
5406 void ex_halbtc8821c2ant_rx_rate_change_notify(struct btc_coexist *btc, in ex_halbtc8821c2ant_rx_rate_change_notify() argument
5410 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_rx_rate_change_notify()
5428 halbtc8821c2ant_ccklock_detect(btc); in ex_halbtc8821c2ant_rx_rate_change_notify()
5431 void ex_halbtc8821c2ant_tx_rate_change_notify(struct btc_coexist *btc, in ex_halbtc8821c2ant_tx_rate_change_notify() argument
5435 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_tx_rate_change_notify()
5447 void ex_halbtc8821c2ant_rf_status_notify(struct btc_coexist *btc, u8 type) in ex_halbtc8821c2ant_rf_status_notify() argument
5449 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_rf_status_notify()
5459 btc->stop_coex_dm = FALSE; in ex_halbtc8821c2ant_rf_status_notify()
5460 btc->wl_rf_state_off = FALSE; in ex_halbtc8821c2ant_rf_status_notify()
5466 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in ex_halbtc8821c2ant_rf_status_notify()
5472 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c2ant_rf_status_notify()
5475 halbtc8821c2ant_action_coex_all_off(btc); in ex_halbtc8821c2ant_rf_status_notify()
5477 btc->stop_coex_dm = TRUE; in ex_halbtc8821c2ant_rf_status_notify()
5478 btc->wl_rf_state_off = TRUE; in ex_halbtc8821c2ant_rf_status_notify()
5480 halbtc8821c2ant_update_wifi_ch_info(btc, BTC_MEDIA_DISCONNECT); in ex_halbtc8821c2ant_rf_status_notify()
5484 void ex_halbtc8821c2ant_halt_notify(struct btc_coexist *btc) in ex_halbtc8821c2ant_halt_notify() argument
5489 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in ex_halbtc8821c2ant_halt_notify()
5495 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c2ant_halt_notify()
5498 halbtc8821c2ant_action_coex_all_off(btc); in ex_halbtc8821c2ant_halt_notify()
5500 btc->stop_coex_dm = TRUE; in ex_halbtc8821c2ant_halt_notify()
5503 halbtc8821c2ant_update_wifi_ch_info(btc, BTC_MEDIA_DISCONNECT); in ex_halbtc8821c2ant_halt_notify()
5506 void ex_halbtc8821c2ant_pnp_notify(struct btc_coexist *btc, u8 pnp_state) in ex_halbtc8821c2ant_pnp_notify() argument
5508 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_pnp_notify()
5510 &btc->wifi_link_info_8821c_2ant; in ex_halbtc8821c2ant_pnp_notify()
5533 halbtc8821c2ant_write_scbd(btc, BT_8821C_2ANT_SCBD_ACTIVE | in ex_halbtc8821c2ant_pnp_notify()
5548 halbtc8821c2ant_set_ant_path(btc, BTC_ANT_PATH_AUTO, FC_EXCU, in ex_halbtc8821c2ant_pnp_notify()
5550 btc->stop_coex_dm = TRUE; in ex_halbtc8821c2ant_pnp_notify()
5561 btc->stop_coex_dm = FALSE; in ex_halbtc8821c2ant_pnp_notify()
5562 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_PNP); in ex_halbtc8821c2ant_pnp_notify()
5569 void ex_halbtc8821c2ant_periodical(struct btc_coexist *btc) in ex_halbtc8821c2ant_periodical() argument
5571 struct coex_sta_8821c_2ant *coex_sta = &btc->coex_sta_8821c_2ant; in ex_halbtc8821c2ant_periodical()
5572 struct btc_board_info *board_info = &btc->board_info; in ex_halbtc8821c2ant_periodical()
5581 if (!btc->auto_report) in ex_halbtc8821c2ant_periodical()
5582 halbtc8821c2ant_query_bt_info(btc); in ex_halbtc8821c2ant_periodical()
5584 bt_ctr_change = halbtc8821c2ant_monitor_bt_ctr(btc); in ex_halbtc8821c2ant_periodical()
5585 halbtc8821c2ant_monitor_wifi_ctr(btc); in ex_halbtc8821c2ant_periodical()
5586 halbtc8821c2ant_update_wifi_link_info(btc, in ex_halbtc8821c2ant_periodical()
5588 halbtc8821c2ant_monitor_bt_enable(btc); in ex_halbtc8821c2ant_periodical()
5651 if (halbtc8821c2ant_moniter_wifibt_status(btc) || bt_relink_finish || in ex_halbtc8821c2ant_periodical()
5653 halbtc8821c2ant_run_coex(btc, BT_8821C_2ANT_RSN_PERIODICAL); in ex_halbtc8821c2ant_periodical()