blob: b618ce3599ac65a30b7921588be09a9c14618332 [file] [log] [blame]
Greg Kroah-Hartmanc55519f2008-12-17 17:04:23 -08001/*
2 *************************************************************************
3 * Ralink Tech Inc.
4 * 5F., No.36, Taiyuan St., Jhubei City,
5 * Hsinchu County 302,
6 * Taiwan, R.O.C.
7 *
8 * (c) Copyright 2002-2007, Ralink Technology, Inc.
9 *
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 *************************************************************************
26 */
27
28#ifndef __ATE_H__
29#define __ATE_H__
30
31#ifndef UCOS
32#define ate_print printk
33#define ATEDBGPRINT DBGPRINT
34
35#ifdef RT2870
36#define EEPROM_SIZE 0x400
37#ifdef CONFIG_STA_SUPPORT
38#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2870STA/e2p.bin"
39#endif // CONFIG_STA_SUPPORT //
40#endif // RT2870 //
41#else // !UCOS //
42#define fATE_LOAD_EEPROM 0x0C43
43#ifdef CONFIG_PRINTK
44extern INT ConsoleResponse(IN PUCHAR buff);
45extern int (*remote_display)(char *);
46extern void puts (const char *s);
47
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...) \
51do{ 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)
58
59#define ATEDBGPRINT(Level, Fmt) \
60{ \
61 if ((Level) <= RTDebugLevel) \
62 { \
63 ate_print Fmt; \
64 } \
65}
66#endif // CONFIG_PRINTK //
67#endif // !UCOS //
68
69#define ATE_ON(_p) (((_p)->ate.Mode) != ATE_STOP)
70
71/* RT2880_iNIC will define "RT2860". */
72
73/* RT2880_iNIC will define RT2860. */
74
75#ifdef RT2870
76#define EEPROM_SIZE 0x400
77#ifdef CONFIG_STA_SUPPORT
78#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2870STA/e2p.bin"
79#endif // CONFIG_STA_SUPPORT //
80#endif // RT2870 //
81
82#ifdef RT2870
83#define ATE_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV) RTMP_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV)
84#define ATE_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V) RTMP_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V)
85
86#define BULK_OUT_LOCK(pLock, IrqFlags) \
87 if(1 /*!(in_interrupt() & 0xffff0000)*/) \
88 RTMP_IRQ_LOCK((pLock), IrqFlags);
89
90#define BULK_OUT_UNLOCK(pLock, IrqFlags) \
91 if(1 /*!(in_interrupt() & 0xffff0000)*/) \
92 RTMP_IRQ_UNLOCK((pLock), IrqFlags);
93
94// Prototypes of completion funuc.
95#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
96#define ATE_RTUSBBulkOutDataPacketComplete(purb, pt_regs) ATE_RTUSBBulkOutDataPacketComplete(purb)
97#endif
98
99VOID ATE_RTUSBBulkOutDataPacketComplete(
100 IN purbb_t purb,
101 OUT struct pt_regs *pt_regs);
102
103VOID ATE_RTUSBBulkOutDataPacket(
104 IN PRTMP_ADAPTER pAd,
105 IN UCHAR BulkOutPipeId);
106
107VOID ATE_RTUSBCancelPendingBulkInIRP(
108 IN PRTMP_ADAPTER pAd);
109#endif // RT2870 //
110
111VOID rt_ee_read_all(
112 IN PRTMP_ADAPTER pAd,
113 OUT USHORT *Data);
114
115
116VOID rt_ee_write_all(
117 IN PRTMP_ADAPTER pAd,
118 IN USHORT *Data);
119
120INT Set_ATE_Proc(
121 IN PRTMP_ADAPTER pAd,
122 IN PUCHAR arg);
123
124INT Set_ATE_DA_Proc(
125 IN PRTMP_ADAPTER pAd,
126 IN PUCHAR arg);
127
128INT Set_ATE_SA_Proc(
129 IN PRTMP_ADAPTER pAd,
130 IN PUCHAR arg);
131
132INT Set_ATE_BSSID_Proc(
133 IN PRTMP_ADAPTER pAd,
134 IN PUCHAR arg);
135
136INT Set_ATE_CHANNEL_Proc(
137 IN PRTMP_ADAPTER pAd,
138 IN PUCHAR arg);
139
140INT Set_ATE_TX_POWER0_Proc(
141 IN PRTMP_ADAPTER pAd,
142 IN PUCHAR arg);
143
144INT Set_ATE_TX_POWER1_Proc(
145 IN PRTMP_ADAPTER pAd,
146 IN PUCHAR arg);
147
148INT Set_ATE_TX_Antenna_Proc(
149 IN PRTMP_ADAPTER pAd,
150 IN PUCHAR arg);
151
152INT Set_ATE_RX_Antenna_Proc(
153 IN PRTMP_ADAPTER pAd,
154 IN PUCHAR arg);
155
156INT Set_ATE_TX_FREQOFFSET_Proc(
157 IN PRTMP_ADAPTER pAd,
158 IN PUCHAR arg);
159
160INT Set_ATE_TX_BW_Proc(
161 IN PRTMP_ADAPTER pAd,
162 IN PUCHAR arg);
163
164INT Set_ATE_TX_LENGTH_Proc(
165 IN PRTMP_ADAPTER pAd,
166 IN PUCHAR arg);
167
168INT Set_ATE_TX_COUNT_Proc(
169 IN PRTMP_ADAPTER pAd,
170 IN PUCHAR arg);
171
172INT Set_ATE_TX_MCS_Proc(
173 IN PRTMP_ADAPTER pAd,
174 IN PUCHAR arg);
175
176INT Set_ATE_TX_MODE_Proc(
177 IN PRTMP_ADAPTER pAd,
178 IN PUCHAR arg);
179
180INT Set_ATE_TX_GI_Proc(
181 IN PRTMP_ADAPTER pAd,
182 IN PUCHAR arg);
183
184
185INT Set_ATE_RX_FER_Proc(
186 IN PRTMP_ADAPTER pAd,
187 IN PUCHAR arg);
188
189INT Set_ATE_Read_RF_Proc(
190 IN PRTMP_ADAPTER pAd,
191 IN PUCHAR arg);
192
193INT Set_ATE_Write_RF1_Proc(
194 IN PRTMP_ADAPTER pAd,
195 IN PUCHAR arg);
196
197INT Set_ATE_Write_RF2_Proc(
198 IN PRTMP_ADAPTER pAd,
199 IN PUCHAR arg);
200
201INT Set_ATE_Write_RF3_Proc(
202 IN PRTMP_ADAPTER pAd,
203 IN PUCHAR arg);
204
205INT Set_ATE_Write_RF4_Proc(
206 IN PRTMP_ADAPTER pAd,
207 IN PUCHAR arg);
208
209INT Set_ATE_Load_E2P_Proc(
210 IN PRTMP_ADAPTER pAd,
211 IN PUCHAR arg);
212
213INT Set_ATE_Read_E2P_Proc(
214 IN PRTMP_ADAPTER pAd,
215 IN PUCHAR arg);
216
217INT Set_ATE_Show_Proc(
218 IN PRTMP_ADAPTER pAd,
219 IN PUCHAR arg);
220
221INT Set_ATE_Help_Proc(
222 IN PRTMP_ADAPTER pAd,
223 IN PUCHAR arg);
224
225#ifdef RALINK_ATE
226#ifdef RALINK_28xx_QA
227VOID ATE_QA_Statistics(
228 IN PRTMP_ADAPTER pAd,
229 IN PRXWI_STRUC pRxWI,
230 IN PRT28XX_RXD_STRUC p28xxRxD,
231 IN PHEADER_802_11 pHeader);
232
233VOID RtmpDoAte(
234 IN PRTMP_ADAPTER pAdapter,
235 IN struct iwreq *wrq);
236
237VOID BubbleSort(
238 IN INT32 n,
239 IN INT32 a[]);
240
241VOID CalNoiseLevel(
242 IN PRTMP_ADAPTER pAdapter,
243 IN UCHAR channel,
244 OUT INT32 buffer[3][10]);
245
246BOOLEAN SyncTxRxConfig(
247 IN PRTMP_ADAPTER pAdapter,
248 IN USHORT offset,
249 IN UCHAR value);
250
251#if 0
252INT Set_TxStart_Proc(
253 IN PRTMP_ADAPTER pAd,
254 IN PUCHAR arg);
255#endif // 0 //
256
257INT Set_TxStop_Proc(
258 IN PRTMP_ADAPTER pAd,
259 IN PUCHAR arg);
260
261INT Set_RxStop_Proc(
262 IN PRTMP_ADAPTER pAd,
263 IN PUCHAR arg);
264
265#if 0
266INT Set_EERead_Proc(
267 IN PRTMP_ADAPTER pAd,
268 IN PUCHAR arg);
269
270INT Set_EEWrite_Proc(
271 IN PRTMP_ADAPTER pAd,
272 IN PUCHAR arg);
273
274INT Set_BBPRead_Proc(
275 IN PRTMP_ADAPTER pAd,
276 IN PUCHAR arg);
277
278INT Set_BBPWrite_Proc(
279 IN PRTMP_ADAPTER pAd,
280 IN PUCHAR arg);
281
282INT Set_RFWrite_Proc(
283 IN PRTMP_ADAPTER pAd,
284 IN PUCHAR arg);
285#endif // end of #if 0 //
286#endif // RALINK_28xx_QA //
287#endif // RALINK_ATE //
288
289VOID ATEAsicSwitchChannel(
290 IN PRTMP_ADAPTER pAd);
291
292VOID ATEAsicAdjustTxPower(
293 IN PRTMP_ADAPTER pAd);
294
295VOID ATEDisableAsicProtect(
296 IN PRTMP_ADAPTER pAd);
297
298CHAR ATEConvertToRssi(
299 IN PRTMP_ADAPTER pAd,
300 IN CHAR Rssi,
301 IN UCHAR RssiNumber);
302
303VOID ATESampleRssi(
304 IN PRTMP_ADAPTER pAd,
305 IN PRXWI_STRUC pRxWI);
306
307
308#ifdef CONFIG_STA_SUPPORT
309VOID RTMPStationStop(
310 IN PRTMP_ADAPTER pAd);
311
312VOID RTMPStationStart(
313 IN PRTMP_ADAPTER pAd);
314#endif // CONFIG_STA_SUPPORT //
315#endif // __ATE_H__ //