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_RTL8188F) in phydm_hw_setting()
551 odm_hw_setting_8188F(dm); in phydm_hw_setting()
554 if (dm->support_ic_type & ODM_RTL8821) in phydm_hw_setting()
555 odm_hw_setting_8821a(dm); in phydm_hw_setting()
559 if (dm->support_ic_type & ODM_RTL8814A) in phydm_hw_setting()
560 phydm_hwsetting_8814a(dm); in phydm_hw_setting()
564 if (dm->support_ic_type & ODM_RTL8822B) in phydm_hw_setting()
565 phydm_hwsetting_8822b(dm); in phydm_hw_setting()
569 if (dm->support_ic_type & ODM_RTL8812) in phydm_hw_setting()
570 phydm_hwsetting_8812a(dm); in phydm_hw_setting()
574 if (dm->support_ic_type & ODM_RTL8197F) in phydm_hw_setting()
575 phydm_hwsetting_8197f(dm); in phydm_hw_setting()
579 if (dm->support_ic_type & ODM_RTL8192F) in phydm_hw_setting()
580 phydm_hwsetting_8192f(dm); in phydm_hw_setting()
584 if (dm->support_ic_type & ODM_RTL8822C) in phydm_hw_setting()
585 phydm_hwsetting_8822c(dm); in phydm_hw_setting()
589 if (dm->support_ic_type & ODM_RTL8197G) in phydm_hw_setting()
590 phydm_hwsetting_8197g(dm); in phydm_hw_setting()
594 if (dm->support_ic_type & ODM_RTL8723F) in phydm_hw_setting()
595 phydm_hwsetting_8723f(dm); in phydm_hw_setting()
599 if (dm->support_ic_type & ODM_RTL8821C) in phydm_hw_setting()
600 phydm_hwsetting_8821c(dm); in phydm_hw_setting()
604 if (dm->support_ic_type & ODM_RTL8812F) in phydm_hw_setting()
605 phydm_hwsetting_8812f(dm); in phydm_hw_setting()
609 phydm_cck_rx_pathdiv_watchdog(dm); in phydm_hw_setting()
614 boolean phydm_chk_bb_rf_pkg_set_valid(struct dm_struct *dm) in phydm_chk_bb_rf_pkg_set_valid() argument
618 if (dm->support_ic_type == ODM_RTL8822C) { in phydm_chk_bb_rf_pkg_set_valid()
620 valid = phydm_chk_pkg_set_valid_8822c(dm, in phydm_chk_bb_rf_pkg_set_valid()
627 } else if (dm->support_ic_type == ODM_RTL8812F) { in phydm_chk_bb_rf_pkg_set_valid()
628 valid = phydm_chk_pkg_set_valid_8812f(dm, in phydm_chk_bb_rf_pkg_set_valid()
633 } else if (dm->support_ic_type == ODM_RTL8197G) { in phydm_chk_bb_rf_pkg_set_valid()
634 valid = phydm_chk_pkg_set_valid_8197g(dm, in phydm_chk_bb_rf_pkg_set_valid()
639 } else if (dm->support_ic_type == ODM_RTL8812F) { in phydm_chk_bb_rf_pkg_set_valid()
640 valid = phydm_chk_pkg_set_valid_8812f(dm, in phydm_chk_bb_rf_pkg_set_valid()
645 } else if (dm->support_ic_type == ODM_RTL8198F) { in phydm_chk_bb_rf_pkg_set_valid()
646 valid = phydm_chk_pkg_set_valid_8198f(dm, in phydm_chk_bb_rf_pkg_set_valid()
651 } else if (dm->support_ic_type == ODM_RTL8814B) { in phydm_chk_bb_rf_pkg_set_valid()
652 valid = phydm_chk_pkg_set_valid_8814b(dm, in phydm_chk_bb_rf_pkg_set_valid()
657 } else if (dm->support_ic_type == ODM_RTL8814C) { in phydm_chk_bb_rf_pkg_set_valid()
658 valid = phydm_chk_pkg_set_valid_8814b(dm, in phydm_chk_bb_rf_pkg_set_valid()
663 } else if (dm->support_ic_type == ODM_RTL8723F) { in phydm_chk_bb_rf_pkg_set_valid()
664 valid = phydm_chk_pkg_set_valid_8723f(dm, in phydm_chk_bb_rf_pkg_set_valid()
677 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init_win() local
680 switch (dm->support_ic_type) { in phydm_supportability_init_win()
975 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init_ce() local
978 switch (dm->support_ic_type) { in phydm_supportability_init_ce()
1270 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init_ap() local
1273 switch (dm->support_ic_type) { in phydm_supportability_init_ap()
1553 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init_iot() local
1556 switch (dm->support_ic_type) { in phydm_supportability_init_iot()
1660 void phydm_fwoffload_ability_init(struct dm_struct *dm, in phydm_fwoffload_ability_init() argument
1665 if (dm->support_ic_type & PHYDM_IC_SUPPORT_FW_PARAM_OFFLOAD) in phydm_fwoffload_ability_init()
1666 dm->fw_offload_ability |= PHYDM_PHY_PARAM_OFFLOAD; in phydm_fwoffload_ability_init()
1670 dm->fw_offload_ability |= PHYDM_RF_IQK_OFFLOAD; in phydm_fwoffload_ability_init()
1674 dm->fw_offload_ability |= PHYDM_RF_DPK_OFFLOAD; in phydm_fwoffload_ability_init()
1678 PHYDM_DBG(dm, ODM_COMP_INIT, "fwofflad, wrong init type!!\n"); in phydm_fwoffload_ability_init()
1682 PHYDM_DBG(dm, ODM_COMP_INIT, "fw_offload_ability = %x\n", in phydm_fwoffload_ability_init()
1683 dm->fw_offload_ability); in phydm_fwoffload_ability_init()
1686 void phydm_fwoffload_ability_clear(struct dm_struct *dm, in phydm_fwoffload_ability_clear() argument
1691 if (dm->support_ic_type & PHYDM_IC_SUPPORT_FW_PARAM_OFFLOAD) in phydm_fwoffload_ability_clear()
1692 dm->fw_offload_ability &= (~PHYDM_PHY_PARAM_OFFLOAD); in phydm_fwoffload_ability_clear()
1696 dm->fw_offload_ability &= (~PHYDM_RF_IQK_OFFLOAD); in phydm_fwoffload_ability_clear()
1700 dm->fw_offload_ability &= (~PHYDM_RF_DPK_OFFLOAD); in phydm_fwoffload_ability_clear()
1704 PHYDM_DBG(dm, ODM_COMP_INIT, "fwofflad, wrong init type!!\n"); in phydm_fwoffload_ability_clear()
1708 PHYDM_DBG(dm, ODM_COMP_INIT, "fw_offload_ability = %x\n", in phydm_fwoffload_ability_clear()
1709 dm->fw_offload_ability); in phydm_fwoffload_ability_clear()
1714 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_init() local
1717 if (dm->manual_supportability && in phydm_supportability_init()
1718 *dm->manual_supportability != 0xffffffff) { in phydm_supportability_init()
1719 support_ability = *dm->manual_supportability; in phydm_supportability_init()
1720 } else if (*dm->mp_mode) { in phydm_supportability_init()
1724 support_ability = phydm_supportability_init_win(dm); in phydm_supportability_init()
1726 support_ability = phydm_supportability_init_ap(dm); in phydm_supportability_init()
1728 support_ability = phydm_supportability_init_ce(dm); in phydm_supportability_init()
1730 support_ability = phydm_supportability_init_iot(dm); in phydm_supportability_init()
1734 if (IS_FUNC_EN(dm->enable_antdiv)) in phydm_supportability_init()
1738 if (IS_FUNC_EN(dm->enable_pathdiv)) in phydm_supportability_init()
1742 if (IS_FUNC_EN(dm->en_adap_soml)) in phydm_supportability_init()
1746 if(IS_FUNC_EN(&dm->en_tssi_mode) && in phydm_supportability_init()
1747 (dm->support_ic_type & ODM_RTL8822C)) in phydm_supportability_init()
1750 if(IS_FUNC_EN(&dm->en_tssi_mode) && in phydm_supportability_init()
1751 (dm->support_ic_type & ODM_RTL8723F)) in phydm_supportability_init()
1754 dm->support_ability = support_ability; in phydm_supportability_init()
1755 PHYDM_DBG(dm, ODM_COMP_INIT, "IC=0x%x, mp=%d, Supportability=0x%llx\n", in phydm_supportability_init()
1756 dm->support_ic_type, *dm->mp_mode, dm->support_ability); in phydm_supportability_init()
1761 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_rfe_init() local
1763 PHYDM_DBG(dm, ODM_COMP_INIT, "RFE_Init\n"); in phydm_rfe_init()
1765 if (dm->support_ic_type == ODM_RTL8822B) in phydm_rfe_init()
1766 phydm_rfe_8822b_init(dm); in phydm_rfe_init()
1774 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_tx_collsion_th_init() local
1777 if (dm->support_ic_type & ODM_RTL8197G) in phydm_tx_collsion_th_init()
1778 phydm_tx_collsion_th_init_8197g(dm); in phydm_tx_collsion_th_init()
1782 if (dm->support_ic_type & ODM_RTL8812F) in phydm_tx_collsion_th_init()
1783 phydm_tx_collsion_th_init_8812f(dm); in phydm_tx_collsion_th_init()
1790 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_tx_collsion_th_set() local
1793 if (dm->support_ic_type & ODM_RTL8197G) in phydm_tx_collsion_th_set()
1794 phydm_tx_collsion_th_set_8197g(dm, val_r2t, val_t2r); in phydm_tx_collsion_th_set()
1798 if (dm->support_ic_type & ODM_RTL8812F) in phydm_tx_collsion_th_set()
1799 phydm_tx_collsion_th_set_8812f(dm, val_r2t, val_t2r); in phydm_tx_collsion_th_set()
1805 void phydm_dm_early_init(struct dm_struct *dm) in phydm_dm_early_init() argument
1808 phydm_init_debug_setting(dm); in phydm_dm_early_init()
1812 enum phydm_init_result odm_dm_init(struct dm_struct *dm) in odm_dm_init() argument
1816 if (!phydm_chk_bb_rf_pkg_set_valid(dm)) { in odm_dm_init()
1821 halrf_init(dm); in odm_dm_init()
1822 phydm_supportability_init(dm); in odm_dm_init()
1823 phydm_pause_func_init(dm); in odm_dm_init()
1824 phydm_rfe_init(dm); in odm_dm_init()
1825 phydm_common_info_self_init(dm); in odm_dm_init()
1826 phydm_rx_phy_status_init(dm); in odm_dm_init()
1828 phydm_auto_dbg_engine_init(dm); in odm_dm_init()
1830 phydm_dig_init(dm); in odm_dm_init()
1833 phydm_dig_cckpd_coex_init(dm); in odm_dm_init()
1835 phydm_cck_pd_init(dm); in odm_dm_init()
1837 phydm_env_monitor_init(dm); in odm_dm_init()
1838 phydm_adaptivity_init(dm); in odm_dm_init()
1839 phydm_ra_info_init(dm); in odm_dm_init()
1840 phydm_rssi_monitor_init(dm); in odm_dm_init()
1841 phydm_cfo_tracking_init(dm); in odm_dm_init()
1842 phydm_rf_init(dm); in odm_dm_init()
1843 phydm_dc_cancellation(dm); in odm_dm_init()
1845 phydm_txcurrentcalibration(dm); in odm_dm_init()
1846 phydm_get_pa_bias_offset(dm); in odm_dm_init()
1849 odm_antenna_diversity_init(dm); in odm_dm_init()
1852 phydm_adaptive_soml_init(dm); in odm_dm_init()
1855 phydm_tx_path_diversity_init(dm); in odm_dm_init()
1858 phydm_dynamic_tx_power_init(dm); in odm_dm_init()
1861 phydm_la_init(dm); in odm_dm_init()
1865 phydm_beamforming_init(dm); in odm_dm_init()
1869 odm_ra_info_init_all(dm); in odm_dm_init()
1872 phydm_primary_cca_init(dm); in odm_dm_init()
1875 phydm_psd_init(dm); in odm_dm_init()
1879 phydm_smt_ant_init(dm); in odm_dm_init()
1882 phydm_lna_sat_check_init(dm); in odm_dm_init()
1885 phydm_mcc_init(dm); in odm_dm_init()
1889 phydm_cck_rx_pathdiv_init(dm); in odm_dm_init()
1893 phydm_mu_rsoml_init(dm); in odm_dm_init()
1897 phydm_tx_collsion_th_init(dm); in odm_dm_init()
1903 void odm_dm_reset(struct dm_struct *dm) in odm_dm_reset() argument
1906 odm_ant_div_reset(dm); in odm_dm_reset()
1908 phydm_set_edcca_threshold_api(dm); in odm_dm_reset()
1914 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_supportability_en() local
1926 pre_support_ability = dm->support_ability; in phydm_supportability_en()
1927 comp = dm->support_ability; in phydm_supportability_en()
2003 ((dm->fw_offload_ability & PHYDM_PHY_PARAM_OFFLOAD) ? in phydm_supportability_en()
2007 ((dm->fw_offload_ability & PHYDM_RF_IQK_OFFLOAD) ? in phydm_supportability_en()
2013 dm->support_ability = 0; in phydm_supportability_en()
2018 dm->support_ability |= (one << dm_value[0]); in phydm_supportability_en()
2020 dm->support_ability &= ~(one << dm_value[0]); in phydm_supportability_en()
2029 "Cur-supportability = 0x%llx\n", dm->support_ability); in phydm_supportability_en()
2037 void phydm_watchdog_lps_32k(struct dm_struct *dm) in phydm_watchdog_lps_32k() argument
2039 PHYDM_DBG(dm, DBG_COMMON_FLOW, "%s ======>\n", __func__); in phydm_watchdog_lps_32k()
2041 phydm_common_info_self_update(dm); in phydm_watchdog_lps_32k()
2042 phydm_rssi_monitor_check(dm); in phydm_watchdog_lps_32k()
2043 phydm_dig_lps_32k(dm); in phydm_watchdog_lps_32k()
2044 phydm_common_info_self_reset(dm); in phydm_watchdog_lps_32k()
2047 void phydm_watchdog_lps(struct dm_struct *dm) in phydm_watchdog_lps() argument
2050 PHYDM_DBG(dm, DBG_COMMON_FLOW, "%s ======>\n", __func__); in phydm_watchdog_lps()
2052 phydm_common_info_self_update(dm); in phydm_watchdog_lps()
2053 phydm_rssi_monitor_check(dm); in phydm_watchdog_lps()
2054 phydm_basic_dbg_message(dm); in phydm_watchdog_lps()
2055 phydm_receiver_blocking(dm); in phydm_watchdog_lps()
2056 phydm_false_alarm_counter_statistics(dm); in phydm_watchdog_lps()
2057 phydm_dig_by_rssi_lps(dm); in phydm_watchdog_lps()
2059 phydm_cck_pd_th(dm); in phydm_watchdog_lps()
2061 phydm_adaptivity(dm); in phydm_watchdog_lps()
2063 phydm_dyn_bw_indication(dm); in phydm_watchdog_lps()
2068 odm_antenna_diversity(dm); in phydm_watchdog_lps()
2071 phydm_common_info_self_reset(dm); in phydm_watchdog_lps()
2075 void phydm_watchdog_mp(struct dm_struct *dm) in phydm_watchdog_mp() argument
2081 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_pause_dm_watchdog() local
2084 dm->disable_phydm_watchdog = 1; in phydm_pause_dm_watchdog()
2085 PHYDM_DBG(dm, ODM_COMP_API, "PHYDM Stop\n"); in phydm_pause_dm_watchdog()
2087 dm->disable_phydm_watchdog = 0; in phydm_pause_dm_watchdog()
2088 PHYDM_DBG(dm, ODM_COMP_API, "PHYDM Start\n"); in phydm_pause_dm_watchdog()
2094 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_pause_func_init() local
2096 dm->pause_lv_table.lv_cckpd = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2097 dm->pause_lv_table.lv_dig = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2098 dm->pause_lv_table.lv_antdiv = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2099 dm->pause_lv_table.lv_dig = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2100 dm->pause_lv_table.lv_adapt = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2101 dm->pause_lv_table.lv_adsl = PHYDM_PAUSE_RELEASE; in phydm_pause_func_init()
2109 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_pause_func() local
2110 struct phydm_func_poiner *func_t = &dm->phydm_func_handler; in phydm_pause_func()
2111 s8 *pause_lv_pre = &dm->s8_dummy; in phydm_pause_func()
2112 u32 *bkp_val = &dm->u32_dummy; in phydm_pause_func()
2120 PHYDM_DBG(dm, ODM_COMP_API, "\n"); in phydm_pause_func()
2121 PHYDM_DBG(dm, ODM_COMP_API, "[%s][%s] LV=%d, Len=%d\n", __func__, in phydm_pause_func()
2127 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING]Wrong LV=%d\n", pause_lv); in phydm_pause_func()
2132 PHYDM_DBG(dm, ODM_COMP_API, "[DIG]\n"); in phydm_pause_func()
2135 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 1\n"); in phydm_pause_func()
2139 ori_val[0] = (u32)(dm->dm_dig_table.cur_ig_value); in phydm_pause_func()
2140 pause_lv_pre = &dm->pause_lv_table.lv_dig; in phydm_pause_func()
2141 bkp_val = (u32 *)(&dm->dm_dig_table.rvrt_val); in phydm_pause_func()
2147 PHYDM_DBG(dm, ODM_COMP_API, "[CCK_PD]\n"); in phydm_pause_func()
2150 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 1\n"); in phydm_pause_func()
2154 ori_val[0] = (u32)dm->dm_cckpd_table.cck_pd_lv; in phydm_pause_func()
2155 pause_lv_pre = &dm->pause_lv_table.lv_cckpd; in phydm_pause_func()
2156 bkp_val = (u32 *)(&dm->dm_cckpd_table.rvrt_val); in phydm_pause_func()
2163 PHYDM_DBG(dm, ODM_COMP_API, "[AntDiv]\n"); in phydm_pause_func()
2166 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 1\n"); in phydm_pause_func()
2170 ori_val[0] = (u32)(dm->dm_fat_table.rx_idle_ant); in phydm_pause_func()
2171 pause_lv_pre = &dm->pause_lv_table.lv_antdiv; in phydm_pause_func()
2172 bkp_val = (u32 *)(&dm->dm_fat_table.rvrt_val); in phydm_pause_func()
2179 PHYDM_DBG(dm, ODM_COMP_API, "[Adaptivity]\n"); in phydm_pause_func()
2182 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 2\n"); in phydm_pause_func()
2186 ori_val[0] = (u32)(dm->adaptivity.th_l2h); /*th_l2h*/ in phydm_pause_func()
2187 ori_val[1] = (u32)(dm->adaptivity.th_h2l); /*th_h2l*/ in phydm_pause_func()
2188 pause_lv_pre = &dm->pause_lv_table.lv_adapt; in phydm_pause_func()
2189 bkp_val = (u32 *)(&dm->adaptivity.rvrt_val); in phydm_pause_func()
2196 PHYDM_DBG(dm, ODM_COMP_API, "[AD-SOML]\n"); in phydm_pause_func()
2199 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] length != 1\n"); in phydm_pause_func()
2203 ori_val[0] = (u32)(dm->dm_soml_table.soml_on_off); in phydm_pause_func()
2205 pause_lv_pre = &dm->pause_lv_table.lv_adsl; in phydm_pause_func()
2206 bkp_val = (u32 *)(&dm->dm_soml_table.rvrt_val); in phydm_pause_func()
2212 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] error func idx\n"); in phydm_pause_func()
2216 PHYDM_DBG(dm, ODM_COMP_API, "Pause_LV{new , pre} = {%d ,%d}\n", in phydm_pause_func()
2221 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2226 if (!(dm->pause_ability & pause_func_bitmap)) { in phydm_pause_func()
2231 dm->pause_ability |= pause_func_bitmap; in phydm_pause_func()
2232 PHYDM_DBG(dm, ODM_COMP_API, "pause_ability=0x%llx\n", in phydm_pause_func()
2233 dm->pause_ability); in phydm_pause_func()
2237 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2240 func_t->pause_phydm_handler(dm, val_buf, val_lehgth); in phydm_pause_func()
2243 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2253 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2258 if ((dm->pause_ability & pause_func_bitmap) == 0) { in phydm_pause_func()
2259 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2264 dm->pause_ability &= ~pause_func_bitmap; in phydm_pause_func()
2265 PHYDM_DBG(dm, ODM_COMP_API, "pause_ability=0x%llx\n", in phydm_pause_func()
2266 dm->pause_ability); in phydm_pause_func()
2271 PHYDM_DBG(dm, ODM_COMP_API, in phydm_pause_func()
2276 func_t->pause_phydm_handler(dm, bkp_val, val_lehgth); in phydm_pause_func()
2280 PHYDM_DBG(dm, ODM_COMP_API, "[WARNING] error pause_type\n"); in phydm_pause_func()
2289 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_pause_func_console() local
2354 set_result = phydm_pause_func(dm, func, type, lv, length, buf); in phydm_pause_func_console()
2365 void phydm_pause_dm_by_asso_pkt(struct dm_struct *dm, in phydm_pause_dm_by_asso_pkt() argument
2371 PHYDM_DBG(dm, ODM_COMP_API, "[%s][%s] rssi=%d\n", __func__, in phydm_pause_dm_by_asso_pkt()
2377 phydm_pause_func(dm, F00_DIG, PHYDM_RESUME, in phydm_pause_dm_by_asso_pkt()
2380 phydm_pause_func(dm, F13_ADPTVTY, PHYDM_RESUME, in phydm_pause_dm_by_asso_pkt()
2383 odm_write_dig(dm, (u8)igi_val); in phydm_pause_dm_by_asso_pkt()
2384 phydm_pause_func(dm, F00_DIG, PHYDM_PAUSE, in phydm_pause_dm_by_asso_pkt()
2390 phydm_pause_func(dm, F13_ADPTVTY, PHYDM_PAUSE, in phydm_pause_dm_by_asso_pkt()
2397 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_stop_dm_watchdog_check() local
2399 if (dm->disable_phydm_watchdog == 1) { in phydm_stop_dm_watchdog_check()
2400 PHYDM_DBG(dm, DBG_COMMON_FLOW, "Disable phydm\n"); in phydm_stop_dm_watchdog_check()
2407 void phydm_watchdog(struct dm_struct *dm) in phydm_watchdog() argument
2409 PHYDM_DBG(dm, DBG_COMMON_FLOW, "%s ======>\n", __func__); in phydm_watchdog()
2411 phydm_common_info_self_update(dm); in phydm_watchdog()
2412 phydm_phy_info_update(dm); in phydm_watchdog()
2413 phydm_rssi_monitor_check(dm); in phydm_watchdog()
2414 phydm_basic_dbg_message(dm); in phydm_watchdog()
2415 phydm_dm_summary(dm, FIRST_MACID); in phydm_watchdog()
2417 phydm_auto_dbg_engine(dm); in phydm_watchdog()
2419 phydm_receiver_blocking(dm); in phydm_watchdog()
2421 if (phydm_stop_dm_watchdog_check(dm) == true) in phydm_watchdog()
2424 phydm_hw_setting(dm); in phydm_watchdog()
2426 phydm_env_mntr_result_watchdog(dm); in phydm_watchdog()
2429 if (dm->original_dig_restore == 0) { in phydm_watchdog()
2430 phydm_tdma_dig_timer_check(dm); in phydm_watchdog()
2434 phydm_false_alarm_counter_statistics(dm); in phydm_watchdog()
2436 if (dm->support_ic_type & (ODM_IC_11N_SERIES | in phydm_watchdog()
2438 phydm_noisy_detection(dm); in phydm_watchdog()
2442 phydm_dig_cckpd_coex(dm); in phydm_watchdog()
2444 phydm_dig(dm); in phydm_watchdog()
2446 phydm_cck_pd_th(dm); in phydm_watchdog()
2452 phydm_hwigi(dm); in phydm_watchdog()
2455 phydm_update_power_training_state(dm); in phydm_watchdog()
2457 phydm_adaptivity(dm); in phydm_watchdog()
2458 phydm_ra_info_watchdog(dm); in phydm_watchdog()
2460 phydm_tx_path_diversity(dm); in phydm_watchdog()
2462 phydm_cfo_tracking(dm); in phydm_watchdog()
2464 phydm_dynamic_tx_power(dm); in phydm_watchdog()
2467 odm_antenna_diversity(dm); in phydm_watchdog()
2470 phydm_adaptive_soml(dm); in phydm_watchdog()
2474 phydm_beamforming_watchdog(dm); in phydm_watchdog()
2477 halrf_watchdog(dm); in phydm_watchdog()
2479 phydm_primary_cca(dm); in phydm_watchdog()
2482 phydm_dyn_bw_indication(dm); in phydm_watchdog()
2485 odm_dtc(dm); in phydm_watchdog()
2488 phydm_env_mntr_set_watchdog(dm); in phydm_watchdog()
2491 phydm_lna_sat_chk_watchdog(dm); in phydm_watchdog()
2495 phydm_mcc_switch(dm); in phydm_watchdog()
2499 phydm_mu_rsoml_decision(dm); in phydm_watchdog()
2502 phydm_common_info_self_reset(dm); in phydm_watchdog()
2508 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_fw_dm_ctrl_en() local
2521 phydm_fill_fw_dig_info(dm, &enable, para4, para8); in phydm_fw_dm_ctrl_en()
2536 PHYDM_DBG(dm, DBG_FW_DM, in phydm_fw_dm_ctrl_en()
2542 odm_fill_h2c_cmd(dm, PHYDM_H2C_FW_DM_CTRL, H2C_MAX_LENGTH, h2c_val); in phydm_fw_dm_ctrl_en()
2548 void odm_cmn_info_init(struct dm_struct *dm, enum odm_cmninfo cmn_info, in odm_cmn_info_init() argument
2555 dm->support_ability = (u64)value; in odm_cmn_info_init()
2559 dm->rf_type = (u8)value; in odm_cmn_info_init()
2563 dm->support_platform = (u8)value; in odm_cmn_info_init()
2567 dm->support_interface = (u8)value; in odm_cmn_info_init()
2571 dm->is_mp_chip = (u8)value; in odm_cmn_info_init()
2575 dm->support_ic_type = (u32)value; in odm_cmn_info_init()
2579 dm->cut_version = (u8)value; in odm_cmn_info_init()
2583 dm->fab_version = (u8)value; in odm_cmn_info_init()
2586 dm->fw_version = (u8)value; in odm_cmn_info_init()
2589 dm->fw_sub_version = (u8)value; in odm_cmn_info_init()
2593 if (dm->support_ic_type & ODM_RTL8821C) in odm_cmn_info_init()
2594 dm->rfe_type_expand = (u8)value; in odm_cmn_info_init()
2597 dm->rfe_type = (u8)value; in odm_cmn_info_init()
2600 phydm_init_hw_info_by_rfe(dm); in odm_cmn_info_init()
2605 dm->ant_div_type = (u8)value; in odm_cmn_info_init()
2609 dm->with_extenal_ant_switch = (u8)value; in odm_cmn_info_init()
2614 dm->dm_fat_table.b_fix_tx_ant = (u8)value; in odm_cmn_info_init()
2619 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2620 dm->board_type = (u8)value; in odm_cmn_info_init()
2624 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2625 dm->package_type = (u8)value; in odm_cmn_info_init()
2629 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2630 dm->ext_lna = (u8)value; in odm_cmn_info_init()
2634 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2635 dm->ext_lna_5g = (u8)value; in odm_cmn_info_init()
2639 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2640 dm->ext_pa = (u8)value; in odm_cmn_info_init()
2644 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2645 dm->ext_pa_5g = (u8)value; in odm_cmn_info_init()
2649 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2650 dm->type_gpa = (u16)value; in odm_cmn_info_init()
2654 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2655 dm->type_apa = (u16)value; in odm_cmn_info_init()
2659 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2660 dm->type_glna = (u16)value; in odm_cmn_info_init()
2664 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2665 dm->type_alna = (u16)value; in odm_cmn_info_init()
2669 if (!dm->is_init_hw_info_by_rfe) in odm_cmn_info_init()
2670 dm->ext_trsw = (u8)value; in odm_cmn_info_init()
2673 dm->ext_lna_gain = (u8)value; in odm_cmn_info_init()
2676 dm->iot_table.win_patch_id = (u8)value; in odm_cmn_info_init()
2679 dm->is_in_hct_test = (boolean)value; in odm_cmn_info_init()
2682 dm->wifi_test = (u8)value; in odm_cmn_info_init()
2685 dm->is_dual_mac_smart_concurrent = (boolean)value; in odm_cmn_info_init()
2689 dm->config_bbrf = (boolean)value; in odm_cmn_info_init()
2693 dm->rf_calibrate_info.is_iqk_pa_off = (boolean)value; in odm_cmn_info_init()
2696 dm->rf_calibrate_info.reg_rf_kfree_enable = (u8)value; in odm_cmn_info_init()
2699 dm->rf_calibrate_info.rf_kfree_enable = (u8)value; in odm_cmn_info_init()
2702 dm->normal_rx_path = (u8)value; in odm_cmn_info_init()
2705 dm->valid_path_set = (u8)value; in odm_cmn_info_init()
2708 dm->efuse0x3d8 = (u8)value; in odm_cmn_info_init()
2711 dm->efuse0x3d7 = (u8)value; in odm_cmn_info_init()
2714 dm->p_advance_ota = (u8)value; in odm_cmn_info_init()
2719 dm->dfs_region_domain = (u8)value; in odm_cmn_info_init()
2723 dm->soft_ap_special_setting = (u32)value; in odm_cmn_info_init()
2727 dm->dm_cfo_track.crystal_cap_default = (u8)value; in odm_cmn_info_init()
2731 /*@dm->dpk_en = (u1Byte)value;*/ in odm_cmn_info_init()
2732 halrf_cmn_info_set(dm, HALRF_CMNINFO_DPK_EN, (u64)value); in odm_cmn_info_init()
2736 dm->hp_hw_id = (boolean)value; in odm_cmn_info_init()
2739 dm->en_tssi_mode = (u8)value; in odm_cmn_info_init()
2742 dm->en_dis_dpd = (boolean)value; in odm_cmn_info_init()
2745 dm->en_auto_bw_th = (u8)value; in odm_cmn_info_init()
2748 dm->en_nbi_detect = (boolean)value; in odm_cmn_info_init()
2752 dm->power_voltage = (u8)value; in odm_cmn_info_init()
2755 dm->antdiv_gpio = (u8)value; in odm_cmn_info_init()
2758 dm->peak_detect_mode = (u8)value; in odm_cmn_info_init()
2766 void odm_cmn_info_hook(struct dm_struct *dm, enum odm_cmninfo cmn_info, in odm_cmn_info_hook() argument
2773 dm->num_tx_bytes_unicast = (u64 *)value; in odm_cmn_info_hook()
2777 dm->num_rx_bytes_unicast = (u64 *)value; in odm_cmn_info_hook()
2781 dm->band_type = (u8 *)value; in odm_cmn_info_hook()
2785 dm->sec_ch_offset = (u8 *)value; in odm_cmn_info_hook()
2789 dm->security = (u8 *)value; in odm_cmn_info_hook()
2793 dm->band_width = (u8 *)value; in odm_cmn_info_hook()
2797 dm->channel = (u8 *)value; in odm_cmn_info_hook()
2801 dm->is_scan_in_process = (boolean *)value; in odm_cmn_info_hook()
2805 dm->is_power_saving = (boolean *)value; in odm_cmn_info_hook()
2809 dm->is_tdma = (boolean *)value; in odm_cmn_info_hook()
2813 dm->one_path_cca = (u8 *)value; in odm_cmn_info_hook()
2817 dm->is_driver_stopped = (boolean *)value; in odm_cmn_info_hook()
2820 dm->pinit_adpt_in_progress = (boolean *)value; in odm_cmn_info_hook()
2824 dm->antenna_test = (u8 *)value; in odm_cmn_info_hook()
2828 dm->is_net_closed = (boolean *)value; in odm_cmn_info_hook()
2832 dm->forced_data_rate = (u16 *)value; in odm_cmn_info_hook()
2835 dm->enable_antdiv = (u8 *)value; in odm_cmn_info_hook()
2838 dm->enable_pathdiv = (u8 *)value; in odm_cmn_info_hook()
2841 dm->en_adap_soml = (u8 *)value; in odm_cmn_info_hook()
2844 dm->edcca_mode = (u8 *)value; in odm_cmn_info_hook()
2848 dm->dm_dig_table.is_p2p_in_process = (u8 *)value; in odm_cmn_info_hook()
2852 dm->is_1_antenna = (boolean *)value; in odm_cmn_info_hook()
2856 dm->rf_default_path = (u8 *)value; in odm_cmn_info_hook()
2860 dm->is_fcs_mode_enable = (boolean *)value; in odm_cmn_info_hook()
2864 dm->hub_usb_mode = (u8 *)value; in odm_cmn_info_hook()
2867 dm->is_fw_dw_rsvd_page_in_progress = (boolean *)value; in odm_cmn_info_hook()
2870 dm->current_tx_tp = (u32 *)value; in odm_cmn_info_hook()
2873 dm->current_rx_tp = (u32 *)value; in odm_cmn_info_hook()
2876 dm->sounding_seq = (u8 *)value; in odm_cmn_info_hook()
2880 dm->dfs_master_enabled = (u8 *)value; in odm_cmn_info_hook()
2886 dm->dm_fat_table.p_force_tx_by_desc = (u8 *)value; in odm_cmn_info_hook()
2889 dm->dm_fat_table.p_default_s0_s1 = (u8 *)value; in odm_cmn_info_hook()
2892 dm->dm_fat_table.is_no_csi_feedback = (boolean *)value; in odm_cmn_info_hook()
2897 dm->soft_ap_mode = (u32 *)value; in odm_cmn_info_hook()
2900 dm->mp_mode = (u8 *)value; in odm_cmn_info_hook()
2903 dm->interrupt_mask = (u32 *)value; in odm_cmn_info_hook()
2906 dm->bb_op_mode = (u8 *)value; in odm_cmn_info_hook()
2909 dm->manual_supportability = (u32 *)value; in odm_cmn_info_hook()
2912 dm->dis_dym_bw_indication = (u8 *)value; in odm_cmn_info_hook()
2916 dm->anti_interference_en = (u8 *)value; in odm_cmn_info_hook()
2928 void odm_cmn_info_update(struct dm_struct *dm, u32 cmn_info, u64 value) in odm_cmn_info_update() argument
2933 dm->is_link_in_process = (boolean)value; in odm_cmn_info_update()
2937 dm->support_ability = (u64)value; in odm_cmn_info_update()
2941 dm->rf_type = (u8)value; in odm_cmn_info_update()
2945 dm->is_wifi_direct = (boolean)value; in odm_cmn_info_update()
2949 dm->is_wifi_display = (boolean)value; in odm_cmn_info_update()
2953 dm->is_linked = (boolean)value; in odm_cmn_info_update()
2957 dm->iot_table.is_linked_cmw500 = (boolean)value; in odm_cmn_info_update()
2961 dm->bsta_state = (boolean)value; in odm_cmn_info_update()
2966 dm->rssi_min = (u8)value; in odm_cmn_info_update()
2971 dm->rssi_min_by_path = (u8)value; in odm_cmn_info_update()
2975 dm->debug_components = (u64)value; in odm_cmn_info_update()
2981 dm->bt_info_table.is_bt_enabled = (boolean)value; in odm_cmn_info_update()
2985 dm->bt_info_table.is_bt_connect_process = (boolean)value; in odm_cmn_info_update()
2989 dm->bt_info_table.bt_hs_rssi = (u8)value; in odm_cmn_info_update()
2993 dm->bt_info_table.is_bt_hs_operation = (boolean)value; in odm_cmn_info_update()
2997 dm->bt_info_table.is_bt_limited_dig = (boolean)value; in odm_cmn_info_update()
3002 dm->ap_total_num = (u8)value; in odm_cmn_info_update()
3007 dm->dfs_region_domain = (u8)value; in odm_cmn_info_update()
3012 dm->is_bt_continuous_turn = (boolean)value; in odm_cmn_info_update()
3015 dm->is_download_fw = (boolean)value; in odm_cmn_info_update()
3018 dm->iot_table.phydm_patch_id = (u32)value; in odm_cmn_info_update()
3021 dm->dm_ra_table.rrsr_val_init = (u32)value; in odm_cmn_info_update()
3024 dm->linked_bf_support = (u8)value; in odm_cmn_info_update()
3027 dm->flatness_type = (u8)value; in odm_cmn_info_update()
3030 dm->en_tssi_mode = (u8)value; in odm_cmn_info_update()
3033 dm->is_dig_low_bond = (boolean)value; in odm_cmn_info_update()
3036 dm->is_R2R_CCA_MASKT_TIME_SHORT = (boolean)value; in odm_cmn_info_update()
3043 u32 phydm_cmn_info_query(struct dm_struct *dm, enum phydm_info_query info_type) in phydm_cmn_info_query() argument
3045 struct phydm_fa_struct *fa_t = &dm->false_alm_cnt; in phydm_cmn_info_query()
3046 struct phydm_dig_struct *dig_t = &dm->dm_dig_table; in phydm_cmn_info_query()
3047 struct ccx_info *ccx_info = &dm->dm_ccx_info; in phydm_cmn_info_query()
3118 return (u32)dm->rssi_min; in phydm_cmn_info_query()
3121 return (u32)dm->rssi_max; in phydm_cmn_info_query()
3143 void odm_init_all_work_items(struct dm_struct *dm) in odm_init_all_work_items() argument
3145 void *adapter = dm->adapter; in odm_init_all_work_items()
3149 odm_initialize_work_item(dm, in odm_init_all_work_items()
3150 &dm->dm_soml_table.phydm_adaptive_soml_workitem, in odm_init_all_work_items()
3157 odm_initialize_work_item(dm, in odm_init_all_work_items()
3158 &dm->phydm_evm_antdiv_workitem, in odm_init_all_work_items()
3165 odm_initialize_work_item(dm, in odm_init_all_work_items()
3166 &dm->dm_swat_table.phydm_sw_antenna_switch_workitem, in odm_init_all_work_items()
3172 odm_initialize_work_item(dm, in odm_init_all_work_items()
3173 &dm->dm_sat_table.hl_smart_antenna_workitem, in odm_init_all_work_items()
3178 odm_initialize_work_item(dm, in odm_init_all_work_items()
3179 &dm->dm_sat_table.hl_smart_antenna_decision_workitem, in odm_init_all_work_items()
3186 dm, in odm_init_all_work_items()
3187 &dm->ra_rpt_workitem, in odm_init_all_work_items()
3194 dm, in odm_init_all_work_items()
3195 &dm->fast_ant_training_workitem, in odm_init_all_work_items()
3205 dm, in odm_init_all_work_items()
3206 &dm->beamforming_info.txbf_info.txbf_enter_work_item, in odm_init_all_work_items()
3212 dm, in odm_init_all_work_items()
3213 &dm->beamforming_info.txbf_info.txbf_leave_work_item, in odm_init_all_work_items()
3219 dm, in odm_init_all_work_items()
3220 &dm->beamforming_info.txbf_info.txbf_fw_ndpa_work_item, in odm_init_all_work_items()
3226 dm, in odm_init_all_work_items()
3227 &dm->beamforming_info.txbf_info.txbf_clk_work_item, in odm_init_all_work_items()
3233 dm, in odm_init_all_work_items()
3234 &dm->beamforming_info.txbf_info.txbf_rate_work_item, in odm_init_all_work_items()
3240 dm, in odm_init_all_work_items()
3241 &dm->beamforming_info.txbf_info.txbf_status_work_item, in odm_init_all_work_items()
3247 dm, in odm_init_all_work_items()
3248 &dm->beamforming_info.txbf_info.txbf_reset_tx_path_work_item, in odm_init_all_work_items()
3254 dm, in odm_init_all_work_items()
3255 &dm->beamforming_info.txbf_info.txbf_get_tx_rate_work_item, in odm_init_all_work_items()
3263 dm, in odm_init_all_work_items()
3264 &dm->adcsmp.adc_smp_work_item, in odm_init_all_work_items()
3270 dm, in odm_init_all_work_items()
3271 &dm->adcsmp.adc_smp_work_item_1, in odm_init_all_work_items()
3278 void odm_free_all_work_items(struct dm_struct *dm) in odm_free_all_work_items() argument
3283 odm_free_work_item(&dm->dm_swat_table.phydm_sw_antenna_switch_workitem); in odm_free_all_work_items()
3287 odm_free_work_item(&dm->dm_soml_table.phydm_adaptive_soml_workitem); in odm_free_all_work_items()
3291 odm_free_work_item(&dm->phydm_evm_antdiv_workitem); in odm_free_all_work_items()
3295 odm_free_work_item(&dm->dm_sat_table.hl_smart_antenna_workitem); in odm_free_all_work_items()
3296 odm_free_work_item(&dm->dm_sat_table.hl_smart_antenna_decision_workitem); in odm_free_all_work_items()
3300 odm_free_work_item(&dm->fast_ant_training_workitem); in odm_free_all_work_items()
3302 odm_free_work_item(&dm->ra_rpt_workitem); in odm_free_all_work_items()
3303 /*odm_free_work_item((&dm->sbdcnt_workitem));*/ in odm_free_all_work_items()
3307 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_enter_work_item)); in odm_free_all_work_items()
3308 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_leave_work_item)); in odm_free_all_work_items()
3309 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_fw_ndpa_work_item)); in odm_free_all_work_items()
3310 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_clk_work_item)); in odm_free_all_work_items()
3311 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_rate_work_item)); in odm_free_all_work_items()
3312 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_status_work_item)); in odm_free_all_work_items()
3313 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_reset_tx_path_work_item)); in odm_free_all_work_items()
3314 odm_free_work_item((&dm->beamforming_info.txbf_info.txbf_get_tx_rate_work_item)); in odm_free_all_work_items()
3318 odm_free_work_item((&dm->adcsmp.adc_smp_work_item)); in odm_free_all_work_items()
3319 odm_free_work_item((&dm->adcsmp.adc_smp_work_item_1)); in odm_free_all_work_items()
3324 void odm_init_all_timers(struct dm_struct *dm) in odm_init_all_timers() argument
3327 odm_ant_div_timers(dm, INIT_ANTDIV_TIMMER); in odm_init_all_timers()
3331 phydm_tdma_dig_timers(dm, INIT_TDMA_DIG_TIMMER); in odm_init_all_timers()
3335 phydm_adaptive_soml_timers(dm, INIT_SOML_TIMMER); in odm_init_all_timers()
3339 phydm_lna_sat_chk_timers(dm, INIT_LNA_SAT_CHK_TIMMER); in odm_init_all_timers()
3344 odm_initialize_timer(dm, &dm->sbdcnt_timer, in odm_init_all_timers()
3347 odm_initialize_timer(dm, &dm->beamforming_info.txbf_info.txbf_fw_ndpa_timer, in odm_init_all_timers()
3355 odm_initialize_timer(dm, &dm->beamforming_info.beamforming_timer, in odm_init_all_timers()
3362 void odm_cancel_all_timers(struct dm_struct *dm) in odm_cancel_all_timers() argument
3366 if (dm->adapter == NULL) in odm_cancel_all_timers()
3371 odm_ant_div_timers(dm, CANCEL_ANTDIV_TIMMER); in odm_cancel_all_timers()
3375 phydm_tdma_dig_timers(dm, CANCEL_TDMA_DIG_TIMMER); in odm_cancel_all_timers()
3379 phydm_adaptive_soml_timers(dm, CANCEL_SOML_TIMMER); in odm_cancel_all_timers()
3383 phydm_lna_sat_chk_timers(dm, CANCEL_LNA_SAT_CHK_TIMMER); in odm_cancel_all_timers()
3388 odm_cancel_timer(dm, &dm->sbdcnt_timer); in odm_cancel_all_timers()
3390 odm_cancel_timer(dm, &dm->beamforming_info.txbf_info.txbf_fw_ndpa_timer); in odm_cancel_all_timers()
3396 odm_cancel_timer(dm, &dm->beamforming_info.beamforming_timer); in odm_cancel_all_timers()
3401 void odm_release_all_timers(struct dm_struct *dm) in odm_release_all_timers() argument
3404 odm_ant_div_timers(dm, RELEASE_ANTDIV_TIMMER); in odm_release_all_timers()
3408 phydm_tdma_dig_timers(dm, RELEASE_TDMA_DIG_TIMMER); in odm_release_all_timers()
3412 phydm_adaptive_soml_timers(dm, RELEASE_SOML_TIMMER); in odm_release_all_timers()
3416 phydm_lna_sat_chk_timers(dm, RELEASE_LNA_SAT_CHK_TIMMER); in odm_release_all_timers()
3421 odm_release_timer(dm, &dm->sbdcnt_timer); in odm_release_all_timers()
3423 odm_release_timer(dm, &dm->beamforming_info.txbf_info.txbf_fw_ndpa_timer); in odm_release_all_timers()
3429 odm_release_timer(dm, &dm->beamforming_info.beamforming_timer); in odm_release_all_timers()
3436 struct dm_struct *dm) in odm_init_all_threads() argument
3439 k_tpt_task_init(dm->priv); in odm_init_all_threads()
3444 struct dm_struct *dm) in odm_stop_all_threads() argument
3447 k_tpt_task_stop(dm->priv); in odm_stop_all_threads()
3456 void odm_dtc(struct dm_struct *dm) in odm_dtc() argument
3493 if (dm->rssi_min > DTC_BASE) { in odm_dtc()
3497 if (dtc_table_down[i] >= dm->rssi_min || dtc_steps >= 6) in odm_dtc()
3504 else if (dm->rssi_min > DTC_DWN_BASE) { in odm_dtc()
3509 if (dtc_table_up[i] <= dm->rssi_min || dtc_steps >= 10) in odm_dtc()
3523 odm_write_1byte(dm, 0x06d9, resp_txagc); in odm_dtc()
3525 PHYDM_DBG(dm, ODM_COMP_PWR_TRAIN, in odm_dtc()
3527 dm->rssi_min, sign ? "minus" : "plus", dtc_steps); in odm_dtc()
3534 void phydm_dc_cancellation(struct dm_struct *dm) in phydm_dc_cancellation() argument
3543 if (!(dm->support_ic_type & ODM_DC_CANCELLATION_SUPPORT)) in phydm_dc_cancellation()
3545 if ((dm->support_ic_type & ODM_RTL8188F) && in phydm_dc_cancellation()
3546 dm->cut_version < ODM_CUT_D) in phydm_dc_cancellation()
3548 if ((dm->support_ic_type & ODM_RTL8192F) && in phydm_dc_cancellation()
3549 dm->cut_version == ODM_CUT_A) in phydm_dc_cancellation()
3551 if (*dm->band_width == CHANNEL_WIDTH_5) in phydm_dc_cancellation()
3553 if (*dm->band_width == CHANNEL_WIDTH_10) in phydm_dc_cancellation()
3556 PHYDM_DBG(dm, ODM_COMP_API, "%s ======>\n", __func__); in phydm_dc_cancellation()
3562 dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8188F | in phydm_dc_cancellation()
3567 dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8192F)) in phydm_dc_cancellation()
3569 if (phydm_stop_ic_trx(dm, PHYDM_SET) == PHYDM_SET_FAIL) { in phydm_dc_cancellation()
3570 PHYDM_DBG(dm, ODM_COMP_API, "STOP_TRX_FAIL\n"); in phydm_dc_cancellation()
3573 odm_write_dig(dm, 0x7e); in phydm_dc_cancellation()
3575 if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8721D | in phydm_dc_cancellation()
3577 halrf_rf_lna_setting(dm, HALRF_LNA_DISABLE); in phydm_dc_cancellation()
3579 phydm_stop_3_wire(dm, PHYDM_SET); in phydm_dc_cancellation()
3580 if (dm->support_ic_type & (ODM_RTL8188F | ODM_RTL8723D | in phydm_dc_cancellation()
3583 if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x235)) { in phydm_dc_cancellation()
3584 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3588 } else if (dm->support_ic_type & (ODM_RTL8721D | in phydm_dc_cancellation()
3591 if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_2, 0x200)) { in phydm_dc_cancellation()
3592 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3596 } else if (dm->support_ic_type & ODM_RTL8821C) { in phydm_dc_cancellation()
3597 if (!phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x200)) { in phydm_dc_cancellation()
3599 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3603 phydm_bb_dbg_port_header_sel(dm, 0x0); in phydm_dc_cancellation()
3604 } else if (dm->support_ic_type & ODM_RTL8822B) { in phydm_dc_cancellation()
3606 !phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x200)) { in phydm_dc_cancellation()
3608 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3613 !phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x202)) { in phydm_dc_cancellation()
3615 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3619 phydm_bb_dbg_port_header_sel(dm, 0x0); in phydm_dc_cancellation()
3620 } else if (dm->support_ic_type & ODM_RTL8192F) { in phydm_dc_cancellation()
3622 !phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x235)) { in phydm_dc_cancellation()
3624 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3629 !phydm_set_bb_dbg_port(dm, DBGPORT_PRI_1, 0x23d)) { in phydm_dc_cancellation()
3631 PHYDM_DBG(dm, ODM_COMP_API, in phydm_dc_cancellation()
3638 odm_set_bb_reg(dm, R_0xa78, MASKBYTE1, 0x0); in phydm_dc_cancellation()
3640 PHYDM_DBG(dm, ODM_COMP_API, "DC cancellation Begin!!!\n"); in phydm_dc_cancellation()
3642 phydm_stop_ck320(dm, true); /*stop ck320*/ in phydm_dc_cancellation()
3645 reg_value32[path] = phydm_get_bb_dbg_port_val(dm); in phydm_dc_cancellation()
3647 phydm_stop_ck320(dm, false); /*start ck320*/ in phydm_dc_cancellation()
3649 phydm_release_bb_dbg_port(dm); in phydm_dc_cancellation()
3651 phydm_stop_3_wire(dm, PHYDM_REVERT); in phydm_dc_cancellation()
3653 if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8721D | in phydm_dc_cancellation()
3655 halrf_rf_lna_setting(dm, HALRF_LNA_ENABLE); in phydm_dc_cancellation()
3657 odm_write_dig(dm, 0x20); in phydm_dc_cancellation()
3659 set_result = phydm_stop_ic_trx(dm, PHYDM_REVERT); in phydm_dc_cancellation()
3661 PHYDM_DBG(dm, ODM_COMP_API, "DC cancellation OK!!!\n"); in phydm_dc_cancellation()
3666 odm_set_bb_reg(dm, R_0xa9c, BIT(20), 0x1); in phydm_dc_cancellation()
3667 if (dm->support_ic_type & (ODM_RTL8188F | ODM_RTL8723D | in phydm_dc_cancellation()
3682 odm_set_bb_reg(dm, R_0x950, 0x1ff, offset_i_hex[0]); in phydm_dc_cancellation()
3683 odm_set_bb_reg(dm, R_0x950, 0x1ff0000, offset_q_hex[0]); in phydm_dc_cancellation()
3684 } else if (dm->support_ic_type & (ODM_RTL8821C | ODM_RTL8822B)) { in phydm_dc_cancellation()
3695 odm_set_bb_reg(dm, R_0xc10, 0x3c000000, in phydm_dc_cancellation()
3697 odm_set_bb_reg(dm, R_0xc10, 0xfc00, 0x3f & offset_i_hex[0]); in phydm_dc_cancellation()
3698 odm_set_bb_reg(dm, R_0xc14, 0x3c000000, in phydm_dc_cancellation()
3700 odm_set_bb_reg(dm, R_0xc14, 0xfc00, 0x3f & offset_q_hex[0]); in phydm_dc_cancellation()
3703 if (dm->rf_type > RF_1T1R) { in phydm_dc_cancellation()
3713 odm_set_bb_reg(dm, R_0xe10, 0x3c000000, in phydm_dc_cancellation()
3715 odm_set_bb_reg(dm, R_0xe10, 0xfc00, in phydm_dc_cancellation()
3717 odm_set_bb_reg(dm, R_0xe14, 0x3c000000, in phydm_dc_cancellation()
3719 odm_set_bb_reg(dm, R_0xe14, 0xfc00, in phydm_dc_cancellation()
3722 } else if (dm->support_ic_type & (ODM_RTL8192F)) { in phydm_dc_cancellation()
3737 odm_set_bb_reg(dm, R_0xc10, 0xff, offset_i_hex[0]); in phydm_dc_cancellation()
3738 odm_set_bb_reg(dm, R_0xc10, 0xff00, offset_q_hex[0]); in phydm_dc_cancellation()
3741 if (dm->rf_type > RF_1T1R) { in phydm_dc_cancellation()
3756 odm_set_bb_reg(dm, R_0xc18, 0xff, offset_i_hex[1]); in phydm_dc_cancellation()
3757 odm_set_bb_reg(dm, R_0xc18, 0xff00, offset_q_hex[1]); in phydm_dc_cancellation()
3759 } else if (dm->support_ic_type & (ODM_RTL8721D | ODM_RTL8710C)) { in phydm_dc_cancellation()
3776 odm_set_bb_reg(dm, R_0x950, 0x1ff, offset_i_hex[0]); in phydm_dc_cancellation()
3777 odm_set_bb_reg(dm, R_0x950, 0x1ff0000, offset_q_hex[0]); in phydm_dc_cancellation()
3785 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_receiver_blocking() local
3786 u32 chnl = *dm->channel; in phydm_receiver_blocking()
3787 u8 bw = *dm->band_width; in phydm_receiver_blocking()
3788 u32 bb_regf0 = odm_get_bb_reg(dm, R_0xf0, 0xf000); in phydm_receiver_blocking()
3790 if (!(dm->support_ic_type & ODM_RECEIVER_BLOCKING_SUPPORT) || in phydm_receiver_blocking()
3791 *dm->edcca_mode != PHYDM_EDCCA_ADAPT_MODE) in phydm_receiver_blocking()
3794 if ((dm->support_ic_type & ODM_RTL8188E && bb_regf0 < 8) || in phydm_receiver_blocking()
3795 dm->support_ic_type & ODM_RTL8192E) { in phydm_receiver_blocking()
3797 if (dm->consecutive_idlel_time <= 10 || *dm->mp_mode) in phydm_receiver_blocking()
3801 phydm_nbi_setting(dm, FUNC_ENABLE, chnl, 20, 2410, in phydm_receiver_blocking()
3803 dm->is_rx_blocking_en = true; in phydm_receiver_blocking()
3805 phydm_nbi_setting(dm, FUNC_ENABLE, chnl, 20, 2473, in phydm_receiver_blocking()
3807 dm->is_rx_blocking_en = true; in phydm_receiver_blocking()
3808 } else if (dm->is_rx_blocking_en && chnl != 1 && chnl != 13) { in phydm_receiver_blocking()
3809 phydm_nbi_enable(dm, FUNC_DISABLE); in phydm_receiver_blocking()
3810 odm_set_bb_reg(dm, R_0xc40, 0x1f000000, 0x1f); in phydm_receiver_blocking()
3811 dm->is_rx_blocking_en = false; in phydm_receiver_blocking()
3814 } else if ((dm->support_ic_type & ODM_RTL8188E && bb_regf0 >= 8)) { in phydm_receiver_blocking()
3816 if (dm->consecutive_idlel_time <= 10 || *dm->mp_mode) in phydm_receiver_blocking()
3820 phydm_nbi_setting(dm, FUNC_ENABLE, chnl, 20, 2473, in phydm_receiver_blocking()
3822 dm->is_rx_blocking_en = true; in phydm_receiver_blocking()
3823 } else if (dm->is_rx_blocking_en && chnl != 13) { in phydm_receiver_blocking()
3824 phydm_nbi_enable(dm, FUNC_DISABLE); in phydm_receiver_blocking()
3825 odm_set_bb_reg(dm, R_0xc40, 0x1f000000, 0x1f); in phydm_receiver_blocking()
3826 dm->is_rx_blocking_en = false; in phydm_receiver_blocking()
3832 if (dm->is_rx_blocking_en) { in phydm_receiver_blocking()
3833 phydm_nbi_enable(dm, FUNC_DISABLE); in phydm_receiver_blocking()
3834 odm_set_bb_reg(dm, R_0xc40, 0x1f000000, 0x1f); in phydm_receiver_blocking()
3835 dm->is_rx_blocking_en = false; in phydm_receiver_blocking()
3843 struct dm_struct *dm = (struct dm_struct *)dm_void; in phydm_dyn_bw_indication() local
3844 u8 en_auto_bw_th = dm->en_auto_bw_th; in phydm_dyn_bw_indication()
3846 if (!(dm->support_ic_type & ODM_DYM_BW_INDICATION_SUPPORT)) in phydm_dyn_bw_indication()
3850 if (dm->dis_dym_bw_indication) { in phydm_dyn_bw_indication()
3851 if (*dm->dis_dym_bw_indication) in phydm_dyn_bw_indication()
3856 if (dm->rssi_min <= en_auto_bw_th && dm->is_linked) { in phydm_dyn_bw_indication()
3857 phydm_bw_fixed_enable(dm, FUNC_DISABLE); in phydm_dyn_bw_indication()
3861 phydm_bw_fixed_setting(dm); in phydm_dyn_bw_indication()