repo init
[linux-rt-nao.git] / drivers / staging / rt2860 / rt_ate.h
blob48aa70d2f010969fdb4b38861cbd5cd93927c7a7
1 /*
2 *************************************************************************
3 * Ralink Tech Inc.
4 * 5F., No.36, Taiyuan St., Jhubei City,
5 * Hsinchu County 302,
6 * Taiwan, R.O.C.
8 * (c) Copyright 2002-2007, Ralink Technology, Inc.
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 * This program is distributed in the hope that it will be useful, *
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
18 * GNU General Public License for more details. *
19 * *
20 * You should have received a copy of the GNU General Public License *
21 * along with this program; if not, write to the *
22 * Free Software Foundation, Inc., *
23 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
24 * *
25 *************************************************************************
28 #ifndef __ATE_H__
29 #define __ATE_H__
31 #ifndef UCOS
32 #define ate_print printk
33 #define ATEDBGPRINT DBGPRINT
34 #ifdef RT2860
35 #define EEPROM_SIZE 0x200
36 #ifdef CONFIG_STA_SUPPORT
37 #define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2860STA/e2p.bin"
38 #endif // CONFIG_STA_SUPPORT //
39 #endif // RT2860 //
41 #else // !UCOS //
42 #define fATE_LOAD_EEPROM 0x0C43
43 #ifdef CONFIG_PRINTK
44 extern INT ConsoleResponse(IN PUCHAR buff);
45 extern int (*remote_display)(char *);
46 extern void puts (const char *s);
48 /* specificly defined to redirect and show ate-related messages to host. */
49 /* Try to define ate_print as a macro. */
50 #define ate_print(fmt, args...) \
51 do{ int (*org_remote_display)(char *) = NULL; \
52 org_remote_display = remote_display;\
53 /* Save original "remote_display" */\
54 remote_display = (int (*)(char *))ConsoleResponse; \
55 printk(fmt, ## args); \
56 /* Restore the remote_display function pointer */ \
57 remote_display = org_remote_display; }while(0)
59 #define ATEDBGPRINT(Level, Fmt) \
60 { \
61 if ((Level) <= RTDebugLevel) \
62 { \
63 ate_print Fmt; \
64 } \
66 #endif // CONFIG_PRINTK //
67 #endif // !UCOS //
69 #define ATE_ON(_p) (((_p)->ate.Mode) != ATE_STOP)
71 /* RT2880_iNIC will define "RT2860". */
72 #ifdef RT2860
73 #define ATE_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV) \
74 { \
75 BBP_CSR_CFG_STRUC BbpCsr; \
76 int i, k; \
77 for (i=0; i<MAX_BUSY_COUNT; i++) \
78 { \
79 RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
80 if (BbpCsr.field.Busy == BUSY) \
81 { \
82 continue; \
83 } \
84 BbpCsr.word = 0; \
85 BbpCsr.field.fRead = 1; \
86 BbpCsr.field.BBP_RW_MODE = 1; \
87 BbpCsr.field.Busy = 1; \
88 BbpCsr.field.RegNum = _I; \
89 RTMP_IO_WRITE32(_A, BBP_CSR_CFG, BbpCsr.word); \
90 for (k=0; k<MAX_BUSY_COUNT; k++) \
91 { \
92 RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
93 if (BbpCsr.field.Busy == IDLE) \
94 break; \
95 } \
96 if ((BbpCsr.field.Busy == IDLE) && \
97 (BbpCsr.field.RegNum == _I)) \
98 { \
99 *(_pV) = (UCHAR)BbpCsr.field.Value; \
100 break; \
103 if (BbpCsr.field.Busy == BUSY) \
105 ATEDBGPRINT(RT_DEBUG_ERROR, ("BBP read R%d fail\n", _I)); \
106 *(_pV) = (_A)->BbpWriteLatch[_I]; \
110 #define ATE_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V) \
112 BBP_CSR_CFG_STRUC BbpCsr; \
113 int BusyCnt; \
114 for (BusyCnt=0; BusyCnt<MAX_BUSY_COUNT; BusyCnt++) \
116 RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
117 if (BbpCsr.field.Busy == BUSY) \
118 continue; \
119 BbpCsr.word = 0; \
120 BbpCsr.field.fRead = 0; \
121 BbpCsr.field.BBP_RW_MODE = 1; \
122 BbpCsr.field.Busy = 1; \
123 BbpCsr.field.Value = _V; \
124 BbpCsr.field.RegNum = _I; \
125 RTMP_IO_WRITE32(_A, BBP_CSR_CFG, BbpCsr.word); \
126 (_A)->BbpWriteLatch[_I] = _V; \
127 break; \
129 if (BusyCnt == MAX_BUSY_COUNT) \
131 ATEDBGPRINT(RT_DEBUG_ERROR, ("BBP write R%d fail\n", _I)); \
134 #endif // RT2860 //
136 /* RT2880_iNIC will define RT2860. */
137 #ifdef RT2860
138 #define EEPROM_SIZE 0x200
139 /* iNIC has its own EEPROM_BIN_FILE_NAME */
140 #ifndef UCOS
141 #ifdef CONFIG_STA_SUPPORT
142 #define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2860STA/e2p.bin"
143 #endif // CONFIG_STA_SUPPORT //
144 #endif // !UCOS //
145 #endif // RT2860 //
149 VOID rt_ee_read_all(
150 IN PRTMP_ADAPTER pAd,
151 OUT USHORT *Data);
154 VOID rt_ee_write_all(
155 IN PRTMP_ADAPTER pAd,
156 IN USHORT *Data);
158 INT Set_ATE_Proc(
159 IN PRTMP_ADAPTER pAd,
160 IN PUCHAR arg);
162 INT Set_ATE_DA_Proc(
163 IN PRTMP_ADAPTER pAd,
164 IN PUCHAR arg);
166 INT Set_ATE_SA_Proc(
167 IN PRTMP_ADAPTER pAd,
168 IN PUCHAR arg);
170 INT Set_ATE_BSSID_Proc(
171 IN PRTMP_ADAPTER pAd,
172 IN PUCHAR arg);
174 INT Set_ATE_CHANNEL_Proc(
175 IN PRTMP_ADAPTER pAd,
176 IN PUCHAR arg);
178 INT Set_ATE_TX_POWER0_Proc(
179 IN PRTMP_ADAPTER pAd,
180 IN PUCHAR arg);
182 INT Set_ATE_TX_POWER1_Proc(
183 IN PRTMP_ADAPTER pAd,
184 IN PUCHAR arg);
186 INT Set_ATE_TX_Antenna_Proc(
187 IN PRTMP_ADAPTER pAd,
188 IN PUCHAR arg);
190 INT Set_ATE_RX_Antenna_Proc(
191 IN PRTMP_ADAPTER pAd,
192 IN PUCHAR arg);
194 INT Set_ATE_TX_FREQOFFSET_Proc(
195 IN PRTMP_ADAPTER pAd,
196 IN PUCHAR arg);
198 INT Set_ATE_TX_BW_Proc(
199 IN PRTMP_ADAPTER pAd,
200 IN PUCHAR arg);
202 INT Set_ATE_TX_LENGTH_Proc(
203 IN PRTMP_ADAPTER pAd,
204 IN PUCHAR arg);
206 INT Set_ATE_TX_COUNT_Proc(
207 IN PRTMP_ADAPTER pAd,
208 IN PUCHAR arg);
210 INT Set_ATE_TX_MCS_Proc(
211 IN PRTMP_ADAPTER pAd,
212 IN PUCHAR arg);
214 INT Set_ATE_TX_MODE_Proc(
215 IN PRTMP_ADAPTER pAd,
216 IN PUCHAR arg);
218 INT Set_ATE_TX_GI_Proc(
219 IN PRTMP_ADAPTER pAd,
220 IN PUCHAR arg);
223 INT Set_ATE_RX_FER_Proc(
224 IN PRTMP_ADAPTER pAd,
225 IN PUCHAR arg);
227 INT Set_ATE_Read_RF_Proc(
228 IN PRTMP_ADAPTER pAd,
229 IN PUCHAR arg);
231 INT Set_ATE_Write_RF1_Proc(
232 IN PRTMP_ADAPTER pAd,
233 IN PUCHAR arg);
235 INT Set_ATE_Write_RF2_Proc(
236 IN PRTMP_ADAPTER pAd,
237 IN PUCHAR arg);
239 INT Set_ATE_Write_RF3_Proc(
240 IN PRTMP_ADAPTER pAd,
241 IN PUCHAR arg);
243 INT Set_ATE_Write_RF4_Proc(
244 IN PRTMP_ADAPTER pAd,
245 IN PUCHAR arg);
247 INT Set_ATE_Load_E2P_Proc(
248 IN PRTMP_ADAPTER pAd,
249 IN PUCHAR arg);
251 INT Set_ATE_Read_E2P_Proc(
252 IN PRTMP_ADAPTER pAd,
253 IN PUCHAR arg);
255 INT Set_ATE_Show_Proc(
256 IN PRTMP_ADAPTER pAd,
257 IN PUCHAR arg);
259 INT Set_ATE_Help_Proc(
260 IN PRTMP_ADAPTER pAd,
261 IN PUCHAR arg);
263 #ifdef RALINK_ATE
264 #ifdef RALINK_28xx_QA
265 VOID ATE_QA_Statistics(
266 IN PRTMP_ADAPTER pAd,
267 IN PRXWI_STRUC pRxWI,
268 IN PRT28XX_RXD_STRUC p28xxRxD,
269 IN PHEADER_802_11 pHeader);
271 VOID RtmpDoAte(
272 IN PRTMP_ADAPTER pAdapter,
273 IN struct iwreq *wrq);
275 VOID BubbleSort(
276 IN INT32 n,
277 IN INT32 a[]);
279 VOID CalNoiseLevel(
280 IN PRTMP_ADAPTER pAdapter,
281 IN UCHAR channel,
282 OUT INT32 buffer[3][10]);
284 BOOLEAN SyncTxRxConfig(
285 IN PRTMP_ADAPTER pAdapter,
286 IN USHORT offset,
287 IN UCHAR value);
289 #if 0
290 INT Set_TxStart_Proc(
291 IN PRTMP_ADAPTER pAd,
292 IN PUCHAR arg);
293 #endif // 0 //
295 INT Set_TxStop_Proc(
296 IN PRTMP_ADAPTER pAd,
297 IN PUCHAR arg);
299 INT Set_RxStop_Proc(
300 IN PRTMP_ADAPTER pAd,
301 IN PUCHAR arg);
303 #if 0
304 INT Set_EERead_Proc(
305 IN PRTMP_ADAPTER pAd,
306 IN PUCHAR arg);
308 INT Set_EEWrite_Proc(
309 IN PRTMP_ADAPTER pAd,
310 IN PUCHAR arg);
312 INT Set_BBPRead_Proc(
313 IN PRTMP_ADAPTER pAd,
314 IN PUCHAR arg);
316 INT Set_BBPWrite_Proc(
317 IN PRTMP_ADAPTER pAd,
318 IN PUCHAR arg);
320 INT Set_RFWrite_Proc(
321 IN PRTMP_ADAPTER pAd,
322 IN PUCHAR arg);
323 #endif // end of #if 0 //
324 #endif // RALINK_28xx_QA //
325 #endif // RALINK_ATE //
327 VOID ATEAsicSwitchChannel(
328 IN PRTMP_ADAPTER pAd);
330 VOID ATEAsicAdjustTxPower(
331 IN PRTMP_ADAPTER pAd);
333 VOID ATEDisableAsicProtect(
334 IN PRTMP_ADAPTER pAd);
336 CHAR ATEConvertToRssi(
337 IN PRTMP_ADAPTER pAd,
338 IN CHAR Rssi,
339 IN UCHAR RssiNumber);
341 VOID ATESampleRssi(
342 IN PRTMP_ADAPTER pAd,
343 IN PRXWI_STRUC pRxWI);
346 #ifdef CONFIG_STA_SUPPORT
347 VOID RTMPStationStop(
348 IN PRTMP_ADAPTER pAd);
350 VOID RTMPStationStart(
351 IN PRTMP_ADAPTER pAd);
352 #endif // CONFIG_STA_SUPPORT //
353 #endif // __ATE_H__ //