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