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 *************************************************************************
31 #define ate_print printk
32 #define ATEDBGPRINT DBGPRINT
33 #define EEPROM_SIZE 0x200
34 #ifdef CONFIG_STA_SUPPORT
35 #define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2860STA/e2p.bin"
36 #endif // CONFIG_STA_SUPPORT //
38 #define ATE_ON(_p) (((_p)->ate.Mode) != ATE_STOP)
40 /* RT2880_iNIC will define "RT2860". */
41 #define ATE_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV) \
43 BBP_CSR_CFG_STRUC BbpCsr; \
45 for (i=0; i<MAX_BUSY_COUNT; i++) \
47 RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
48 if (BbpCsr.field.Busy == BUSY) \
53 BbpCsr.field.fRead = 1; \
54 BbpCsr.field.BBP_RW_MODE = 1; \
55 BbpCsr.field.Busy = 1; \
56 BbpCsr.field.RegNum = _I; \
57 RTMP_IO_WRITE32(_A, BBP_CSR_CFG, BbpCsr.word); \
58 for (k=0; k<MAX_BUSY_COUNT; k++) \
60 RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
61 if (BbpCsr.field.Busy == IDLE) \
64 if ((BbpCsr.field.Busy == IDLE) && \
65 (BbpCsr.field.RegNum == _I)) \
67 *(_pV) = (UCHAR)BbpCsr.field.Value; \
71 if (BbpCsr.field.Busy == BUSY) \
73 ATEDBGPRINT(RT_DEBUG_ERROR, ("BBP read R%d fail\n", _I)); \
74 *(_pV) = (_A)->BbpWriteLatch[_I]; \
78 #define ATE_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V) \
80 BBP_CSR_CFG_STRUC BbpCsr; \
82 for (BusyCnt=0; BusyCnt<MAX_BUSY_COUNT; BusyCnt++) \
84 RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
85 if (BbpCsr.field.Busy == BUSY) \
88 BbpCsr.field.fRead = 0; \
89 BbpCsr.field.BBP_RW_MODE = 1; \
90 BbpCsr.field.Busy = 1; \
91 BbpCsr.field.Value = _V; \
92 BbpCsr.field.RegNum = _I; \
93 RTMP_IO_WRITE32(_A, BBP_CSR_CFG, BbpCsr.word); \
94 (_A)->BbpWriteLatch[_I] = _V; \
97 if (BusyCnt == MAX_BUSY_COUNT) \
99 ATEDBGPRINT(RT_DEBUG_ERROR, ("BBP write R%d fail\n", _I)); \
103 /* RT2880_iNIC will define RT2860. */
104 #define EEPROM_SIZE 0x200
105 /* iNIC has its own EEPROM_BIN_FILE_NAME */
106 #ifdef CONFIG_STA_SUPPORT
107 #define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2860STA/e2p.bin"
108 #endif // CONFIG_STA_SUPPORT //
112 IN PRTMP_ADAPTER pAd,
116 VOID rt_ee_write_all(
117 IN PRTMP_ADAPTER pAd,
121 IN PRTMP_ADAPTER pAd,
125 IN PRTMP_ADAPTER pAd,
129 IN PRTMP_ADAPTER pAd,
132 INT Set_ATE_BSSID_Proc(
133 IN PRTMP_ADAPTER pAd,
136 INT Set_ATE_CHANNEL_Proc(
137 IN PRTMP_ADAPTER pAd,
140 INT Set_ATE_TX_POWER0_Proc(
141 IN PRTMP_ADAPTER pAd,
144 INT Set_ATE_TX_POWER1_Proc(
145 IN PRTMP_ADAPTER pAd,
148 INT Set_ATE_TX_Antenna_Proc(
149 IN PRTMP_ADAPTER pAd,
152 INT Set_ATE_RX_Antenna_Proc(
153 IN PRTMP_ADAPTER pAd,
156 INT Set_ATE_TX_FREQOFFSET_Proc(
157 IN PRTMP_ADAPTER pAd,
160 INT Set_ATE_TX_BW_Proc(
161 IN PRTMP_ADAPTER pAd,
164 INT Set_ATE_TX_LENGTH_Proc(
165 IN PRTMP_ADAPTER pAd,
168 INT Set_ATE_TX_COUNT_Proc(
169 IN PRTMP_ADAPTER pAd,
172 INT Set_ATE_TX_MCS_Proc(
173 IN PRTMP_ADAPTER pAd,
176 INT Set_ATE_TX_MODE_Proc(
177 IN PRTMP_ADAPTER pAd,
180 INT Set_ATE_TX_GI_Proc(
181 IN PRTMP_ADAPTER pAd,
185 INT Set_ATE_RX_FER_Proc(
186 IN PRTMP_ADAPTER pAd,
189 INT Set_ATE_Read_RF_Proc(
190 IN PRTMP_ADAPTER pAd,
193 INT Set_ATE_Write_RF1_Proc(
194 IN PRTMP_ADAPTER pAd,
197 INT Set_ATE_Write_RF2_Proc(
198 IN PRTMP_ADAPTER pAd,
201 INT Set_ATE_Write_RF3_Proc(
202 IN PRTMP_ADAPTER pAd,
205 INT Set_ATE_Write_RF4_Proc(
206 IN PRTMP_ADAPTER pAd,
209 INT Set_ATE_Load_E2P_Proc(
210 IN PRTMP_ADAPTER pAd,
213 INT Set_ATE_Read_E2P_Proc(
214 IN PRTMP_ADAPTER pAd,
217 INT Set_ATE_Show_Proc(
218 IN PRTMP_ADAPTER pAd,
221 INT Set_ATE_Help_Proc(
222 IN PRTMP_ADAPTER pAd,
226 #ifdef RALINK_28xx_QA
227 VOID 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);
234 IN PRTMP_ADAPTER pAdapter,
235 IN struct iwreq *wrq);
242 IN PRTMP_ADAPTER pAdapter,
244 OUT INT32 buffer[3][10]);
246 BOOLEAN SyncTxRxConfig(
247 IN PRTMP_ADAPTER pAdapter,
252 INT Set_TxStart_Proc(
253 IN PRTMP_ADAPTER pAd,
258 IN PRTMP_ADAPTER pAd,
262 IN PRTMP_ADAPTER pAd,
267 IN PRTMP_ADAPTER pAd,
270 INT Set_EEWrite_Proc(
271 IN PRTMP_ADAPTER pAd,
274 INT Set_BBPRead_Proc(
275 IN PRTMP_ADAPTER pAd,
278 INT Set_BBPWrite_Proc(
279 IN PRTMP_ADAPTER pAd,
282 INT Set_RFWrite_Proc(
283 IN PRTMP_ADAPTER pAd,
285 #endif // end of #if 0 //
286 #endif // RALINK_28xx_QA //
287 #endif // RALINK_ATE //
289 VOID ATEAsicSwitchChannel(
290 IN PRTMP_ADAPTER pAd);
292 VOID ATEAsicAdjustTxPower(
293 IN PRTMP_ADAPTER pAd);
295 VOID ATEDisableAsicProtect(
296 IN PRTMP_ADAPTER pAd);
298 CHAR ATEConvertToRssi(
299 IN PRTMP_ADAPTER pAd,
301 IN UCHAR RssiNumber);
304 IN PRTMP_ADAPTER pAd,
305 IN PRXWI_STRUC pRxWI);
308 #ifdef CONFIG_STA_SUPPORT
309 VOID RTMPStationStop(
310 IN PRTMP_ADAPTER pAd);
312 VOID RTMPStationStart(
313 IN PRTMP_ADAPTER pAd);
314 #endif // CONFIG_STA_SUPPORT //
315 #endif // __ATE_H__ //