1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
4 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
6 ******************************************************************************/
11 typedef struct _Dynamic_Initial_Gain_Threshold_ {
16 u8 Dig_Ext_Port_Stage;
24 u8 CurSTAConnectState;
25 u8 PreSTAConnectState;
26 u8 CurMultiSTAConnectState;
30 u8 BackupIGValue; /* MP DIG */
35 s8 BackoffVal_range_max;
36 s8 BackoffVal_range_min;
59 u8 *pbP2pLinkInProgress;
62 typedef struct false_ALARM_STATISTICS {
68 u32 Cnt_Ofdm_fail_pre; /* For RTL8881A */
72 u32 Cnt_SB_Search_fail;
76 u32 Cnt_BW_USC; /* Gary */
77 u32 Cnt_BW_LSC; /* Gary */
78 } false_ALARM_STATISTICS, *Pfalse_ALARM_STATISTICS;
80 typedef enum tag_Dynamic_Init_Gain_Operation_Type_Definition {
81 DIG_TYPE_THRESH_HIGH = 0,
82 DIG_TYPE_THRESH_LOW = 1,
84 DIG_TYPE_RX_GAIN_MIN = 3,
85 DIG_TYPE_RX_GAIN_MAX = 4,
91 typedef enum tag_ODM_PauseDIG_Type {
96 typedef enum tag_ODM_PauseCCKPD_Type {
97 ODM_PAUSE_CCKPD = BIT0,
98 ODM_RESUME_CCKPD = BIT1
99 } ODM_Pause_CCKPD_TYPE;
101 #define DM_DIG_THRESH_HIGH 40
102 #define DM_DIG_THRESH_LOW 35
104 #define DMfalseALARM_THRESH_LOW 400
105 #define DMfalseALARM_THRESH_HIGH 1000
107 #define DM_DIG_MAX_NIC 0x3e
108 #define DM_DIG_MIN_NIC 0x1e /* 0x22//0x1c */
109 #define DM_DIG_MAX_OF_MIN_NIC 0x3e
111 #define DM_DIG_MAX_AP 0x3e
112 #define DM_DIG_MIN_AP 0x1c
113 #define DM_DIG_MAX_OF_MIN 0x2A /* 0x32 */
114 #define DM_DIG_MIN_AP_DFS 0x20
116 #define DM_DIG_MAX_NIC_HP 0x46
117 #define DM_DIG_MIN_NIC_HP 0x2e
119 #define DM_DIG_MAX_AP_HP 0x42
120 #define DM_DIG_MIN_AP_HP 0x30
122 #define DM_DIG_FA_TH0 0x200/* 0x20 */
124 #define DM_DIG_FA_TH1 0x300
125 #define DM_DIG_FA_TH2 0x400
126 /* this is for 92d */
127 #define DM_DIG_FA_TH0_92D 0x100
128 #define DM_DIG_FA_TH1_92D 0x400
129 #define DM_DIG_FA_TH2_92D 0x600
131 #define DM_DIG_BACKOFF_MAX 12
132 #define DM_DIG_BACKOFF_MIN -4
133 #define DM_DIG_BACKOFF_DEFAULT 10
135 #define DM_DIG_FA_TH0_LPS 4 /* 4 in lps */
136 #define DM_DIG_FA_TH1_LPS 15 /* 15 lps */
137 #define DM_DIG_FA_TH2_LPS 30 /* 30 lps */
138 #define RSSI_OFFSET_DIG 0x05
140 void odm_NHMCounterStatisticsInit(void *pDM_VOID);
142 void odm_NHMCounterStatistics(void *pDM_VOID);
144 void odm_NHMBBInit(void *pDM_VOID);
146 void odm_NHMBB(void *pDM_VOID);
148 void odm_NHMCounterStatisticsReset(void *pDM_VOID);
150 void odm_GetNHMCounterStatistics(void *pDM_VOID);
152 void odm_SearchPwdBLowerBound(void *pDM_VOID, u8 IGI_target);
154 void odm_AdaptivityInit(void *pDM_VOID);
156 void odm_Adaptivity(void *pDM_VOID, u8 IGI);
158 void ODM_Write_DIG(void *pDM_VOID, u8 CurrentIGI);
160 void odm_PauseDIG(void *pDM_VOID, ODM_Pause_DIG_TYPE PauseType, u8 IGIValue);
162 void odm_DIGInit(void *pDM_VOID);
164 void odm_DIG(void *pDM_VOID);
166 void odm_DIGbyRSSI_LPS(void *pDM_VOID);
168 void odm_FalseAlarmCounterStatistics(void *pDM_VOID);
170 void odm_FAThresholdCheck(
179 u8 odm_ForbiddenIGICheck(void *pDM_VOID, u8 DIG_Dynamic_MIN, u8 CurrentIGI);
181 bool odm_DigAbort(void *pDM_VOID);
183 void odm_CCKPacketDetectionThresh(void *pDM_VOID);
185 void ODM_Write_CCK_CCA_Thres(void *pDM_VOID, u8 CurCCK_CCAThres);