xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/phydm_adaptivity.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 
2 /******************************************************************************
3  *
4  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of version 2 of the GNU General Public License as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13  * more details.
14  *
15  * You should have received a copy of the GNU General Public License along with
16  * this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18  *
19  *
20  ******************************************************************************/
21 
22 #ifndef	__PHYDMADAPTIVITY_H__
23 #define    __PHYDMADAPTIVITY_H__
24 
25 #define ADAPTIVITY_VERSION	"9.3.3"	/*20151230 changed by Kevin, modify 0x524[11] when adaptivity is enabled*/
26 
27 #define PwdBUpperBound	7
28 #define DFIRloss	5
29 
30 #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN))
31 typedef enum _tag_PhyDM_REGULATION_Type {
32 	REGULATION_FCC = 0,
33 	REGULATION_MKK = 1,
34 	REGULATION_ETSI = 2,
35 	REGULATION_WW = 3,
36 
37 	MAX_REGULATION_NUM = 4
38 } PhyDM_REGULATION_TYPE;
39 #endif
40 
41 typedef enum _PHYDM_ADAPTIVITY_Info_Definition {
42 	PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE = 0,
43 	PHYDM_ADAPINFO_DCBACKOFF,
44 	PHYDM_ADAPINFO_DYNAMICLINKADAPTIVITY,
45 	PHYDM_ADAPINFO_TH_L2H_INI,
46 	PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF,
47 	PHYDM_ADAPINFO_AP_NUM_TH
48 
49 } PHYDM_ADAPINFO_E;
50 
51 
52 
53 typedef enum tag_PhyDM_set_LNA {
54 	PhyDM_disable_LNA		= 0,
55 	PhyDM_enable_LNA		= 1,
56 } PhyDM_set_LNA;
57 
58 
59 typedef enum tag_PhyDM_TRx_MUX_Type
60 {
61 	PhyDM_SHUTDOWN			= 0,
62 	PhyDM_STANDBY_MODE		= 1,
63 	PhyDM_TX_MODE			= 2,
64 	PhyDM_RX_MODE			= 3
65 }PhyDM_Trx_MUX_Type;
66 
67 typedef enum tag_PhyDM_MACEDCCA_Type
68 {
69 	PhyDM_IGNORE_EDCCA			= 0,
70 	PhyDM_DONT_IGNORE_EDCCA	= 1
71 }PhyDM_MACEDCCA_Type;
72 
73 typedef struct _ADAPTIVITY_STATISTICS {
74 	s1Byte			TH_L2H_ini_backup;
75 	s1Byte			TH_EDCCA_HL_diff_backup;
76 	s1Byte			IGI_Base;
77 	u1Byte			IGI_target;
78 	u1Byte			NHMWait;
79 	s1Byte			H2L_lb;
80 	s1Byte			L2H_lb;
81 	BOOLEAN			bFirstLink;
82 	BOOLEAN			bCheck;
83 	BOOLEAN			DynamicLinkAdaptivity;
84 	u1Byte			APNumTH;
85 	u1Byte			AdajustIGILevel;
86 	BOOLEAN			AcsForAdaptivity;
87 	s1Byte			backupL2H;
88 	s1Byte			backupH2L;
89 	BOOLEAN			bStopEDCCA;
90 #if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
91 	RT_WORK_ITEM	phydm_pauseEDCCAWorkItem;
92 	RT_WORK_ITEM	phydm_resumeEDCCAWorkItem;
93 #endif
94 } ADAPTIVITY_STATISTICS, *PADAPTIVITY_STATISTICS;
95 
96 VOID
97 phydm_pauseEDCCA(
98 	IN	PVOID	pDM_VOID,
99 	IN	BOOLEAN	bPasueEDCCA
100 );
101 
102 VOID
103 Phydm_CheckAdaptivity(
104 	IN		PVOID			pDM_VOID
105 	);
106 
107 VOID
108 Phydm_CheckEnvironment(
109 	IN		PVOID					pDM_VOID
110 	);
111 
112 VOID
113 Phydm_NHMCounterStatisticsInit(
114 	IN		PVOID					pDM_VOID
115 	);
116 
117 VOID
118 Phydm_NHMCounterStatistics(
119 	IN		PVOID					pDM_VOID
120 	);
121 
122 VOID
123 Phydm_NHMCounterStatisticsReset(
124 	IN		PVOID			pDM_VOID
125 );
126 
127 VOID
128 Phydm_GetNHMCounterStatistics(
129 	IN		PVOID			pDM_VOID
130 );
131 
132 VOID
133 Phydm_MACEDCCAState(
134 	IN	PVOID					pDM_VOID,
135 	IN	PhyDM_MACEDCCA_Type		State
136 );
137 
138 VOID
139 Phydm_SetEDCCAThreshold(
140 	IN		PVOID		pDM_VOID,
141 	IN		s1Byte		H2L,
142 	IN		s1Byte		L2H
143 );
144 
145 VOID
146 Phydm_SetTRxMux(
147 	IN		PVOID			pDM_VOID,
148 	IN		PhyDM_Trx_MUX_Type			txMode,
149 	IN		PhyDM_Trx_MUX_Type			rxMode
150 );
151 
152 BOOLEAN
153 Phydm_CalNHMcnt(
154 	IN		PVOID		pDM_VOID
155 );
156 
157 VOID
158 Phydm_SearchPwdBLowerBound(
159 	IN		PVOID					pDM_VOID
160 );
161 
162 VOID
163 phydm_adaptivityInfoInit(
164 	IN	PVOID			pDM_VOID,
165 	IN	PHYDM_ADAPINFO_E	CmnInfo,
166 	IN	u4Byte				Value
167 	);
168 
169 VOID
170 Phydm_AdaptivityInit(
171 	IN		PVOID					pDM_VOID
172 	);
173 
174 VOID
175 Phydm_Adaptivity(
176 	IN		PVOID					pDM_VOID,
177 	IN		u1Byte					IGI
178 	);
179 
180 VOID
181 phydm_setEDCCAThresholdAPI(
182 	IN	PVOID	pDM_VOID,
183 	IN	u1Byte	IGI
184 );
185 
186 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
187 VOID
188 Phydm_DisableEDCCA(
189 	IN		PVOID					pDM_VOID
190 );
191 
192 VOID
193 Phydm_DynamicEDCCA(
194 	IN		PVOID					pDM_VOID
195 );
196 
197 VOID
198 Phydm_AdaptivityBSOD(
199 	IN		PVOID					pDM_VOID
200 );
201 
202 #endif
203 
204 VOID
205 phydm_pauseEDCCA_WorkItemCallback(
206 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
207 	IN	PADAPTER		Adapter
208 #else
209 	IN PVOID			pDM_VOID
210 #endif
211 	);
212 
213 VOID
214 phydm_resumeEDCCA_WorkItemCallback(
215 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
216 	IN	PADAPTER		Adapter
217 #else
218 	IN PVOID			pDM_VOID
219 #endif
220 	);
221 
222 #endif
223