1*4882a593Smuzhiyun /****************************************************************************** 2*4882a593Smuzhiyun * 3*4882a593Smuzhiyun * Copyright(c) 2007 - 2017 Realtek Corporation. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify it 6*4882a593Smuzhiyun * under the terms of version 2 of the GNU General Public License as 7*4882a593Smuzhiyun * published by the Free Software Foundation. 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * This program is distributed in the hope that it will be useful, but WITHOUT 10*4882a593Smuzhiyun * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11*4882a593Smuzhiyun * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12*4882a593Smuzhiyun * more details. 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun * The full GNU General Public License is included in this distribution in the 15*4882a593Smuzhiyun * file called LICENSE. 16*4882a593Smuzhiyun * 17*4882a593Smuzhiyun * Contact Information: 18*4882a593Smuzhiyun * wlanfae <wlanfae@realtek.com> 19*4882a593Smuzhiyun * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 20*4882a593Smuzhiyun * Hsinchu 300, Taiwan. 21*4882a593Smuzhiyun * 22*4882a593Smuzhiyun * Larry Finger <Larry.Finger@lwfinger.net> 23*4882a593Smuzhiyun * 24*4882a593Smuzhiyun *****************************************************************************/ 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #ifndef __PHYDMDIG_H__ 27*4882a593Smuzhiyun #define __PHYDMDIG_H__ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun /* 2020.08.13 Add IFS-CLM/FAHM in dig fa source for more accurate fa info*/ 30*4882a593Smuzhiyun #define DIG_VERSION "3.9" 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #define DIG_HW 0 33*4882a593Smuzhiyun #define DIG_LIMIT_PERIOD 60 /*60 sec*/ 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun /*@--------------------Define ---------------------------------------*/ 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun /*@=== [DIG Boundary] ========================================*/ 38*4882a593Smuzhiyun /*@DIG coverage mode*/ 39*4882a593Smuzhiyun #define DIG_MAX_COVERAGR 0x26 40*4882a593Smuzhiyun #define DIG_MIN_COVERAGE 0x1c 41*4882a593Smuzhiyun #define DIG_MAX_OF_MIN_COVERAGE 0x22 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun /*@[DIG Balance mode]*/ 44*4882a593Smuzhiyun #if (DIG_HW == 1) 45*4882a593Smuzhiyun #define DIG_MAX_BALANCE_MODE 0x32 46*4882a593Smuzhiyun #else 47*4882a593Smuzhiyun #define DIG_MAX_BALANCE_MODE 0x3e 48*4882a593Smuzhiyun #endif 49*4882a593Smuzhiyun #define DIG_MAX_OF_MIN_BALANCE_MODE 0x2a 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun /*@[DIG Performance mode]*/ 52*4882a593Smuzhiyun #define DIG_MAX_PERFORMANCE_MODE 0x5a 53*4882a593Smuzhiyun #define DIG_MAX_OF_MIN_PERFORMANCE_MODE 0x40 /*@[WLANBB-871]*/ 54*4882a593Smuzhiyun #define DIG_MIN_PERFORMANCE 0x20 55*4882a593Smuzhiyun #if (RTL8822B_SUPPORT == 1) 56*4882a593Smuzhiyun #define DIG_MAX_OF_MIN_PERFORMANCE_MODE_22B 0x38 57*4882a593Smuzhiyun #endif 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun /*@DIG DFS function*/ 60*4882a593Smuzhiyun #define DIG_MAX_DFS 0x28 61*4882a593Smuzhiyun #define DIG_MIN_DFS 0x20 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun /*@DIG LPS function*/ 64*4882a593Smuzhiyun #define DIG_MAX_LPS 0x3e 65*4882a593Smuzhiyun #define DIG_MIN_LPS 0x20 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun #ifdef PHYDM_TDMA_DIG_SUPPORT 68*4882a593Smuzhiyun #define DIG_NUM_OF_TDMA_STATES 2 /*@L, H state*/ 69*4882a593Smuzhiyun #define DIG_TIMER_MS 250 70*4882a593Smuzhiyun #define ONE_SEC_MS 1000 71*4882a593Smuzhiyun #endif 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun /*@=== [DIG FA Threshold] ======================================*/ 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun /*Normal*/ 76*4882a593Smuzhiyun #define DM_DIG_FA_TH0 500 77*4882a593Smuzhiyun #define DM_DIG_FA_TH1 750 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun /*@LPS*/ 80*4882a593Smuzhiyun #define DM_DIG_FA_TH0_LPS 4 /* @-> 4 lps */ 81*4882a593Smuzhiyun #define DM_DIG_FA_TH1_LPS 15 /* @-> 15 lps */ 82*4882a593Smuzhiyun #define DM_DIG_FA_TH2_LPS 30 /* @-> 30 lps */ 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun #define RSSI_OFFSET_DIG_LPS 5 85*4882a593Smuzhiyun #define DIG_RECORD_NUM 4 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun /*==== [FA duration] =======================================*/ 88*4882a593Smuzhiyun /*[PHYDM-406]*/ 89*4882a593Smuzhiyun #define OFDM_FA_EXP_DURATION 12 /*us*/ 90*4882a593Smuzhiyun #define CCK_FA_EXP_DURATION 175 /*us*/ 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun /*@--------------------Enum-----------------------------------*/ 93*4882a593Smuzhiyun enum phydm_dig_mode { 94*4882a593Smuzhiyun PHYDM_DIG_PERFORAMNCE_MODE = 0, 95*4882a593Smuzhiyun PHYDM_DIG_COVERAGE_MODE = 1, 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun enum phydm_dig_trend { 99*4882a593Smuzhiyun DIG_STABLE = 0, 100*4882a593Smuzhiyun DIG_INCREASING = 1, 101*4882a593Smuzhiyun DIG_DECREASING = 2 102*4882a593Smuzhiyun }; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun enum phydm_fw_dig_mode_e { 105*4882a593Smuzhiyun DIG_PERFORMANCE_MODE = 0, 106*4882a593Smuzhiyun DIG_COVERAGE_MODE = 1, 107*4882a593Smuzhiyun DIG_LPS_MODE = 2 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun #ifdef PHYDM_TDMA_DIG_SUPPORT 111*4882a593Smuzhiyun enum upd_type { 112*4882a593Smuzhiyun ENABLE_TDMA, 113*4882a593Smuzhiyun MODE_DECISION 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun enum tdma_opmode { 117*4882a593Smuzhiyun MODE_PERFORMANCE = 1, 118*4882a593Smuzhiyun MODE_COVERAGE = 2 119*4882a593Smuzhiyun }; 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun #ifdef IS_USE_NEW_TDMA 122*4882a593Smuzhiyun enum tdma_dig_timer { 123*4882a593Smuzhiyun INIT_TDMA_DIG_TIMMER, 124*4882a593Smuzhiyun CANCEL_TDMA_DIG_TIMMER, 125*4882a593Smuzhiyun RELEASE_TDMA_DIG_TIMMER 126*4882a593Smuzhiyun }; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun enum tdma_dig_state { 129*4882a593Smuzhiyun TDMA_DIG_LOW_STATE = 0, 130*4882a593Smuzhiyun TDMA_DIG_HIGH_STATE = 1, 131*4882a593Smuzhiyun NORMAL_DIG = 2 132*4882a593Smuzhiyun }; 133*4882a593Smuzhiyun #endif 134*4882a593Smuzhiyun #endif 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun /*@--------------------Define Struct-----------------------------------*/ 137*4882a593Smuzhiyun #ifdef CFG_DIG_DAMPING_CHK 138*4882a593Smuzhiyun struct phydm_dig_recorder_strcut { 139*4882a593Smuzhiyun u8 igi_bitmap; /*@Don't add any new parameter before this*/ 140*4882a593Smuzhiyun u8 igi_history[DIG_RECORD_NUM]; 141*4882a593Smuzhiyun u32 fa_history[DIG_RECORD_NUM]; 142*4882a593Smuzhiyun u8 damping_limit_en; 143*4882a593Smuzhiyun u8 damping_limit_val; /*@Limit IGI_dyn_min*/ 144*4882a593Smuzhiyun u32 limit_time; 145*4882a593Smuzhiyun u8 limit_rssi; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun #endif 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun struct phydm_mcc_dig { 150*4882a593Smuzhiyun u8 mcc_rssi_A; 151*4882a593Smuzhiyun u8 mcc_rssi_B; 152*4882a593Smuzhiyun }; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun struct phydm_dig_struct { 155*4882a593Smuzhiyun #ifdef CFG_DIG_DAMPING_CHK 156*4882a593Smuzhiyun struct phydm_dig_recorder_strcut dig_recorder_t; 157*4882a593Smuzhiyun u8 dig_dl_en; /*@damping limit function enable*/ 158*4882a593Smuzhiyun #endif 159*4882a593Smuzhiyun boolean fw_dig_enable; 160*4882a593Smuzhiyun boolean is_dbg_fa_th; 161*4882a593Smuzhiyun u8 cur_ig_value; 162*4882a593Smuzhiyun boolean igi_dyn_up_hit; 163*4882a593Smuzhiyun u8 igi_trend; 164*4882a593Smuzhiyun u32 rvrt_val; /*all rvrt_val for pause API must set to u32*/ 165*4882a593Smuzhiyun u8 igi_backup; 166*4882a593Smuzhiyun u8 rx_gain_range_max; /*@dig_dynamic_max*/ 167*4882a593Smuzhiyun u8 rx_gain_range_min; /*@dig_dynamic_min*/ 168*4882a593Smuzhiyun u8 dm_dig_max; /*@Absolutly upper bound*/ 169*4882a593Smuzhiyun u8 dm_dig_min; /*@Absolutly lower bound*/ 170*4882a593Smuzhiyun u8 dig_max_of_min; /*@Absolutly max of min*/ 171*4882a593Smuzhiyun u32 ant_div_rssi_max; 172*4882a593Smuzhiyun u8 *is_p2p_in_process; 173*4882a593Smuzhiyun u32 fa_th[3]; 174*4882a593Smuzhiyun u32 dm_dig_fa_th1; 175*4882a593Smuzhiyun u8 fa_source; 176*4882a593Smuzhiyun #if (RTL8822B_SUPPORT || RTL8197F_SUPPORT || RTL8821C_SUPPORT ||\ 177*4882a593Smuzhiyun RTL8198F_SUPPORT || RTL8192F_SUPPORT || RTL8195B_SUPPORT ||\ 178*4882a593Smuzhiyun RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8721D_SUPPORT ||\ 179*4882a593Smuzhiyun RTL8710C_SUPPORT || RTL8812F_SUPPORT || RTL8197G_SUPPORT ||\ 180*4882a593Smuzhiyun RTL8723F_SUPPORT) 181*4882a593Smuzhiyun u8 rf_gain_idx; 182*4882a593Smuzhiyun u8 agc_table_idx; 183*4882a593Smuzhiyun u8 big_jump_lmt[16]; 184*4882a593Smuzhiyun u8 enable_adjust_big_jump:1; 185*4882a593Smuzhiyun u8 big_jump_step1:3; 186*4882a593Smuzhiyun u8 big_jump_step2:2; 187*4882a593Smuzhiyun u8 big_jump_step3:2; 188*4882a593Smuzhiyun #endif 189*4882a593Smuzhiyun u8 upcheck_init_val; 190*4882a593Smuzhiyun u8 lv0_ratio_reciprocal; 191*4882a593Smuzhiyun u8 lv1_ratio_reciprocal; 192*4882a593Smuzhiyun #ifdef PHYDM_TDMA_DIG_SUPPORT 193*4882a593Smuzhiyun u8 cur_ig_value_tdma; 194*4882a593Smuzhiyun u8 low_ig_value; 195*4882a593Smuzhiyun u8 tdma_dig_state; /*@To distinguish which state is now.(L-sate or H-state)*/ 196*4882a593Smuzhiyun u8 tdma_dig_cnt; /*@for phydm_tdma_dig_timer_check use*/ 197*4882a593Smuzhiyun u8 pre_tdma_dig_cnt; 198*4882a593Smuzhiyun u8 sec_factor; 199*4882a593Smuzhiyun u32 cur_timestamp; 200*4882a593Smuzhiyun u32 pre_timestamp; 201*4882a593Smuzhiyun u32 fa_start_timestamp; 202*4882a593Smuzhiyun u32 fa_end_timestamp; 203*4882a593Smuzhiyun u32 fa_acc_1sec_timestamp; 204*4882a593Smuzhiyun #ifdef IS_USE_NEW_TDMA 205*4882a593Smuzhiyun u8 tdma_dig_block_cnt;/*@for 1 second dump indicator use*/ 206*4882a593Smuzhiyun /*@dynamic upper bound for L/H state*/ 207*4882a593Smuzhiyun u8 tdma_rx_gain_max[DIG_NUM_OF_TDMA_STATES]; 208*4882a593Smuzhiyun /*@dynamic lower bound for L/H state*/ 209*4882a593Smuzhiyun u8 tdma_rx_gain_min[DIG_NUM_OF_TDMA_STATES]; 210*4882a593Smuzhiyun /*To distinguish current state(L-sate or H-state)*/ 211*4882a593Smuzhiyun #endif 212*4882a593Smuzhiyun u8 tdma_force_l_igi; 213*4882a593Smuzhiyun u8 tdma_force_h_igi; 214*4882a593Smuzhiyun #endif 215*4882a593Smuzhiyun }; 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun struct phydm_fa_struct { 218*4882a593Smuzhiyun u32 cnt_parity_fail; 219*4882a593Smuzhiyun u32 cnt_rate_illegal; 220*4882a593Smuzhiyun u32 cnt_crc8_fail; 221*4882a593Smuzhiyun u32 cnt_crc8_fail_vhta; 222*4882a593Smuzhiyun u32 cnt_crc8_fail_vhtb; 223*4882a593Smuzhiyun u32 cnt_mcs_fail; 224*4882a593Smuzhiyun u32 cnt_mcs_fail_vht; 225*4882a593Smuzhiyun u32 cnt_ofdm_fail; 226*4882a593Smuzhiyun u32 cnt_ofdm_fail_pre; /* @For RTL8881A */ 227*4882a593Smuzhiyun u32 cnt_cck_fail; 228*4882a593Smuzhiyun u32 cnt_all; 229*4882a593Smuzhiyun u32 cnt_all_accumulated; 230*4882a593Smuzhiyun u32 cnt_all_pre; 231*4882a593Smuzhiyun u32 cnt_fast_fsync; 232*4882a593Smuzhiyun u32 cnt_sb_search_fail; 233*4882a593Smuzhiyun u32 cnt_ofdm_cca; 234*4882a593Smuzhiyun u32 cnt_cck_cca; 235*4882a593Smuzhiyun u32 cnt_cca_all; 236*4882a593Smuzhiyun u32 cnt_bw_usc; 237*4882a593Smuzhiyun u32 cnt_bw_lsc; 238*4882a593Smuzhiyun u32 cnt_cck_crc32_error; 239*4882a593Smuzhiyun u32 cnt_cck_crc32_ok; 240*4882a593Smuzhiyun u32 cnt_ofdm_crc32_error; 241*4882a593Smuzhiyun u32 cnt_ofdm_crc32_ok; 242*4882a593Smuzhiyun u32 cnt_ht_crc32_error; 243*4882a593Smuzhiyun u32 cnt_ht_crc32_ok; 244*4882a593Smuzhiyun u32 cnt_ht_crc32_error_agg; 245*4882a593Smuzhiyun u32 cnt_ht_crc32_ok_agg; 246*4882a593Smuzhiyun u32 cnt_vht_crc32_error; 247*4882a593Smuzhiyun u32 cnt_vht_crc32_ok; 248*4882a593Smuzhiyun u32 cnt_crc32_error_all; 249*4882a593Smuzhiyun u32 cnt_crc32_ok_all; 250*4882a593Smuzhiyun u32 time_fa_all; 251*4882a593Smuzhiyun u32 time_fa_exp; /*FA duration, [PHYDM-406]*/ 252*4882a593Smuzhiyun u32 time_fa_ifs_clm; /*FA duration, [PHYDM-406]*/ 253*4882a593Smuzhiyun u32 time_fa_fahm; /*FA duration, [PHYDM-406]*/ 254*4882a593Smuzhiyun boolean cck_block_enable; 255*4882a593Smuzhiyun boolean ofdm_block_enable; 256*4882a593Smuzhiyun u32 dbg_port0; 257*4882a593Smuzhiyun boolean edcca_flag; 258*4882a593Smuzhiyun u8 ofdm2_rate_idx; 259*4882a593Smuzhiyun u32 cnt_ofdm2_crc32_error; 260*4882a593Smuzhiyun u32 cnt_ofdm2_crc32_ok; 261*4882a593Smuzhiyun u8 ofdm2_pcr; 262*4882a593Smuzhiyun u8 ht2_rate_idx; 263*4882a593Smuzhiyun u32 cnt_ht2_crc32_error; 264*4882a593Smuzhiyun u32 cnt_ht2_crc32_ok; 265*4882a593Smuzhiyun u8 ht2_pcr; 266*4882a593Smuzhiyun u8 vht2_rate_idx; 267*4882a593Smuzhiyun u32 cnt_vht2_crc32_error; 268*4882a593Smuzhiyun u32 cnt_vht2_crc32_ok; 269*4882a593Smuzhiyun u8 vht2_pcr; 270*4882a593Smuzhiyun u32 cnt_cck_txen; 271*4882a593Smuzhiyun u32 cnt_cck_txon; 272*4882a593Smuzhiyun u32 cnt_ofdm_txen; 273*4882a593Smuzhiyun u32 cnt_ofdm_txon; 274*4882a593Smuzhiyun }; 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun #ifdef PHYDM_TDMA_DIG_SUPPORT 277*4882a593Smuzhiyun struct phydm_fa_acc_struct { 278*4882a593Smuzhiyun u32 cnt_parity_fail; 279*4882a593Smuzhiyun u32 cnt_rate_illegal; 280*4882a593Smuzhiyun u32 cnt_crc8_fail; 281*4882a593Smuzhiyun u32 cnt_mcs_fail; 282*4882a593Smuzhiyun u32 cnt_ofdm_fail; 283*4882a593Smuzhiyun u32 cnt_ofdm_fail_pre; /*@For RTL8881A*/ 284*4882a593Smuzhiyun u32 cnt_cck_fail; 285*4882a593Smuzhiyun u32 cnt_all; 286*4882a593Smuzhiyun u32 cnt_all_pre; 287*4882a593Smuzhiyun u32 cnt_fast_fsync; 288*4882a593Smuzhiyun u32 cnt_sb_search_fail; 289*4882a593Smuzhiyun u32 cnt_ofdm_cca; 290*4882a593Smuzhiyun u32 cnt_cck_cca; 291*4882a593Smuzhiyun u32 cnt_cca_all; 292*4882a593Smuzhiyun u32 cnt_cck_crc32_error; 293*4882a593Smuzhiyun u32 cnt_cck_crc32_ok; 294*4882a593Smuzhiyun u32 cnt_ofdm_crc32_error; 295*4882a593Smuzhiyun u32 cnt_ofdm_crc32_ok; 296*4882a593Smuzhiyun u32 cnt_ht_crc32_error; 297*4882a593Smuzhiyun u32 cnt_ht_crc32_ok; 298*4882a593Smuzhiyun u32 cnt_vht_crc32_error; 299*4882a593Smuzhiyun u32 cnt_vht_crc32_ok; 300*4882a593Smuzhiyun u32 cnt_crc32_error_all; 301*4882a593Smuzhiyun u32 cnt_crc32_ok_all; 302*4882a593Smuzhiyun u32 cnt_all_1sec; 303*4882a593Smuzhiyun u32 cnt_cca_all_1sec; 304*4882a593Smuzhiyun u32 cnt_cck_fail_1sec; 305*4882a593Smuzhiyun }; 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun #endif /*@#ifdef PHYDM_TDMA_DIG_SUPPORT*/ 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun /*@--------------------Function declaration-----------------------------*/ 310*4882a593Smuzhiyun void phydm_write_dig_reg(void *dm_void, u8 igi); 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun void odm_write_dig(void *dm_void, u8 current_igi); 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun u8 phydm_get_igi(void *dm_void, enum bb_path path); 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun void phydm_set_dig_val(void *dm_void, u32 *val_buf, u8 val_len); 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun void odm_pause_dig(void *dm_void, enum phydm_pause_type pause_type, 319*4882a593Smuzhiyun enum phydm_pause_level pause_level, u8 igi_value); 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun #ifdef PHYDM_HW_IGI 322*4882a593Smuzhiyun void phydm_hwigi(void *dm_void); 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun void phydm_hwigi_dbg(void *dm_void, char input[][16], u32 *_used, 325*4882a593Smuzhiyun char *output, u32 *_out_len); 326*4882a593Smuzhiyun #endif 327*4882a593Smuzhiyun 328*4882a593Smuzhiyun void phydm_dig_init(void *dm_void); 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun void phydm_dig(void *dm_void); 331*4882a593Smuzhiyun 332*4882a593Smuzhiyun void phydm_dig_lps_32k(void *dm_void); 333*4882a593Smuzhiyun 334*4882a593Smuzhiyun void phydm_dig_by_rssi_lps(void *dm_void); 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun void phydm_get_dig_coverage(void *dm_void, u8 *max, u8 *min); 337*4882a593Smuzhiyun 338*4882a593Smuzhiyun u8 phydm_get_igi_for_target_pin_scan(void *dm_void, u8 rssi); 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun void phydm_false_alarm_counter_statistics(void *dm_void); 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun u32 phydm_get_edcca_report(void * dm_void); 343*4882a593Smuzhiyun 344*4882a593Smuzhiyun #ifdef PHYDM_TDMA_DIG_SUPPORT 345*4882a593Smuzhiyun void phydm_set_tdma_dig_timer(void *dm_void); 346*4882a593Smuzhiyun 347*4882a593Smuzhiyun void phydm_tdma_dig_timer_check(void *dm_void); 348*4882a593Smuzhiyun 349*4882a593Smuzhiyun void phydm_tdma_dig(void *dm_void); 350*4882a593Smuzhiyun 351*4882a593Smuzhiyun void phydm_tdma_false_alarm_counter_check(void *dm_void); 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun void phydm_tdma_dig_add_interrupt_mask_handler(void *dm_void); 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun void phydm_false_alarm_counter_reset(void *dm_void); 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun void phydm_false_alarm_counter_acc(void *dm_void, boolean rssi_dump_en); 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun void phydm_false_alarm_counter_acc_reset(void *dm_void); 360*4882a593Smuzhiyun 361*4882a593Smuzhiyun void phydm_tdma_dig_para_upd(void *dm_void, enum upd_type type, u8 input); 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun #ifdef IS_USE_NEW_TDMA 364*4882a593Smuzhiyun void phydm_tdma_dig_timers(void *dm_void, u8 state); 365*4882a593Smuzhiyun 366*4882a593Smuzhiyun void phydm_tdma_dig_cbk(void *dm_void); 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun void phydm_tdma_dig_workitem_callback(void *dm_void); 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun void phydm_tdma_fa_cnt_chk(void *dm_void); 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun void phydm_tdma_low_dig(void *dm_void); 373*4882a593Smuzhiyun 374*4882a593Smuzhiyun void phydm_tdma_high_dig(void *dm_void); 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun void phydm_fa_cnt_acc(void *dm_void, boolean rssi_dump_en, 377*4882a593Smuzhiyun u8 cur_tdma_dig_state); 378*4882a593Smuzhiyun #endif /*@#ifdef IS_USE_NEW_TDMA*/ 379*4882a593Smuzhiyun #endif /*@#ifdef PHYDM_TDMA_DIG_SUPPORT*/ 380*4882a593Smuzhiyun 381*4882a593Smuzhiyun void phydm_set_ofdm_agc_tab(void *dm_void, u8 tab_sel); 382*4882a593Smuzhiyun 383*4882a593Smuzhiyun void phydm_dig_debug(void *dm_void, char input[][16], u32 *_used, char *output, 384*4882a593Smuzhiyun u32 *_out_len); 385*4882a593Smuzhiyun 386*4882a593Smuzhiyun void phydm_fill_fw_dig_info(void *dm_void, boolean *enable, 387*4882a593Smuzhiyun u8 *para4, u8 *para8); 388*4882a593Smuzhiyun 389*4882a593Smuzhiyun void phydm_crc32_cnt_dbg(void *dm_void, char input[][16], u32 *_used, 390*4882a593Smuzhiyun char *output, u32 *_out_len); 391*4882a593Smuzhiyun 392*4882a593Smuzhiyun #ifdef CONFIG_MCC_DM 393*4882a593Smuzhiyun void phydm_mcc_igi_cal(void *dm_void); 394*4882a593Smuzhiyun #endif 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun #endif 397