2 *************************************************************************
4 * 5F., No.36, Taiyuan St., Jhubei City,
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. *
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. *
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. *
25 *************************************************************************
32 #define ate_print printk
33 #define ATEDBGPRINT DBGPRINT
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 //
42 #define fATE_LOAD_EEPROM 0x0C43
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) \
61 if ((Level) <= RTDebugLevel) \
66 #endif // CONFIG_PRINTK //
69 #define ATE_ON(_p) (((_p)->ate.Mode) != ATE_STOP)
71 /* RT2880_iNIC will define "RT2860". */
73 #define ATE_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV) \
75 BBP_CSR_CFG_STRUC BbpCsr; \
77 for (i=0; i<MAX_BUSY_COUNT; i++) \
79 RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
80 if (BbpCsr.field.Busy == BUSY) \
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++) \
92 RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
93 if (BbpCsr.field.Busy == IDLE) \
96 if ((BbpCsr.field.Busy == IDLE) && \
97 (BbpCsr.field.RegNum == _I)) \
99 *(_pV) = (UCHAR)BbpCsr.field.Value; \
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; \
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) \
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; \
129 if (BusyCnt == MAX_BUSY_COUNT) \
131 ATEDBGPRINT(RT_DEBUG_ERROR, ("BBP write R%d fail\n", _I)); \
136 /* RT2880_iNIC will define RT2860. */
138 #define EEPROM_SIZE 0x200
139 /* iNIC has its own EEPROM_BIN_FILE_NAME */
141 #ifdef CONFIG_STA_SUPPORT
142 #define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2860STA/e2p.bin"
143 #endif // CONFIG_STA_SUPPORT //
150 IN PRTMP_ADAPTER pAd
,
154 VOID
rt_ee_write_all(
155 IN PRTMP_ADAPTER pAd
,
159 IN PRTMP_ADAPTER pAd
,
163 IN PRTMP_ADAPTER pAd
,
167 IN PRTMP_ADAPTER pAd
,
170 INT
Set_ATE_BSSID_Proc(
171 IN PRTMP_ADAPTER pAd
,
174 INT
Set_ATE_CHANNEL_Proc(
175 IN PRTMP_ADAPTER pAd
,
178 INT
Set_ATE_TX_POWER0_Proc(
179 IN PRTMP_ADAPTER pAd
,
182 INT
Set_ATE_TX_POWER1_Proc(
183 IN PRTMP_ADAPTER pAd
,
186 INT
Set_ATE_TX_Antenna_Proc(
187 IN PRTMP_ADAPTER pAd
,
190 INT
Set_ATE_RX_Antenna_Proc(
191 IN PRTMP_ADAPTER pAd
,
194 INT
Set_ATE_TX_FREQOFFSET_Proc(
195 IN PRTMP_ADAPTER pAd
,
198 INT
Set_ATE_TX_BW_Proc(
199 IN PRTMP_ADAPTER pAd
,
202 INT
Set_ATE_TX_LENGTH_Proc(
203 IN PRTMP_ADAPTER pAd
,
206 INT
Set_ATE_TX_COUNT_Proc(
207 IN PRTMP_ADAPTER pAd
,
210 INT
Set_ATE_TX_MCS_Proc(
211 IN PRTMP_ADAPTER pAd
,
214 INT
Set_ATE_TX_MODE_Proc(
215 IN PRTMP_ADAPTER pAd
,
218 INT
Set_ATE_TX_GI_Proc(
219 IN PRTMP_ADAPTER pAd
,
223 INT
Set_ATE_RX_FER_Proc(
224 IN PRTMP_ADAPTER pAd
,
227 INT
Set_ATE_Read_RF_Proc(
228 IN PRTMP_ADAPTER pAd
,
231 INT
Set_ATE_Write_RF1_Proc(
232 IN PRTMP_ADAPTER pAd
,
235 INT
Set_ATE_Write_RF2_Proc(
236 IN PRTMP_ADAPTER pAd
,
239 INT
Set_ATE_Write_RF3_Proc(
240 IN PRTMP_ADAPTER pAd
,
243 INT
Set_ATE_Write_RF4_Proc(
244 IN PRTMP_ADAPTER pAd
,
247 INT
Set_ATE_Load_E2P_Proc(
248 IN PRTMP_ADAPTER pAd
,
251 INT
Set_ATE_Read_E2P_Proc(
252 IN PRTMP_ADAPTER pAd
,
255 INT
Set_ATE_Show_Proc(
256 IN PRTMP_ADAPTER pAd
,
259 INT
Set_ATE_Help_Proc(
260 IN PRTMP_ADAPTER pAd
,
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
);
272 IN PRTMP_ADAPTER pAdapter
,
273 IN
struct iwreq
*wrq
);
280 IN PRTMP_ADAPTER pAdapter
,
282 OUT INT32 buffer
[3][10]);
284 BOOLEAN
SyncTxRxConfig(
285 IN PRTMP_ADAPTER pAdapter
,
290 INT
Set_TxStart_Proc(
291 IN PRTMP_ADAPTER pAd
,
296 IN PRTMP_ADAPTER pAd
,
300 IN PRTMP_ADAPTER pAd
,
305 IN PRTMP_ADAPTER pAd
,
308 INT
Set_EEWrite_Proc(
309 IN PRTMP_ADAPTER pAd
,
312 INT
Set_BBPRead_Proc(
313 IN PRTMP_ADAPTER pAd
,
316 INT
Set_BBPWrite_Proc(
317 IN PRTMP_ADAPTER pAd
,
320 INT
Set_RFWrite_Proc(
321 IN PRTMP_ADAPTER pAd
,
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
,
339 IN UCHAR RssiNumber
);
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__ //