Lines Matching full:dm

49 	struct dm_struct *dm = (struct dm_struct *)dm_void;  in phydm_traffic_load_decision()  local
54 if (dm->last_tx_ok_cnt > *dm->num_tx_bytes_unicast) in phydm_traffic_load_decision()
55 dm->last_tx_ok_cnt = *dm->num_tx_bytes_unicast; in phydm_traffic_load_decision()
57 if (dm->last_rx_ok_cnt > *dm->num_rx_bytes_unicast) in phydm_traffic_load_decision()
58 dm->last_rx_ok_cnt = *dm->num_rx_bytes_unicast; in phydm_traffic_load_decision()
60 dm->cur_tx_ok_cnt = *dm->num_tx_bytes_unicast - dm->last_tx_ok_cnt; in phydm_traffic_load_decision()
61 dm->cur_rx_ok_cnt = *dm->num_rx_bytes_unicast - dm->last_rx_ok_cnt; in phydm_traffic_load_decision()
62 dm->last_tx_ok_cnt = *dm->num_tx_bytes_unicast; in phydm_traffic_load_decision()
63 dm->last_rx_ok_cnt = *dm->num_rx_bytes_unicast; in phydm_traffic_load_decision()
69 dm->tx_tp = (dm->tx_tp >> 1) + (u32)((dm->cur_tx_ok_cnt >> shift) >> 1); in phydm_traffic_load_decision()
70 dm->rx_tp = (dm->rx_tp >> 1) + (u32)((dm->cur_rx_ok_cnt >> shift) >> 1); in phydm_traffic_load_decision()
72 dm->total_tp = dm->tx_tp + dm->rx_tp; in phydm_traffic_load_decision()
75 if (dm->tx_tp > (dm->rx_tp << 1)) in phydm_traffic_load_decision()
76 dm->txrx_state_all = TX_STATE; in phydm_traffic_load_decision()
77 else if (dm->rx_tp > (dm->tx_tp << 1)) in phydm_traffic_load_decision()
78 dm->txrx_state_all = RX_STATE; in phydm_traffic_load_decision()
80 dm->txrx_state_all = BI_DIRECTION_STATE; in phydm_traffic_load_decision()
83 dm->pre_traffic_load = dm->traffic_load; in phydm_traffic_load_decision()
85 if (dm->cur_tx_ok_cnt > 1875000 || dm->cur_rx_ok_cnt > 1875000) { in phydm_traffic_load_decision()
87 dm->traffic_load = TRAFFIC_HIGH; in phydm_traffic_load_decision()
88 } else if (dm->cur_tx_ok_cnt > 500000 || dm->cur_rx_ok_cnt > 500000) { in phydm_traffic_load_decision()
90 dm->traffic_load = TRAFFIC_MID; in phydm_traffic_load_decision()
91 } else if (dm->cur_tx_ok_cnt > 100000 || dm->cur_rx_ok_cnt > 100000) { in phydm_traffic_load_decision()
93 dm->traffic_load = TRAFFIC_LOW; in phydm_traffic_load_decision()
94 } else if (dm->cur_tx_ok_cnt > 25000 || dm->cur_rx_ok_cnt > 25000) { in phydm_traffic_load_decision()
96 dm->traffic_load = TRAFFIC_ULTRA_LOW; in phydm_traffic_load_decision()
98 dm->traffic_load = TRAFFIC_NO_TP; in phydm_traffic_load_decision()
102 if (dm->traffic_load == 0) in phydm_traffic_load_decision()
103 dm->consecutive_idlel_time += PHYDM_WATCH_DOG_PERIOD; in phydm_traffic_load_decision()
105 dm->consecutive_idlel_time = 0; in phydm_traffic_load_decision()
108 PHYDM_DBG(dm, DBG_COMMON_FLOW, in phydm_traffic_load_decision()
110 dm->cur_tx_ok_cnt, dm->cur_rx_ok_cnt, dm->last_tx_ok_cnt, in phydm_traffic_load_decision()
111 dm->last_rx_ok_cnt); in phydm_traffic_load_decision()
113 PHYDM_DBG(dm, DBG_COMMON_FLOW, "tx_tp = %d, rx_tp = %d\n", dm->tx_tp, in phydm_traffic_load_decision()
114 dm->rx_tp); in phydm_traffic_load_decision()
118 void phydm_cck_new_agc_chk(struct dm_struct *dm) in phydm_cck_new_agc_chk() argument
122 dm->cck_new_agc = false; in phydm_cck_new_agc_chk()
127 if (dm->support_ic_type & (ODM_RTL8723D | ODM_RTL8822B | ODM_RTL8821C | in phydm_cck_new_agc_chk()
131 } else if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8822C | in phydm_cck_new_agc_chk()
137 dm->cck_new_agc = (boolean)odm_get_bb_reg(dm, new_agc_addr, BIT(17)); in phydm_cck_new_agc_chk()
140 if (dm->support_ic_type & (ODM_RTL8723F)) in phydm_cck_new_agc_chk()
141 dm->cck_new_agc = true; in phydm_cck_new_agc_chk()
146 void phydm_cck_lna_bit_num_chk(struct dm_struct *dm) in phydm_cck_lna_bit_num_chk() argument
154 if (dm->support_ic_type & (ODM_RTL8192E)) { in phydm_cck_lna_bit_num_chk()
158 value_824 = odm_get_bb_reg(dm, R_0x824, BIT(9)); in phydm_cck_lna_bit_num_chk()
159 value_82c = odm_get_bb_reg(dm, R_0x82c, BIT(9)); in phydm_cck_lna_bit_num_chk()
162 odm_set_bb_reg(dm, R_0x82c, BIT(9), value_824); in phydm_cck_lna_bit_num_chk()
163 odm_set_bb_reg(dm, R_0xa80, BIT(7), value_824); in phydm_cck_lna_bit_num_chk()
169 if (dm->support_ic_type & in phydm_cck_lna_bit_num_chk()
171 report_type = (boolean)odm_get_bb_reg(dm, R_0x950, BIT(11)); in phydm_cck_lna_bit_num_chk()
179 if (dm->support_ic_type & ODM_RTL8821C) { in phydm_cck_lna_bit_num_chk()
180 if (dm->default_rf_set_8821c == SWITCH_TO_BTG) in phydm_cck_lna_bit_num_chk()
185 dm->cck_agc_report_type = report_type; in phydm_cck_lna_bit_num_chk()
187 PHYDM_DBG(dm, ODM_COMP_INIT, "cck_agc_report_type=((%d))\n", in phydm_cck_lna_bit_num_chk()
188 dm->cck_agc_report_type); in phydm_cck_lna_bit_num_chk()
191 void phydm_init_cck_setting(struct dm_struct *dm) in phydm_init_cck_setting() argument
196 phydm_cck_new_agc_chk(dm); in phydm_init_cck_setting()
198 if (dm->support_ic_type & ODM_IC_JGR3_SERIES) in phydm_init_cck_setting()
201 reg_tmp = ODM_REG(CCK_RPT_FORMAT, dm); in phydm_init_cck_setting()
202 mask_tmp = ODM_BIT(CCK_RPT_FORMAT, dm); in phydm_init_cck_setting()
203 dm->is_cck_high_power = (boolean)odm_get_bb_reg(dm, reg_tmp, mask_tmp); in phydm_init_cck_setting()
205 PHYDM_DBG(dm, ODM_COMP_INIT, "ext_lna_gain=((%d))\n", dm->ext_lna_gain); in phydm_init_cck_setting()
207 phydm_config_cck_rx_antenna_init(dm); in phydm_init_cck_setting()
209 if (dm->support_ic_type & ODM_RTL8192F) in phydm_init_cck_setting()
210 phydm_config_cck_rx_path(dm, BB_PATH_AB); in phydm_init_cck_setting()
211 else if (dm->valid_path_set == BB_PATH_A) in phydm_init_cck_setting()
212 phydm_config_cck_rx_path(dm, BB_PATH_A); in phydm_init_cck_setting()
213 else if (dm->valid_path_set == BB_PATH_B) in phydm_init_cck_setting()
214 phydm_config_cck_rx_path(dm, BB_PATH_B); in phydm_init_cck_setting()
216 phydm_cck_lna_bit_num_chk(dm); in phydm_init_cck_setting()
217 phydm_get_cck_rssi_table_from_reg(dm); in phydm_init_cck_setting()
221 void phydm_init_hw_info_by_rfe(struct dm_struct *dm) in phydm_init_hw_info_by_rfe() argument
224 if (dm->support_ic_type & ODM_RTL8821C) in phydm_init_hw_info_by_rfe()
225 phydm_init_hw_info_by_rfe_type_8821c(dm); in phydm_init_hw_info_by_rfe()
228 if (dm->support_ic_type & ODM_RTL8197F) in phydm_init_hw_info_by_rfe()
229 phydm_init_hw_info_by_rfe_type_8197f(dm); in phydm_init_hw_info_by_rfe()
232 if (dm->support_ic_type & ODM_RTL8197G) in phydm_init_hw_info_by_rfe()
233 phydm_init_hw_info_by_rfe_type_8197g(dm); in phydm_init_hw_info_by_rfe()
238 void phydm_common_info_self_init(struct dm_struct *dm) in phydm_common_info_self_init() argument
243 dm->run_in_drv_fw = RUN_IN_DRIVER; in phydm_common_info_self_init()
246 if (dm->support_ic_type & ODM_IC_JGR3_SERIES) in phydm_common_info_self_init()
247 dm->ic_ip_series = PHYDM_IC_JGR3; in phydm_common_info_self_init()
248 else if (dm->support_ic_type & ODM_IC_11AC_SERIES) in phydm_common_info_self_init()
249 dm->ic_ip_series = PHYDM_IC_AC; in phydm_common_info_self_init()
250 else if (dm->support_ic_type & ODM_IC_11N_SERIES) in phydm_common_info_self_init()
251 dm->ic_ip_series = PHYDM_IC_N; in phydm_common_info_self_init()
254 if (dm->support_ic_type & PHYSTS_3RD_TYPE_IC) in phydm_common_info_self_init()
255 dm->ic_phy_sts_type = PHYDM_PHYSTS_TYPE_3; in phydm_common_info_self_init()
256 else if (dm->support_ic_type & PHYSTS_2ND_TYPE_IC) in phydm_common_info_self_init()
257 dm->ic_phy_sts_type = PHYDM_PHYSTS_TYPE_2; in phydm_common_info_self_init()
259 dm->ic_phy_sts_type = PHYDM_PHYSTS_TYPE_1; in phydm_common_info_self_init()
261 phydm_init_cck_setting(dm); in phydm_common_info_self_init()
263 reg_tmp = ODM_REG(BB_RX_PATH, dm); in phydm_common_info_self_init()
264 mask_tmp = ODM_BIT(BB_RX_PATH, dm); in phydm_common_info_self_init()
265 dm->rf_path_rx_enable = (u8)odm_get_bb_reg(dm, reg_tmp, mask_tmp); in phydm_common_info_self_init()
267 dm->is_net_closed = &dm->BOOLEAN_temp; in phydm_common_info_self_init()
269 phydm_init_debug_setting(dm); in phydm_common_info_self_init()
271 phydm_init_soft_ml_setting(dm); in phydm_common_info_self_init()
273 dm->phydm_sys_up_time = 0; in phydm_common_info_self_init()
275 if (dm->support_ic_type & ODM_IC_1SS) in phydm_common_info_self_init()
276 dm->num_rf_path = 1; in phydm_common_info_self_init()
277 else if (dm->support_ic_type & ODM_IC_2SS) in phydm_common_info_self_init()
278 dm->num_rf_path = 2; in phydm_common_info_self_init()
283 else if (dm->support_ic_type & ODM_IC_3SS) in phydm_common_info_self_init()
284 dm->num_rf_path = 3; in phydm_common_info_self_init()
286 else if (dm->support_ic_type & ODM_IC_4SS) in phydm_common_info_self_init()
287 dm->num_rf_path = 4; in phydm_common_info_self_init()
289 dm->num_rf_path = 1; in phydm_common_info_self_init()
291 phydm_trx_antenna_setting_init(dm, dm->num_rf_path); in phydm_common_info_self_init()
293 dm->tx_rate = 0xFF; in phydm_common_info_self_init()
294 dm->rssi_min_by_path = 0xFF; in phydm_common_info_self_init()
296 dm->number_linked_client = 0; in phydm_common_info_self_init()
297 dm->pre_number_linked_client = 0; in phydm_common_info_self_init()
298 dm->number_active_client = 0; in phydm_common_info_self_init()
299 dm->pre_number_active_client = 0; in phydm_common_info_self_init()
301 dm->last_tx_ok_cnt = 0; in phydm_common_info_self_init()
302 dm->last_rx_ok_cnt = 0; in phydm_common_info_self_init()
303 dm->tx_tp = 0; in phydm_common_info_self_init()
304 dm->rx_tp = 0; in phydm_common_info_self_init()
305 dm->total_tp = 0; in phydm_common_info_self_init()
306 dm->traffic_load = TRAFFIC_LOW; in phydm_common_info_self_init()
308 dm->nbi_set_result = 0; in phydm_common_info_self_init()
309 dm->is_init_hw_info_by_rfe = false; in phydm_common_info_self_init()
310 dm->pre_dbg_priority = DBGPORT_RELEASE; in phydm_common_info_self_init()
311 dm->tp_active_th = 5; in phydm_common_info_self_init()
312 dm->disable_phydm_watchdog = 0; in phydm_common_info_self_init()
314 dm->u8_dummy = 0xf; in phydm_common_info_self_init()
315 dm->u16_dummy = 0xffff; in phydm_common_info_self_init()
316 dm->u32_dummy = 0xffffffff; in phydm_common_info_self_init()
319 dm->dsde_sel = DET_CSI; in phydm_common_info_self_init()
320 dm->csi_wgt = 4; in phydm_common_info_self_init()
323 dm->pre_is_linked = false; in phydm_common_info_self_init()
324 dm->is_linked = false; in phydm_common_info_self_init()
326 if (dm->en_auto_bw_th == 0) in phydm_common_info_self_init()
327 dm->en_auto_bw_th = 20; in phydm_common_info_self_init()
330 if (!(dm->is_fcs_mode_enable)) { in phydm_common_info_self_init()
331 dm->is_fcs_mode_enable = &dm->boolean_dummy; in phydm_common_info_self_init()
336 odm_memory_set(dm, &dm->iot_table, 0, sizeof(struct phydm_iot_center)); in phydm_common_info_self_init()
341 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_iot_patch_id_update() local
342 struct phydm_iot_center *iot_table = &dm->iot_table; in phydm_iot_patch_id_update()
344 PHYDM_DBG(dm, DBG_CMN, "[IOT] 0x%x = %d\n", iot_idx, en); in phydm_iot_patch_id_update()
348 PHYDM_DBG(dm, DBG_CMN, "[IOT] patch_id_100f0401 = %d\n", in phydm_iot_patch_id_update()
353 PHYDM_DBG(dm, DBG_CMN, "[IOT] patch_id_10120200 = %d\n", in phydm_iot_patch_id_update()
358 PHYDM_DBG(dm, DBG_CMN, "[IOT] patch_id_40010700 = %d\n", in phydm_iot_patch_id_update()
363 PHYDM_DBG(dm, DBG_CMN, "[IOT] patch_id_021f0800 = %d\n", in phydm_iot_patch_id_update()
368 PHYDM_DBG(dm, DBG_CMN, "[IOT] patch_id_011f0500 = %d\n", in phydm_iot_patch_id_update()
379 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_cmn_sta_info_update() local
380 struct cmn_sta_info *sta = dm->phydm_sta_info[macid]; in phydm_cmn_sta_info_update()
386 PHYDM_DBG(dm, DBG_RA_MASK, "[Warning] %s invalid sta_info\n", in phydm_cmn_sta_info_update()
391 PHYDM_DBG(dm, DBG_RA_MASK, "%s ======>\n", __func__); in phydm_cmn_sta_info_update()
392 PHYDM_DBG(dm, DBG_RA_MASK, "MACID=%d\n", sta->mac_id); in phydm_cmn_sta_info_update()
402 ra->is_noisy = dm->noisy_decision; in phydm_cmn_sta_info_update()
405 void phydm_common_info_self_update(struct dm_struct *dm) in phydm_common_info_self_update() argument
413 PADAPTER adapter = (PADAPTER)dm->adapter; in phydm_common_info_self_update()
416 sta = dm->phydm_sta_info[0]; in phydm_common_info_self_update()
420 dm->bsta_state = true; in phydm_common_info_self_update()
422 dm->bsta_state = false; in phydm_common_info_self_update()
426 sta = dm->phydm_sta_info[i]; in phydm_common_info_self_update()
433 phydm_cmn_sta_info_update(dm, (u8)i); in phydm_common_info_self_update()
435 /*@phydm_get_txbf_device_num(dm, (u8)i);*/ in phydm_common_info_self_update()
441 PHYDM_DBG(dm, DBG_COMMON_FLOW, in phydm_common_info_self_update()
450 dm->is_linked = (sta_cnt != 0) ? true : false; in phydm_common_info_self_update()
454 dm->is_one_entry_only = true; in phydm_common_info_self_update()
455 dm->one_entry_macid = one_entry_macid; in phydm_common_info_self_update()
456 dm->one_entry_tp = ma_rx_tp; in phydm_common_info_self_update()
458 dm->tp_active_occur = 0; in phydm_common_info_self_update()
460 PHYDM_DBG(dm, DBG_COMMON_FLOW, in phydm_common_info_self_update()
462 dm->one_entry_tp, dm->pre_one_entry_tp); in phydm_common_info_self_update()
464 if (dm->one_entry_tp > dm->pre_one_entry_tp && in phydm_common_info_self_update()
465 dm->pre_one_entry_tp <= 2) { in phydm_common_info_self_update()
466 tp_diff = dm->one_entry_tp - dm->pre_one_entry_tp; in phydm_common_info_self_update()
468 if (tp_diff > dm->tp_active_th) in phydm_common_info_self_update()
469 dm->tp_active_occur = 1; in phydm_common_info_self_update()
471 dm->pre_one_entry_tp = dm->one_entry_tp; in phydm_common_info_self_update()
473 dm->is_one_entry_only = false; in phydm_common_info_self_update()
476 dm->pre_number_linked_client = dm->number_linked_client; in phydm_common_info_self_update()
477 dm->pre_number_active_client = dm->number_active_client; in phydm_common_info_self_update()
479 dm->number_linked_client = sta_cnt; in phydm_common_info_self_update()
480 dm->number_active_client = num_active_client; in phydm_common_info_self_update()
483 phydm_traffic_load_decision(dm); in phydm_common_info_self_update()
485 dm->phydm_sys_up_time += PHYDM_WATCH_DOG_PERIOD; in phydm_common_info_self_update()
487 dm->is_dfs_band = phydm_is_dfs_band(dm); in phydm_common_info_self_update()
488 dm->phy_dbg_info.show_phy_sts_cnt = 0; in phydm_common_info_self_update()
491 dm->first_connect = dm->is_linked && !dm->pre_is_linked; in phydm_common_info_self_update()
492 dm->first_disconnect = !dm->is_linked && dm->pre_is_linked; in phydm_common_info_self_update()
493 dm->pre_is_linked = dm->is_linked; in phydm_common_info_self_update()
496 void phydm_common_info_self_reset(struct dm_struct *dm) in phydm_common_info_self_reset() argument
498 struct odm_phy_dbg_info *dbg_t = &dm->phy_dbg_info; in phydm_common_info_self_reset()
503 dm->rxsc_l = 0xff; in phydm_common_info_self_reset()
504 dm->rxsc_20 = 0xff; in phydm_common_info_self_reset()
505 dm->rxsc_40 = 0xff; in phydm_common_info_self_reset()
506 dm->rxsc_80 = 0xff; in phydm_common_info_self_reset()
510 phydm_get_structure(struct dm_struct *dm, u8 structure_type) in phydm_get_structure() argument
517 structure = &dm->false_alm_cnt; in phydm_get_structure()
521 structure = &dm->dm_cfo_track; in phydm_get_structure()
525 structure = &dm->adaptivity; in phydm_get_structure()
529 structure = &dm->dfs; in phydm_get_structure()
539 void phydm_phy_info_update(struct dm_struct *dm) in phydm_phy_info_update() argument
542 if (dm->support_ic_type == ODM_RTL8822B) in phydm_phy_info_update()
543 dm->phy_dbg_info.condi_num = phydm_get_condi_num_8822b(dm); in phydm_phy_info_update()
547 void phydm_hw_setting(struct dm_struct *dm) in phydm_hw_setting() argument
550 if (dm->support_ic_type & ODM_RTL8821) in phydm_hw_setting()
551 odm_hw_setting_8821a(dm); in phydm_hw_setting()
555 if (dm->support_ic_type & ODM_RTL8814A) in phydm_hw_setting()
556 phydm_hwsetting_8814a(dm); in phydm_hw_setting()
560 if (dm->support_ic_type & ODM_RTL8822B) in phydm_hw_setting()
561 phydm_hwsetting_8822b(dm); in phydm_hw_setting()
565 if (dm->support_ic_type & ODM_RTL8812) in phydm_hw_setting()
566 phydm_hwsetting_8812a(dm); in phydm_hw_setting()
570 if (dm->support_ic_type & ODM_RTL8197F) in phydm_hw_setting()
571 phydm_hwsetting_8197f(dm); in phydm_hw_setting()
575 if (dm->support_ic_type & ODM_RTL8192F) in phydm_hw_setting()
576 phydm_hwsetting_8192f(dm); in phydm_hw_setting()
580 if (dm->support_ic_type & ODM_RTL8822C) in phydm_hw_setting()
581 phydm_hwsetting_8822c(dm); in phydm_hw_setting()
585 if (dm->support_ic_type & ODM_RTL8197G) in phydm_hw_setting()
586 phydm_hwsetting_8197g(dm); in phydm_hw_setting()
590 if (dm->support_ic_type & ODM_RTL8723F) in phydm_hw_setting()
591 phydm_hwsetting_8723f(dm); in phydm_hw_setting()
595 if (dm->support_ic_type & ODM_RTL8821C) in phydm_hw_setting()
596 phydm_hwsetting_8821c(dm); in phydm_hw_setting()
600 if (dm->support_ic_type & ODM_RTL8812F) in phydm_hw_setting()
601 phydm_hwsetting_8812f(dm); in phydm_hw_setting()
605 phydm_cck_rx_pathdiv_watchdog(dm); in phydm_hw_setting()
610 boolean phydm_chk_bb_rf_pkg_set_valid(struct dm_struct *dm) in phydm_chk_bb_rf_pkg_set_valid() argument
614 if (dm->support_ic_type == ODM_RTL8822C) { in phydm_chk_bb_rf_pkg_set_valid()
616 valid = phydm_chk_pkg_set_valid_8822c(dm, in phydm_chk_bb_rf_pkg_set_valid()
623 } else if (dm->support_ic_type == ODM_RTL8812F) { in phydm_chk_bb_rf_pkg_set_valid()
624 valid = phydm_chk_pkg_set_valid_8812f(dm, in phydm_chk_bb_rf_pkg_set_valid()
629 } else if (dm->support_ic_type == ODM_RTL8197G) { in phydm_chk_bb_rf_pkg_set_valid()
630 valid = phydm_chk_pkg_set_valid_8197g(dm, in phydm_chk_bb_rf_pkg_set_valid()
635 } else if (dm->support_ic_type == ODM_RTL8812F) { in phydm_chk_bb_rf_pkg_set_valid()
636 valid = phydm_chk_pkg_set_valid_8812f(dm, in phydm_chk_bb_rf_pkg_set_valid()
641 } else if (dm->support_ic_type == ODM_RTL8198F) { in phydm_chk_bb_rf_pkg_set_valid()
642 valid = phydm_chk_pkg_set_valid_8198f(dm, in phydm_chk_bb_rf_pkg_set_valid()
647 } else if (dm->support_ic_type == ODM_RTL8814B) { in phydm_chk_bb_rf_pkg_set_valid()
648 valid = phydm_chk_pkg_set_valid_8814b(dm, in phydm_chk_bb_rf_pkg_set_valid()
653 } else if (dm->support_ic_type == ODM_RTL8723F) { in phydm_chk_bb_rf_pkg_set_valid()
654 valid = phydm_chk_pkg_set_valid_8723f(dm, in phydm_chk_bb_rf_pkg_set_valid()
667 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init_win() local
670 switch (dm->support_ic_type) { in phydm_supportability_init_win()
965 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init_ce() local
968 switch (dm->support_ic_type) { in phydm_supportability_init_ce()
1260 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init_ap() local
1263 switch (dm->support_ic_type) { in phydm_supportability_init_ap()
1530 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init_iot() local
1533 switch (dm->support_ic_type) { in phydm_supportability_init_iot()
1637 void phydm_fwoffload_ability_init(struct dm_struct *dm, in phydm_fwoffload_ability_init() argument
1642 if (dm->support_ic_type & PHYDM_IC_SUPPORT_FW_PARAM_OFFLOAD) in phydm_fwoffload_ability_init()
1643 dm->fw_offload_ability |= PHYDM_PHY_PARAM_OFFLOAD; in phydm_fwoffload_ability_init()
1647 dm->fw_offload_ability |= PHYDM_RF_IQK_OFFLOAD; in phydm_fwoffload_ability_init()
1651 dm->fw_offload_ability |= PHYDM_RF_DPK_OFFLOAD; in phydm_fwoffload_ability_init()
1655 PHYDM_DBG(dm, ODM_COMP_INIT, "fwofflad, wrong init type!!\n"); in phydm_fwoffload_ability_init()
1659 PHYDM_DBG(dm, ODM_COMP_INIT, "fw_offload_ability = %x\n", in phydm_fwoffload_ability_init()
1660 dm->fw_offload_ability); in phydm_fwoffload_ability_init()
1663 void phydm_fwoffload_ability_clear(struct dm_struct *dm, in phydm_fwoffload_ability_clear() argument
1668 if (dm->support_ic_type & PHYDM_IC_SUPPORT_FW_PARAM_OFFLOAD) in phydm_fwoffload_ability_clear()
1669 dm->fw_offload_ability &= (~PHYDM_PHY_PARAM_OFFLOAD); in phydm_fwoffload_ability_clear()
1673 dm->fw_offload_ability &= (~PHYDM_RF_IQK_OFFLOAD); in phydm_fwoffload_ability_clear()
1677 dm->fw_offload_ability &= (~PHYDM_RF_DPK_OFFLOAD); in phydm_fwoffload_ability_clear()
1681 PHYDM_DBG(dm, ODM_COMP_INIT, "fwofflad, wrong init type!!\n"); in phydm_fwoffload_ability_clear()
1685 PHYDM_DBG(dm, ODM_COMP_INIT, "fw_offload_ability = %x\n", in phydm_fwoffload_ability_clear()
1686 dm->fw_offload_ability); in phydm_fwoffload_ability_clear()
1691 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init() local
1694 if (dm->manual_supportability && in phydm_supportability_init()
1695 *dm->manual_supportability != 0xffffffff) { in phydm_supportability_init()
1696 support_ability = *dm->manual_supportability; in phydm_supportability_init()
1697 } else if (*dm->mp_mode) { in phydm_supportability_init()
1701 support_ability = phydm_supportability_init_win(dm); in phydm_supportability_init()
1703 support_ability = phydm_supportability_init_ap(dm); in phydm_supportability_init()
1705 support_ability = phydm_supportability_init_ce(dm); in phydm_supportability_init()
1707 support_ability = phydm_supportability_init_iot(dm); in phydm_supportability_init()
1711 if (IS_FUNC_EN(dm->enable_antdiv)) in phydm_supportability_init()
1715 if (IS_FUNC_EN(dm->enable_pathdiv)) in phydm_supportability_init()
1719 if (IS_FUNC_EN(dm->en_adap_soml)) in phydm_supportability_init()
1723 if(IS_FUNC_EN(&dm->en_tssi_mode) && in phydm_supportability_init()
1724 (dm->support_ic_type & ODM_RTL8822C)) in phydm_supportability_init()
1727 if(IS_FUNC_EN(&dm->en_tssi_mode) && in phydm_supportability_init()
1728 (dm->support_ic_type & ODM_RTL8723F)) in phydm_supportability_init()
1731 dm->support_ability = support_ability; in phydm_supportability_init()
1732 PHYDM_DBG(dm, ODM_COMP_INIT, "IC=0x%x, mp=%d, Supportability=0x%llx\n", in phydm_supportability_init()
1733 dm->support_ic_type, *dm->mp_mode, dm->support_ability); in phydm_supportability_init()
1738 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_rfe_init() local
1740 PHYDM_DBG(dm, ODM_COMP_INIT, "RFE_Init\n"); in phydm_rfe_init()
1742 if (dm->support_ic_type == ODM_RTL8822B) in phydm_rfe_init()
1743 phydm_rfe_8822b_init(dm); in phydm_rfe_init()
1751 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_tx_collsion_th_init() local
1754 if (dm->support_ic_type & ODM_RTL8197G) in phydm_tx_collsion_th_init()
1755 phydm_tx_collsion_th_init_8197g(dm); in phydm_tx_collsion_th_init()
1759 if (dm->support_ic_type & ODM_RTL8812F) in phydm_tx_collsion_th_init()
1760 phydm_tx_collsion_th_init_8812f(dm); in phydm_tx_collsion_th_init()
1767 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_tx_collsion_th_set() local
1770 if (dm->support_ic_type & ODM_RTL8197G) in phydm_tx_collsion_th_set()
1771 phydm_tx_collsion_th_set_8197g(dm, val_r2t, val_t2r); in phydm_tx_collsion_th_set()
1775 if (dm->support_ic_type & ODM_RTL8812F) in phydm_tx_collsion_th_set()
1776 phydm_tx_collsion_th_set_8812f(dm, val_r2t, val_t2r); in phydm_tx_collsion_th_set()
1782 void phydm_dm_early_init(struct dm_struct *dm) in phydm_dm_early_init() argument
1785 phydm_init_debug_setting(dm); in phydm_dm_early_init()
1789 enum phydm_init_result odm_dm_init(struct dm_struct *dm) in odm_dm_init() argument
1793 if (!phydm_chk_bb_rf_pkg_set_valid(dm)) { in odm_dm_init()
1798 halrf_init(dm); in odm_dm_init()
1799 phydm_supportability_init(dm); in odm_dm_init()
1800 phydm_pause_func_init(dm); in odm_dm_init()
1801 phydm_rfe_init(dm); in odm_dm_init()
1802 phydm_common_info_self_init(dm); in odm_dm_init()
1803 phydm_rx_phy_status_init(dm); in odm_dm_init()
1805 phydm_auto_dbg_engine_init(dm); in odm_dm_init()
1807 phydm_dig_init(dm); in odm_dm_init()
1810 phydm_dig_cckpd_coex_init(dm); in odm_dm_init()
1812 phydm_cck_pd_init(dm); in odm_dm_init()
1814 phydm_env_monitor_init(dm); in odm_dm_init()
1815 phydm_adaptivity_init(dm); in odm_dm_init()
1816 phydm_ra_info_init(dm); in odm_dm_init()
1817 phydm_rssi_monitor_init(dm); in odm_dm_init()
1818 phydm_cfo_tracking_init(dm); in odm_dm_init()
1819 phydm_rf_init(dm); in odm_dm_init()
1820 phydm_dc_cancellation(dm); in odm_dm_init()
1822 phydm_txcurrentcalibration(dm); in odm_dm_init()
1823 phydm_get_pa_bias_offset(dm); in odm_dm_init()
1826 odm_antenna_diversity_init(dm); in odm_dm_init()
1829 phydm_adaptive_soml_init(dm); in odm_dm_init()
1832 phydm_tx_path_diversity_init(dm); in odm_dm_init()
1835 phydm_dynamic_tx_power_init(dm); in odm_dm_init()
1838 phydm_la_init(dm); in odm_dm_init()
1842 phydm_beamforming_init(dm); in odm_dm_init()
1846 odm_ra_info_init_all(dm); in odm_dm_init()
1849 phydm_primary_cca_init(dm); in odm_dm_init()
1852 phydm_psd_init(dm); in odm_dm_init()
1856 phydm_smt_ant_init(dm); in odm_dm_init()
1859 phydm_lna_sat_check_init(dm); in odm_dm_init()
1862 phydm_mcc_init(dm); in odm_dm_init()
1866 phydm_cck_rx_pathdiv_init(dm); in odm_dm_init()
1870 phydm_mu_rsoml_init(dm); in odm_dm_init()
1874 phydm_tx_collsion_th_init(dm); in odm_dm_init()
1880 void odm_dm_reset(struct dm_struct *dm) in odm_dm_reset() argument
1883 odm_ant_div_reset(dm); in odm_dm_reset()
1885 phydm_set_edcca_threshold_api(dm); in odm_dm_reset()
1891 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_en() local
1903 pre_support_ability = dm->support_ability; in phydm_supportability_en()
1904 comp = dm->support_ability; in phydm_supportability_en()
1980 ((dm->fw_offload_ability & PHYDM_PHY_PARAM_OFFLOAD) ? in phydm_supportability_en()
1984 ((dm->fw_offload_ability & PHYDM_RF_IQK_OFFLOAD) ? in phydm_supportability_en()
1990 dm->support_ability = 0; in phydm_supportability_en()
1995 dm->support_ability |= (one << dm_value[0]); in phydm_supportability_en()
1997 dm->support_ability &= ~(one << dm_value[0]); in phydm_supportability_en()
2006 "Cur-supportability = 0x%llx\n", dm->support_ability); in phydm_supportability_en()
2014 void phydm_watchdog_lps_32k(struct dm_struct *dm) in phydm_watchdog_lps_32k() argument
2016 PHYDM_DBG(dm, DBG_COMMON_FLOW, "%s ======>\n", __func__); in phydm_watchdog_lps_32k()
2018 phydm_common_info_self_update(dm); in phydm_watchdog_lps_32k()
2019 phydm_rssi_monitor_check(dm); in phydm_watchdog_lps_32k()
2020 phydm_dig_lps_32k(dm); in phydm_watchdog_lps_32k()
2021 phydm_common_info_self_reset(dm); in phydm_watchdog_lps_32k()
2024 void phydm_watchdog_lps(struct dm_struct *dm) in phydm_watchdog_lps() argument
2027 PHYDM_DBG(dm, DBG_COMMON_FLOW, "%s ======>\n", __func__); in phydm_watchdog_lps()
2029 phydm_common_info_self_update(dm); in phydm_watchdog_lps()
2030 phydm_rssi_monitor_check(dm); in phydm_watchdog_lps()
2031 phydm_basic_dbg_message(dm); in phydm_watchdog_lps()
2032 phydm_receiver_blocking(dm); in phydm_watchdog_lps()
2033 phydm_false_alarm_counter_statistics(dm); in phydm_watchdog_lps()
2034 phydm_dig_by_rssi_lps(dm); in phydm_watchdog_lps()
2036 phydm_cck_pd_th(dm); in phydm_watchdog_lps()
2038 phydm_adaptivity(dm); in phydm_watchdog_lps()
2040 phydm_dyn_bw_indication(dm); in phydm_watchdog_lps()
2045 odm_antenna_diversity(dm); in phydm_watchdog_lps()
2048 phydm_common_info_self_reset(dm); in phydm_watchdog_lps()
2052 void phydm_watchdog_mp(struct dm_struct *dm) in phydm_watchdog_mp() argument
2058 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_pause_dm_watchdog() local
2061 dm->disable_phydm_watchdog = 1; in phydm_pause_dm_watchdog()
2062 PHYDM_DBG(dm, ODM_COMP_API, "PHYDM Stop\n"); in phydm_pause_dm_watchdog()
2064 dm->disable_phydm_watchdog = 0; in phydm_pause_dm_watchdog()
2065 PHYDM_DBG(dm, ODM_COMP_API, "PHYDM Start\n"); in phydm_pause_dm_watchdog()
2071 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_pause_func_init() local
2073 dm->pause_lv_table.lv_cckpd = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2074 dm->pause_lv_table.lv_dig = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2075 dm->pause_lv_table.lv_antdiv = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2076 dm->pause_lv_table.lv_dig = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2077 dm->pause_lv_table.lv_adapt = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2078 dm->pause_lv_table.lv_adsl = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2086 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_pause_func() local
2087 struct phydm_func_poiner *func_t = &dm->phydm_func_handler; in phydm_pause_func()
2088 s8 *pause_lv_pre = &dm->s8_dummy; in phydm_pause_func()
2089 u32 *bkp_val = &dm->u32_dummy; in phydm_pause_func()
2097 PHYDM_DBG(dm, ODM_COMP_API, "\n"); in phydm_pause_func()
2098 PHYDM_DBG(dm, ODM_COMP_API, "[%s][%s] LV=%d, Len=%d\n", __func__, in phydm_pause_func()
2104 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING]Wrong LV=%d\n", pause_lv); in phydm_pause_func()
2109 PHYDM_DBG(dm, ODM_COMP_API, "[DIG]\n"); in phydm_pause_func()
2112 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 1\n"); in phydm_pause_func()
2116 ori_val[0] = (u32)(dm->dm_dig_table.cur_ig_value); in phydm_pause_func()
2117 pause_lv_pre = &dm->pause_lv_table.lv_dig; in phydm_pause_func()
2118 bkp_val = (u32 *)(&dm->dm_dig_table.rvrt_val); in phydm_pause_func()
2124 PHYDM_DBG(dm, ODM_COMP_API, "[CCK_PD]\n"); in phydm_pause_func()
2127 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 1\n"); in phydm_pause_func()
2131 ori_val[0] = (u32)dm->dm_cckpd_table.cck_pd_lv; in phydm_pause_func()
2132 pause_lv_pre = &dm->pause_lv_table.lv_cckpd; in phydm_pause_func()
2133 bkp_val = (u32 *)(&dm->dm_cckpd_table.rvrt_val); in phydm_pause_func()
2140 PHYDM_DBG(dm, ODM_COMP_API, "[AntDiv]\n"); in phydm_pause_func()
2143 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 1\n"); in phydm_pause_func()
2147 ori_val[0] = (u32)(dm->dm_fat_table.rx_idle_ant); in phydm_pause_func()
2148 pause_lv_pre = &dm->pause_lv_table.lv_antdiv; in phydm_pause_func()
2149 bkp_val = (u32 *)(&dm->dm_fat_table.rvrt_val); in phydm_pause_func()
2156 PHYDM_DBG(dm, ODM_COMP_API, "[Adaptivity]\n"); in phydm_pause_func()
2159 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 2\n"); in phydm_pause_func()
2163 ori_val[0] = (u32)(dm->adaptivity.th_l2h); /*th_l2h*/ in phydm_pause_func()
2164 ori_val[1] = (u32)(dm->adaptivity.th_h2l); /*th_h2l*/ in phydm_pause_func()
2165 pause_lv_pre = &dm->pause_lv_table.lv_adapt; in phydm_pause_func()
2166 bkp_val = (u32 *)(&dm->adaptivity.rvrt_val); in phydm_pause_func()
2173 PHYDM_DBG(dm, ODM_COMP_API, "[AD-SOML]\n"); in phydm_pause_func()
2176 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 1\n"); in phydm_pause_func()
2180 ori_val[0] = (u32)(dm->dm_soml_table.soml_on_off); in phydm_pause_func()
2182 pause_lv_pre = &dm->pause_lv_table.lv_adsl; in phydm_pause_func()
2183 bkp_val = (u32 *)(&dm->dm_soml_table.rvrt_val); in phydm_pause_func()
2189 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] error func idx\n"); in phydm_pause_func()
2193 PHYDM_DBG(dm, ODM_COMP_API, "Pause_LV{new , pre} = {%d ,%d}\n", in phydm_pause_func()
2198 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2203 if (!(dm->pause_ability & pause_func_bitmap)) { in phydm_pause_func()
2208 dm->pause_ability |= pause_func_bitmap; in phydm_pause_func()
2209 PHYDM_DBG(dm, ODM_COMP_API, "pause_ability=0x%llx\n", in phydm_pause_func()
2210 dm->pause_ability); in phydm_pause_func()
2214 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2217 func_t->pause_phydm_handler(dm, val_buf, val_lehgth); in phydm_pause_func()
2220 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2230 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2235 if ((dm->pause_ability & pause_func_bitmap) == 0) { in phydm_pause_func()
2236 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2241 dm->pause_ability &= ~pause_func_bitmap; in phydm_pause_func()
2242 PHYDM_DBG(dm, ODM_COMP_API, "pause_ability=0x%llx\n", in phydm_pause_func()
2243 dm->pause_ability); in phydm_pause_func()
2248 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2253 func_t->pause_phydm_handler(dm, bkp_val, val_lehgth); in phydm_pause_func()
2257 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] error pause_type\n"); in phydm_pause_func()
2266 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_pause_func_console() local
2331 set_result = phydm_pause_func(dm, func, type, lv, length, buf); in phydm_pause_func_console()
2342 void phydm_pause_dm_by_asso_pkt(struct dm_struct *dm, in phydm_pause_dm_by_asso_pkt() argument
2348 PHYDM_DBG(dm, ODM_COMP_API, "[%s][%s] rssi=%d\n", __func__, in phydm_pause_dm_by_asso_pkt()
2354 phydm_pause_func(dm, F00_DIG, PHYDM_RESUME, in phydm_pause_dm_by_asso_pkt()
2357 phydm_pause_func(dm, F13_ADPTVTY, PHYDM_RESUME, in phydm_pause_dm_by_asso_pkt()
2360 odm_write_dig(dm, (u8)igi_val); in phydm_pause_dm_by_asso_pkt()
2361 phydm_pause_func(dm, F00_DIG, PHYDM_PAUSE, in phydm_pause_dm_by_asso_pkt()
2367 phydm_pause_func(dm, F13_ADPTVTY, PHYDM_PAUSE, in phydm_pause_dm_by_asso_pkt()
2374 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_stop_dm_watchdog_check() local
2376 if (dm->disable_phydm_watchdog == 1) { in phydm_stop_dm_watchdog_check()
2377 PHYDM_DBG(dm, DBG_COMMON_FLOW, "Disable phydm\n"); in phydm_stop_dm_watchdog_check()
2384 void phydm_watchdog(struct dm_struct *dm) in phydm_watchdog() argument
2386 PHYDM_DBG(dm, DBG_COMMON_FLOW, "%s ======>\n", __func__); in phydm_watchdog()
2388 phydm_common_info_self_update(dm); in phydm_watchdog()
2389 phydm_phy_info_update(dm); in phydm_watchdog()
2390 phydm_rssi_monitor_check(dm); in phydm_watchdog()
2391 phydm_basic_dbg_message(dm); in phydm_watchdog()
2392 phydm_dm_summary(dm, FIRST_MACID); in phydm_watchdog()
2394 phydm_auto_dbg_engine(dm); in phydm_watchdog()
2396 phydm_receiver_blocking(dm); in phydm_watchdog()
2398 if (phydm_stop_dm_watchdog_check(dm) == true) in phydm_watchdog()
2401 phydm_hw_setting(dm); in phydm_watchdog()
2403 phydm_env_mntr_result_watchdog(dm); in phydm_watchdog()
2406 if (dm->original_dig_restore == 0) { in phydm_watchdog()
2407 phydm_tdma_dig_timer_check(dm); in phydm_watchdog()
2411 phydm_false_alarm_counter_statistics(dm); in phydm_watchdog()
2413 if (dm->support_ic_type & (ODM_IC_11N_SERIES | in phydm_watchdog()
2415 phydm_noisy_detection(dm); in phydm_watchdog()
2419 phydm_dig_cckpd_coex(dm); in phydm_watchdog()
2421 phydm_dig(dm); in phydm_watchdog()
2423 phydm_cck_pd_th(dm); in phydm_watchdog()
2429 phydm_hwigi(dm); in phydm_watchdog()
2432 phydm_update_power_training_state(dm); in phydm_watchdog()
2434 phydm_adaptivity(dm); in phydm_watchdog()
2435 phydm_ra_info_watchdog(dm); in phydm_watchdog()
2437 phydm_tx_path_diversity(dm); in phydm_watchdog()
2439 phydm_cfo_tracking(dm); in phydm_watchdog()
2441 phydm_dynamic_tx_power(dm); in phydm_watchdog()
2444 odm_antenna_diversity(dm); in phydm_watchdog()
2447 phydm_adaptive_soml(dm); in phydm_watchdog()
2451 phydm_beamforming_watchdog(dm); in phydm_watchdog()
2454 halrf_watchdog(dm); in phydm_watchdog()
2456 phydm_primary_cca(dm); in phydm_watchdog()
2459 phydm_dyn_bw_indication(dm); in phydm_watchdog()
2462 odm_dtc(dm); in phydm_watchdog()
2465 phydm_env_mntr_set_watchdog(dm); in phydm_watchdog()
2468 phydm_lna_sat_chk_watchdog(dm); in phydm_watchdog()
2472 phydm_mcc_switch(dm); in phydm_watchdog()
2476 phydm_mu_rsoml_decision(dm); in phydm_watchdog()
2479 phydm_common_info_self_reset(dm); in phydm_watchdog()
2485 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_fw_dm_ctrl_en() local
2498 phydm_fill_fw_dig_info(dm, &enable, para4, para8); in phydm_fw_dm_ctrl_en()
2513 PHYDM_DBG(dm, DBG_FW_DM, in phydm_fw_dm_ctrl_en()
2519 odm_fill_h2c_cmd(dm, PHYDM_H2C_FW_DM_CTRL, H2C_MAX_LENGTH, h2c_val); in phydm_fw_dm_ctrl_en()
2525 void odm_cmn_info_init(struct dm_struct *dm, enum odm_cmninfo cmn_info, in odm_cmn_info_init() argument
2532 dm->support_ability = (u64)value; in odm_cmn_info_init()
2536 dm->rf_type = (u8)value; in odm_cmn_info_init()
2540 dm->support_platform = (u8)value; in odm_cmn_info_init()
2544 dm->support_interface = (u8)value; in odm_cmn_info_init()
2548 dm->is_mp_chip = (u8)value; in odm_cmn_info_init()
2552 dm->support_ic_type = (u32)value; in odm_cmn_info_init()
2556 dm->cut_version = (u8)value; in odm_cmn_info_init()
2560 dm->fab_version = (u8)value; in odm_cmn_info_init()
2563 dm->fw_version = (u8)value; in odm_cmn_info_init()
2566 dm->fw_sub_version = (u8)value; in odm_cmn_info_init()
2570 if (dm->support_ic_type & ODM_RTL8821C) in odm_cmn_info_init()
2571 dm->rfe_type_expand = (u8)value; in odm_cmn_info_init()
2574 dm->rfe_type = (u8)value; in odm_cmn_info_init()
2577 phydm_init_hw_info_by_rfe(dm); in odm_cmn_info_init()
2582 dm->ant_div_type = (u8)value; in odm_cmn_info_init()
2586 dm->with_extenal_ant_switch = (u8)value; in odm_cmn_info_init()
2591 dm->dm_fat_table.b_fix_tx_ant = (u8)value; in odm_cmn_info_init()
2596 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2597 dm->board_type = (u8)value; in odm_cmn_info_init()
2601 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2602 dm->package_type = (u8)value; in odm_cmn_info_init()
2606 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2607 dm->ext_lna = (u8)value; in odm_cmn_info_init()
2611 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2612 dm->ext_lna_5g = (u8)value; in odm_cmn_info_init()
2616 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2617 dm->ext_pa = (u8)value; in odm_cmn_info_init()
2621 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2622 dm->ext_pa_5g = (u8)value; in odm_cmn_info_init()
2626 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2627 dm->type_gpa = (u16)value; in odm_cmn_info_init()
2631 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2632 dm->type_apa = (u16)value; in odm_cmn_info_init()
2636 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2637 dm->type_glna = (u16)value; in odm_cmn_info_init()
2641 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2642 dm->type_alna = (u16)value; in odm_cmn_info_init()
2646 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2647 dm->ext_trsw = (u8)value; in odm_cmn_info_init()
2650 dm->ext_lna_gain = (u8)value; in odm_cmn_info_init()
2653 dm->iot_table.win_patch_id = (u8)value; in odm_cmn_info_init()
2656 dm->is_in_hct_test = (boolean)value; in odm_cmn_info_init()
2659 dm->wifi_test = (u8)value; in odm_cmn_info_init()
2662 dm->is_dual_mac_smart_concurrent = (boolean)value; in odm_cmn_info_init()
2666 dm->config_bbrf = (boolean)value; in odm_cmn_info_init()
2670 dm->rf_calibrate_info.is_iqk_pa_off = (boolean)value; in odm_cmn_info_init()
2673 dm->rf_calibrate_info.reg_rf_kfree_enable = (u8)value; in odm_cmn_info_init()
2676 dm->rf_calibrate_info.rf_kfree_enable = (u8)value; in odm_cmn_info_init()
2679 dm->normal_rx_path = (u8)value; in odm_cmn_info_init()
2682 dm->valid_path_set = (u8)value; in odm_cmn_info_init()
2685 dm->efuse0x3d8 = (u8)value; in odm_cmn_info_init()
2688 dm->efuse0x3d7 = (u8)value; in odm_cmn_info_init()
2691 dm->p_advance_ota = (u8)value; in odm_cmn_info_init()
2696 dm->dfs_region_domain = (u8)value; in odm_cmn_info_init()
2700 dm->soft_ap_special_setting = (u32)value; in odm_cmn_info_init()
2704 dm->dm_cfo_track.crystal_cap_default = (u8)value; in odm_cmn_info_init()
2708 /*@dm->dpk_en = (u1Byte)value;*/ in odm_cmn_info_init()
2709 halrf_cmn_info_set(dm, HALRF_CMNINFO_DPK_EN, (u64)value); in odm_cmn_info_init()
2713 dm->hp_hw_id = (boolean)value; in odm_cmn_info_init()
2716 dm->en_tssi_mode = (u8)value; in odm_cmn_info_init()
2719 dm->en_dis_dpd = (boolean)value; in odm_cmn_info_init()
2722 dm->en_auto_bw_th = (u8)value; in odm_cmn_info_init()
2726 dm->power_voltage = (u8)value; in odm_cmn_info_init()
2729 dm->antdiv_gpio = (u8)value; in odm_cmn_info_init()
2732 dm->peak_detect_mode = (u8)value; in odm_cmn_info_init()
2740 void odm_cmn_info_hook(struct dm_struct *dm, enum odm_cmninfo cmn_info, in odm_cmn_info_hook() argument
2747 dm->num_tx_bytes_unicast = (u64 *)value; in odm_cmn_info_hook()
2751 dm->num_rx_bytes_unicast = (u64 *)value; in odm_cmn_info_hook()
2755 dm->band_type = (u8 *)value; in odm_cmn_info_hook()
2759 dm->sec_ch_offset = (u8 *)value; in odm_cmn_info_hook()
2763 dm->security = (u8 *)value; in odm_cmn_info_hook()
2767 dm->band_width = (u8 *)value; in odm_cmn_info_hook()
2771 dm->channel = (u8 *)value; in odm_cmn_info_hook()
2775 dm->is_scan_in_process = (boolean *)value; in odm_cmn_info_hook()
2779 dm->is_power_saving = (boolean *)value; in odm_cmn_info_hook()
2783 dm->is_tdma = (boolean *)value; in odm_cmn_info_hook()
2787 dm->one_path_cca = (u8 *)value; in odm_cmn_info_hook()
2791 dm->is_driver_stopped = (boolean *)value; in odm_cmn_info_hook()
2794 dm->pinit_adpt_in_progress = (boolean *)value; in odm_cmn_info_hook()
2798 dm->antenna_test = (u8 *)value; in odm_cmn_info_hook()
2802 dm->is_net_closed = (boolean *)value; in odm_cmn_info_hook()
2806 dm->forced_data_rate = (u16 *)value; in odm_cmn_info_hook()
2809 dm->enable_antdiv = (u8 *)value; in odm_cmn_info_hook()
2812 dm->enable_pathdiv = (u8 *)value; in odm_cmn_info_hook()
2815 dm->en_adap_soml = (u8 *)value; in odm_cmn_info_hook()
2818 dm->edcca_mode = (u8 *)value; in odm_cmn_info_hook()
2822 dm->dm_dig_table.is_p2p_in_process = (u8 *)value; in odm_cmn_info_hook()
2826 dm->is_1_antenna = (boolean *)value; in odm_cmn_info_hook()
2830 dm->rf_default_path = (u8 *)value; in odm_cmn_info_hook()
2834 dm->is_fcs_mode_enable = (boolean *)value; in odm_cmn_info_hook()
2838 dm->hub_usb_mode = (u8 *)value; in odm_cmn_info_hook()
2841 dm->is_fw_dw_rsvd_page_in_progress = (boolean *)value; in odm_cmn_info_hook()
2844 dm->current_tx_tp = (u32 *)value; in odm_cmn_info_hook()
2847 dm->current_rx_tp = (u32 *)value; in odm_cmn_info_hook()
2850 dm->sounding_seq = (u8 *)value; in odm_cmn_info_hook()
2854 dm->dfs_master_enabled = (u8 *)value; in odm_cmn_info_hook()
2860 dm->dm_fat_table.p_force_tx_by_desc = (u8 *)value; in odm_cmn_info_hook()
2863 dm->dm_fat_table.p_default_s0_s1 = (u8 *)value; in odm_cmn_info_hook()
2866 dm->dm_fat_table.is_no_csi_feedback = (boolean *)value; in odm_cmn_info_hook()
2871 dm->soft_ap_mode = (u32 *)value; in odm_cmn_info_hook()
2874 dm->mp_mode = (u8 *)value; in odm_cmn_info_hook()
2877 dm->interrupt_mask = (u32 *)value; in odm_cmn_info_hook()
2880 dm->bb_op_mode = (u8 *)value; in odm_cmn_info_hook()
2883 dm->manual_supportability = (u32 *)value; in odm_cmn_info_hook()
2886 dm->dis_dym_bw_indication = (u8 *)value; in odm_cmn_info_hook()
2896 void odm_cmn_info_update(struct dm_struct *dm, u32 cmn_info, u64 value) in odm_cmn_info_update() argument
2901 dm->is_link_in_process = (boolean)value; in odm_cmn_info_update()
2905 dm->support_ability = (u64)value; in odm_cmn_info_update()
2909 dm->rf_type = (u8)value; in odm_cmn_info_update()
2913 dm->is_wifi_direct = (boolean)value; in odm_cmn_info_update()
2917 dm->is_wifi_display = (boolean)value; in odm_cmn_info_update()
2921 dm->is_linked = (boolean)value; in odm_cmn_info_update()
2925 dm->iot_table.is_linked_cmw500 = (boolean)value; in odm_cmn_info_update()
2929 dm->bsta_state = (boolean)value; in odm_cmn_info_update()
2934 dm->rssi_min = (u8)value; in odm_cmn_info_update()
2939 dm->rssi_min_by_path = (u8)value; in odm_cmn_info_update()
2943 dm->debug_components = (u64)value; in odm_cmn_info_update()
2949 dm->bt_info_table.is_bt_enabled = (boolean)value; in odm_cmn_info_update()
2953 dm->bt_info_table.is_bt_connect_process = (boolean)value; in odm_cmn_info_update()
2957 dm->bt_info_table.bt_hs_rssi = (u8)value; in odm_cmn_info_update()
2961 dm->bt_info_table.is_bt_hs_operation = (boolean)value; in odm_cmn_info_update()
2965 dm->bt_info_table.is_bt_limited_dig = (boolean)value; in odm_cmn_info_update()
2970 dm->ap_total_num = (u8)value; in odm_cmn_info_update()
2975 dm->dfs_region_domain = (u8)value; in odm_cmn_info_update()
2980 dm->is_bt_continuous_turn = (boolean)value; in odm_cmn_info_update()
2983 dm->is_download_fw = (boolean)value; in odm_cmn_info_update()
2986 dm->iot_table.phydm_patch_id = (u32)value; in odm_cmn_info_update()
2989 dm->dm_ra_table.rrsr_val_init = (u32)value; in odm_cmn_info_update()
2992 dm->linked_bf_support = (u8)value; in odm_cmn_info_update()
2995 dm->flatness_type = (u8)value; in odm_cmn_info_update()
2998 dm->en_tssi_mode = (u8)value; in odm_cmn_info_update()
3005 u32 phydm_cmn_info_query(struct dm_struct *dm, enum phydm_info_query info_type) in phydm_cmn_info_query() argument
3007 struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; in phydm_cmn_info_query()
3008 struct phydm_dig_struct *dig_t = &dm->dm_dig_table; in phydm_cmn_info_query()
3009 struct ccx_info *ccx_info = &dm->dm_ccx_info; in phydm_cmn_info_query()
3080 return (u32)dm->rssi_min; in phydm_cmn_info_query()
3083 return (u32)dm->rssi_max; in phydm_cmn_info_query()
3105 void odm_init_all_work_items(struct dm_struct *dm) in odm_init_all_work_items() argument
3107 void *adapter = dm->adapter; in odm_init_all_work_items()
3111 odm_initialize_work_item(dm, in odm_init_all_work_items()
3112 &dm->dm_soml_table.phydm_adaptive_soml_workitem, in odm_init_all_work_items()
3119 odm_initialize_work_item(dm, in odm_init_all_work_items()
3120 &dm->phydm_evm_antdiv_workitem, in odm_init_all_work_items()
3127 odm_initialize_work_item(dm, in odm_init_all_work_items()
3128 &dm->dm_swat_table.phydm_sw_antenna_switch_workitem, in odm_init_all_work_items()
3134 odm_initialize_work_item(dm, in odm_init_all_work_items()
3135 &dm->dm_sat_table.hl_smart_antenna_workitem, in odm_init_all_work_items()
3140 odm_initialize_work_item(dm, in odm_init_all_work_items()
3141 &dm->dm_sat_table.hl_smart_antenna_decision_workitem, in odm_init_all_work_items()
3148 dm, in odm_init_all_work_items()
3149 &dm->ra_rpt_workitem, in odm_init_all_work_items()
3156 dm, in odm_init_all_work_items()
3157 &dm->fast_ant_training_workitem, in odm_init_all_work_items()
3167 dm, in odm_init_all_work_items()
3168 &dm->beamforming_info.txbf_info.txbf_enter_work_item, in odm_init_all_work_items()
3174 dm, in odm_init_all_work_items()
3175 &dm->beamforming_info.txbf_info.txbf_leave_work_item, in odm_init_all_work_items()
3181 dm, in odm_init_all_work_items()
3182 &dm->beamforming_info.txbf_info.txbf_fw_ndpa_work_item, in odm_init_all_work_items()
3188 dm, in odm_init_all_work_items()
3189 &dm->beamforming_info.txbf_info.txbf_clk_work_item, in odm_init_all_work_items()
3195 dm, in odm_init_all_work_items()
3196 &dm->beamforming_info.txbf_info.txbf_rate_work_item, in odm_init_all_work_items()
3202 dm, in odm_init_all_work_items()
3203 &dm->beamforming_info.txbf_info.txbf_status_work_item, in odm_init_all_work_items()
3209 dm, in odm_init_all_work_items()
3210 &dm->beamforming_info.txbf_info.txbf_reset_tx_path_work_item, in odm_init_all_work_items()
3216 dm, in odm_init_all_work_items()
3217 &dm->beamforming_info.txbf_info.txbf_get_tx_rate_work_item, in odm_init_all_work_items()
3225 dm, in odm_init_all_work_items()
3226 &dm->adcsmp.adc_smp_work_item, in odm_init_all_work_items()
3232 dm, in odm_init_all_work_items()
3233 &dm->adcsmp.adc_smp_work_item_1, in odm_init_all_work_items()
3240 void odm_free_all_work_items(struct dm_struct *dm) in odm_free_all_work_items() argument
3245 odm_free_work_item(&dm->dm_swat_table.phydm_sw_antenna_switch_workitem); in odm_free_all_work_items()
3249 odm_free_work_item(&dm->dm_soml_table.phydm_adaptive_soml_workitem); in odm_free_all_work_items()
3253 odm_free_work_item(&dm->phydm_evm_antdiv_workitem); in odm_free_all_work_items()
3257 odm_free_work_item(&dm->dm_sat_table.hl_smart_antenna_workitem); in odm_free_all_work_items()
3258 odm_free_work_item(&dm->dm_sat_table.hl_smart_antenna_decision_workitem); in odm_free_all_work_items()
3262 odm_free_work_item(&dm->fast_ant_training_workitem); in odm_free_all_work_items()
3264 odm_free_work_item(&dm->ra_rpt_workitem); in odm_free_all_work_items()
3265 /*odm_free_work_item((&dm->sbdcnt_workitem));*/ in odm_free_all_work_items()
3269 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_enter_work_item)); in odm_free_all_work_items()
3270 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_leave_work_item)); in odm_free_all_work_items()
3271 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_fw_ndpa_work_item)); in odm_free_all_work_items()
3272 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_clk_work_item)); in odm_free_all_work_items()
3273 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_rate_work_item)); in odm_free_all_work_items()
3274 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_status_work_item)); in odm_free_all_work_items()
3275 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_reset_tx_path_work_item)); in odm_free_all_work_items()
3276 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_get_tx_rate_work_item)); in odm_free_all_work_items()
3280 odm_free_work_item((&dm->adcsmp.adc_smp_work_item)); in odm_free_all_work_items()
3281 odm_free_work_item((&dm->adcsmp.adc_smp_work_item_1)); in odm_free_all_work_items()
3286 void odm_init_all_timers(struct dm_struct *dm) in odm_init_all_timers() argument
3289 odm_ant_div_timers(dm, INIT_ANTDIV_TIMMER); in odm_init_all_timers()
3293 phydm_tdma_dig_timers(dm, INIT_TDMA_DIG_TIMMER); in odm_init_all_timers()
3297 phydm_adaptive_soml_timers(dm, INIT_SOML_TIMMER); in odm_init_all_timers()
3301 phydm_lna_sat_chk_timers(dm, INIT_LNA_SAT_CHK_TIMMER); in odm_init_all_timers()
3306 odm_initialize_timer(dm, &dm->sbdcnt_timer, in odm_init_all_timers()
3309 odm_initialize_timer(dm, &dm->beamforming_info.txbf_info.txbf_fw_ndpa_timer, in odm_init_all_timers()
3317 odm_initialize_timer(dm, &dm->beamforming_info.beamforming_timer, in odm_init_all_timers()
3324 void odm_cancel_all_timers(struct dm_struct *dm) in odm_cancel_all_timers() argument
3328 if (dm->adapter == NULL) in odm_cancel_all_timers()
3333 odm_ant_div_timers(dm, CANCEL_ANTDIV_TIMMER); in odm_cancel_all_timers()
3337 phydm_tdma_dig_timers(dm, CANCEL_TDMA_DIG_TIMMER); in odm_cancel_all_timers()
3341 phydm_adaptive_soml_timers(dm, CANCEL_SOML_TIMMER); in odm_cancel_all_timers()
3345 phydm_lna_sat_chk_timers(dm, CANCEL_LNA_SAT_CHK_TIMMER); in odm_cancel_all_timers()
3350 odm_cancel_timer(dm, &dm->sbdcnt_timer); in odm_cancel_all_timers()
3352 odm_cancel_timer(dm, &dm->beamforming_info.txbf_info.txbf_fw_ndpa_timer); in odm_cancel_all_timers()
3358 odm_cancel_timer(dm, &dm->beamforming_info.beamforming_timer); in odm_cancel_all_timers()
3363 void odm_release_all_timers(struct dm_struct *dm) in odm_release_all_timers() argument
3366 odm_ant_div_timers(dm, RELEASE_ANTDIV_TIMMER); in odm_release_all_timers()
3370 phydm_tdma_dig_timers(dm, RELEASE_TDMA_DIG_TIMMER); in odm_release_all_timers()
3374 phydm_adaptive_soml_timers(dm, RELEASE_SOML_TIMMER); in odm_release_all_timers()
3378 phydm_lna_sat_chk_timers(dm, RELEASE_LNA_SAT_CHK_TIMMER); in odm_release_all_timers()
3383 odm_release_timer(dm, &dm->sbdcnt_timer); in odm_release_all_timers()
3385 odm_release_timer(dm, &dm->beamforming_info.txbf_info.txbf_fw_ndpa_timer); in odm_release_all_timers()
3391 odm_release_timer(dm, &dm->beamforming_info.beamforming_timer); in odm_release_all_timers()
3398 struct dm_struct *dm) in odm_init_all_threads() argument
3401 k_tpt_task_init(dm->priv); in odm_init_all_threads()
3406 struct dm_struct *dm) in odm_stop_all_threads() argument
3409 k_tpt_task_stop(dm->priv); in odm_stop_all_threads()
3418 void odm_dtc(struct dm_struct *dm) in odm_dtc() argument
3455 if (dm->rssi_min > DTC_BASE) { in odm_dtc()
3459 if (dtc_table_down[i] >= dm->rssi_min || dtc_steps >= 6) in odm_dtc()
3466 else if (dm->rssi_min > DTC_DWN_BASE) { in odm_dtc()
3471 if (dtc_table_up[i] <= dm->rssi_min || dtc_steps >= 10) in odm_dtc()
3485 odm_write_1byte(dm, 0x06d9, resp_txagc); in odm_dtc()
3487 PHYDM_DBG(dm, ODM_COMP_PWR_TRAIN, in odm_dtc()
3489 dm->rssi_min, sign ? "minus" : "plus", dtc_steps); in odm_dtc()
3496 void phydm_dc_cancellation(struct dm_struct *dm) in phydm_dc_cancellation() argument
3505 if (!(dm->support_ic_type & ODM_DC_CANCELLATION_SUPPORT)) in phydm_dc_cancellation()
3507 if ((dm->support_ic_type & ODM_RTL8188F) && in phydm_dc_cancellation()
3508 dm->cut_version < ODM_CUT_D) in phydm_dc_cancellation()
3510 if ((dm->support_ic_type & ODM_RTL8192F) && in phydm_dc_cancellation()
3511 dm->cut_version == ODM_CUT_A) in phydm_dc_cancellation()
3513 if (*dm->band_width == CHANNEL_WIDTH_5) in phydm_dc_cancellation()
3515 if (*dm->band_width == CHANNEL_WIDTH_10) in phydm_dc_cancellation()
3518 PHYDM_DBG(dm, ODM_COMP_API, "%s ======>\n", __func__); in phydm_dc_cancellation()
3524 dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8188F | in phydm_dc_cancellation()
3529 dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8192F)) in phydm_dc_cancellation()
3531 if (phydm_stop_ic_trx(dm, PHYDM_SET) == PHYDM_SET_FAIL) { in phydm_dc_cancellation()
3532 PHYDM_DBG(dm, ODM_COMP_API, "STOP_TRX_FAIL\n"); in phydm_dc_cancellation()
3535 odm_write_dig(dm, 0x7e); in phydm_dc_cancellation()
3537 if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8721D | in phydm_dc_cancellation()
3539 halrf_rf_lna_setting(dm, HALRF_LNA_DISABLE); in phydm_dc_cancellation()
3541 phydm_stop_3_wire(dm, PHYDM_SET); in phydm_dc_cancellation()
3542 if (dm->support_ic_type & (ODM_RTL8188F | ODM_RTL8723D | in phydm_dc_cancellation()
3545 if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x235)) { in phydm_dc_cancellation()
3546 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3550 } else if (dm->support_ic_type & (ODM_RTL8721D | in phydm_dc_cancellation()
3553 if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, 0x200)) { in phydm_dc_cancellation()
3554 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3558 } else if (dm->support_ic_type & ODM_RTL8821C) { in phydm_dc_cancellation()
3559 if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x200)) { in phydm_dc_cancellation()
3561 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3565 phydm_bb_dbg_port_header_sel(dm, 0x0); in phydm_dc_cancellation()
3566 } else if (dm->support_ic_type & ODM_RTL8822B) { in phydm_dc_cancellation()
3568 !phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x200)) { in phydm_dc_cancellation()
3570 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3575 !phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x202)) { in phydm_dc_cancellation()
3577 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3581 phydm_bb_dbg_port_header_sel(dm, 0x0); in phydm_dc_cancellation()
3582 } else if (dm->support_ic_type & ODM_RTL8192F) { in phydm_dc_cancellation()
3584 !phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x235)) { in phydm_dc_cancellation()
3586 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3591 !phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x23d)) { in phydm_dc_cancellation()
3593 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3600 odm_set_bb_reg(dm, R_0xa78, MASKBYTE1, 0x0); in phydm_dc_cancellation()
3602 PHYDM_DBG(dm, ODM_COMP_API, "DC cancellation Begin!!!\n"); in phydm_dc_cancellation()
3604 phydm_stop_ck320(dm, true); /*stop ck320*/ in phydm_dc_cancellation()
3607 reg_value32[path] = phydm_get_bb_dbg_port_val(dm); in phydm_dc_cancellation()
3609 phydm_stop_ck320(dm, false); /*start ck320*/ in phydm_dc_cancellation()
3611 phydm_release_bb_dbg_port(dm); in phydm_dc_cancellation()
3613 phydm_stop_3_wire(dm, PHYDM_REVERT); in phydm_dc_cancellation()
3615 if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8721D | in phydm_dc_cancellation()
3617 halrf_rf_lna_setting(dm, HALRF_LNA_ENABLE); in phydm_dc_cancellation()
3619 odm_write_dig(dm, 0x20); in phydm_dc_cancellation()
3621 set_result = phydm_stop_ic_trx(dm, PHYDM_REVERT); in phydm_dc_cancellation()
3623 PHYDM_DBG(dm, ODM_COMP_API, "DC cancellation OK!!!\n"); in phydm_dc_cancellation()
3628 odm_set_bb_reg(dm, R_0xa9c, BIT(20), 0x1); in phydm_dc_cancellation()
3629 if (dm->support_ic_type & (ODM_RTL8188F | ODM_RTL8723D | in phydm_dc_cancellation()
3644 odm_set_bb_reg(dm, R_0x950, 0x1ff, offset_i_hex[0]); in phydm_dc_cancellation()
3645 odm_set_bb_reg(dm, R_0x950, 0x1ff0000, offset_q_hex[0]); in phydm_dc_cancellation()
3646 } else if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8822B)) { in phydm_dc_cancellation()
3657 odm_set_bb_reg(dm, R_0xc10, 0x3c000000, in phydm_dc_cancellation()
3659 odm_set_bb_reg(dm, R_0xc10, 0xfc00, 0x3f & offset_i_hex[0]); in phydm_dc_cancellation()
3660 odm_set_bb_reg(dm, R_0xc14, 0x3c000000, in phydm_dc_cancellation()
3662 odm_set_bb_reg(dm, R_0xc14, 0xfc00, 0x3f & offset_q_hex[0]); in phydm_dc_cancellation()
3665 if (dm->rf_type > RF_1T1R) { in phydm_dc_cancellation()
3675 odm_set_bb_reg(dm, R_0xe10, 0x3c000000, in phydm_dc_cancellation()
3677 odm_set_bb_reg(dm, R_0xe10, 0xfc00, in phydm_dc_cancellation()
3679 odm_set_bb_reg(dm, R_0xe14, 0x3c000000, in phydm_dc_cancellation()
3681 odm_set_bb_reg(dm, R_0xe14, 0xfc00, in phydm_dc_cancellation()
3684 } else if (dm->support_ic_type & (ODM_RTL8192F)) { in phydm_dc_cancellation()
3699 odm_set_bb_reg(dm, R_0xc10, 0xff, offset_i_hex[0]); in phydm_dc_cancellation()
3700 odm_set_bb_reg(dm, R_0xc10, 0xff00, offset_q_hex[0]); in phydm_dc_cancellation()
3703 if (dm->rf_type > RF_1T1R) { in phydm_dc_cancellation()
3718 odm_set_bb_reg(dm, R_0xc18, 0xff, offset_i_hex[1]); in phydm_dc_cancellation()
3719 odm_set_bb_reg(dm, R_0xc18, 0xff00, offset_q_hex[1]); in phydm_dc_cancellation()
3721 } else if (dm->support_ic_type & (ODM_RTL8721D | ODM_RTL8710C)) { in phydm_dc_cancellation()
3738 odm_set_bb_reg(dm, R_0x950, 0x1ff, offset_i_hex[0]); in phydm_dc_cancellation()
3739 odm_set_bb_reg(dm, R_0x950, 0x1ff0000, offset_q_hex[0]); in phydm_dc_cancellation()
3747 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_receiver_blocking() local
3748 u32 chnl = *dm->channel; in phydm_receiver_blocking()
3749 u8 bw = *dm->band_width; in phydm_receiver_blocking()
3750 u32 bb_regf0 = odm_get_bb_reg(dm, R_0xf0, 0xf000); in phydm_receiver_blocking()
3752 if (!(dm->support_ic_type & ODM_RECEIVER_BLOCKING_SUPPORT) || in phydm_receiver_blocking()
3753 *dm->edcca_mode != PHYDM_EDCCA_ADAPT_MODE) in phydm_receiver_blocking()
3756 if ((dm->support_ic_type & ODM_RTL8188E && bb_regf0 < 8) || in phydm_receiver_blocking()
3757 dm->support_ic_type & ODM_RTL8192E) { in phydm_receiver_blocking()
3759 if (dm->consecutive_idlel_time <= 10 || *dm->mp_mode) in phydm_receiver_blocking()
3763 phydm_nbi_setting(dm, FUNC_ENABLE, chnl, 20, 2410, in phydm_receiver_blocking()
3765 dm->is_rx_blocking_en = true; in phydm_receiver_blocking()
3767 phydm_nbi_setting(dm, FUNC_ENABLE, chnl, 20, 2473, in phydm_receiver_blocking()
3769 dm->is_rx_blocking_en = true; in phydm_receiver_blocking()
3770 } else if (dm->is_rx_blocking_en && chnl != 1 && chnl != 13) { in phydm_receiver_blocking()
3771 phydm_nbi_enable(dm, FUNC_DISABLE); in phydm_receiver_blocking()
3772 odm_set_bb_reg(dm, R_0xc40, 0x1f000000, 0x1f); in phydm_receiver_blocking()
3773 dm->is_rx_blocking_en = false; in phydm_receiver_blocking()
3776 } else if ((dm->support_ic_type & ODM_RTL8188E && bb_regf0 >= 8)) { in phydm_receiver_blocking()
3778 if (dm->consecutive_idlel_time <= 10 || *dm->mp_mode) in phydm_receiver_blocking()
3782 phydm_nbi_setting(dm, FUNC_ENABLE, chnl, 20, 2473, in phydm_receiver_blocking()
3784 dm->is_rx_blocking_en = true; in phydm_receiver_blocking()
3785 } else if (dm->is_rx_blocking_en && chnl != 13) { in phydm_receiver_blocking()
3786 phydm_nbi_enable(dm, FUNC_DISABLE); in phydm_receiver_blocking()
3787 odm_set_bb_reg(dm, R_0xc40, 0x1f000000, 0x1f); in phydm_receiver_blocking()
3788 dm->is_rx_blocking_en = false; in phydm_receiver_blocking()
3794 if (dm->is_rx_blocking_en) { in phydm_receiver_blocking()
3795 phydm_nbi_enable(dm, FUNC_DISABLE); in phydm_receiver_blocking()
3796 odm_set_bb_reg(dm, R_0xc40, 0x1f000000, 0x1f); in phydm_receiver_blocking()
3797 dm->is_rx_blocking_en = false; in phydm_receiver_blocking()
3805 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_dyn_bw_indication() local
3806 u8 en_auto_bw_th = dm->en_auto_bw_th; in phydm_dyn_bw_indication()
3808 if (!(dm->support_ic_type & ODM_DYM_BW_INDICATION_SUPPORT)) in phydm_dyn_bw_indication()
3812 if (dm->dis_dym_bw_indication) { in phydm_dyn_bw_indication()
3813 if (*dm->dis_dym_bw_indication) in phydm_dyn_bw_indication()
3818 if (dm->rssi_min <= en_auto_bw_th && dm->is_linked) { in phydm_dyn_bw_indication()
3819 phydm_bw_fixed_enable(dm, FUNC_DISABLE); in phydm_dyn_bw_indication()
3823 phydm_bw_fixed_setting(dm); in phydm_dyn_bw_indication()