]> Pileus Git - ~andy/linux/blob - drivers/staging/rt3090/rt_ate.h
Merge branch 'fix/hda' into for-linus
[~andy/linux] / drivers / staging / rt3090 / rt_ate.h
1 /*
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
32 #ifdef LINUX
33 #define ate_print printk
34 #define ATEDBGPRINT DBGPRINT
35 #ifdef RTMP_MAC_PCI
36 #define EEPROM_SIZE                                                             0x200
37 #ifdef CONFIG_STA_SUPPORT
38 #define EEPROM_BIN_FILE_NAME  "/etc/Wireless/RT2860STA/e2p.bin"
39 #endif // CONFIG_STA_SUPPORT //
40 #endif // RTMP_MAC_PCI //
41 #endif // LINUX //
42
43
44 #define ATE_ON(_p)              (((_p)->ate.Mode) != ATE_STOP)
45
46 #ifdef RTMP_MAC_PCI
47 #define ATE_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV)        \
48 {                                                       \
49     BBP_CSR_CFG_STRUC  BbpCsr;                             \
50     int             j, k;                               \
51     for (j=0; j<MAX_BUSY_COUNT; j++)                    \
52     {                                                   \
53         RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word);     \
54         if (BbpCsr.field.Busy == BUSY)                  \
55         {                                               \
56             continue;                                   \
57         }                                               \
58         BbpCsr.word = 0;                                \
59         BbpCsr.field.fRead = 1;                         \
60         BbpCsr.field.BBP_RW_MODE = 1;                         \
61         BbpCsr.field.Busy = 1;                          \
62         BbpCsr.field.RegNum = _I;                       \
63         RTMP_IO_WRITE32(_A, BBP_CSR_CFG, BbpCsr.word);     \
64         for (k=0; k<MAX_BUSY_COUNT; k++)                \
65         {                                               \
66             RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word); \
67             if (BbpCsr.field.Busy == IDLE)              \
68                 break;                                  \
69         }                                               \
70         if ((BbpCsr.field.Busy == IDLE) &&              \
71             (BbpCsr.field.RegNum == _I))                \
72         {                                               \
73             *(_pV) = (UCHAR)BbpCsr.field.Value;         \
74             break;                                      \
75         }                                               \
76     }                                                   \
77     if (BbpCsr.field.Busy == BUSY)                      \
78     {                                                   \
79         ATEDBGPRINT(RT_DEBUG_ERROR, ("BBP read R%d fail\n", _I));      \
80         *(_pV) = (_A)->BbpWriteLatch[_I];               \
81     }                                                   \
82 }
83
84 #define ATE_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V)        \
85 {                                                       \
86     BBP_CSR_CFG_STRUC  BbpCsr;                             \
87     int             BusyCnt;                            \
88     for (BusyCnt=0; BusyCnt<MAX_BUSY_COUNT; BusyCnt++)  \
89     {                                                   \
90         RTMP_IO_READ32(_A, BBP_CSR_CFG, &BbpCsr.word);     \
91         if (BbpCsr.field.Busy == BUSY)                  \
92             continue;                                   \
93         BbpCsr.word = 0;                                \
94         BbpCsr.field.fRead = 0;                         \
95         BbpCsr.field.BBP_RW_MODE = 1;                         \
96         BbpCsr.field.Busy = 1;                          \
97         BbpCsr.field.Value = _V;                        \
98         BbpCsr.field.RegNum = _I;                       \
99         RTMP_IO_WRITE32(_A, BBP_CSR_CFG, BbpCsr.word);     \
100         (_A)->BbpWriteLatch[_I] = _V;                   \
101         break;                                          \
102     }                                                   \
103     if (BusyCnt == MAX_BUSY_COUNT)                      \
104     {                                                   \
105         ATEDBGPRINT(RT_DEBUG_ERROR, ("BBP write R%d fail\n", _I));     \
106     }                                                   \
107 }
108 #endif // RTMP_MAC_PCI //
109
110
111 #ifdef RT30xx
112 #define ATE_RF_IO_READ8_BY_REG_ID(_A, _I, _pV)     RTMP_RF_IO_READ8_BY_REG_ID(_A, _I, _pV)
113 #define ATE_RF_IO_WRITE8_BY_REG_ID(_A, _I, _V)     RTMP_RF_IO_WRITE8_BY_REG_ID(_A, _I, _V)
114 #endif // RT30xx //
115
116
117 VOID rt_ee_read_all(
118         IN  PRTMP_ADAPTER   pAd,
119         OUT USHORT *Data);
120
121 VOID rt_ee_write_all(
122         IN  PRTMP_ADAPTER   pAd,
123         IN  USHORT *Data);
124
125 INT Set_ATE_Proc(
126         IN      PRTMP_ADAPTER   pAd,
127         IN      PSTRING                 arg);
128
129 INT     Set_ATE_DA_Proc(
130         IN      PRTMP_ADAPTER   pAd,
131         IN      PSTRING                 arg);
132
133 INT     Set_ATE_SA_Proc(
134         IN      PRTMP_ADAPTER   pAd,
135         IN      PSTRING                 arg);
136
137 INT     Set_ATE_BSSID_Proc(
138         IN      PRTMP_ADAPTER   pAd,
139         IN      PSTRING                 arg);
140
141 INT     Set_ATE_CHANNEL_Proc(
142         IN      PRTMP_ADAPTER   pAd,
143         IN      PSTRING                 arg);
144
145 INT     Set_ATE_TX_POWER0_Proc(
146         IN      PRTMP_ADAPTER   pAd,
147         IN      PSTRING                 arg);
148
149 INT     Set_ATE_TX_POWER1_Proc(
150         IN      PRTMP_ADAPTER   pAd,
151         IN      PSTRING                 arg);
152
153 INT     Set_ATE_TX_Antenna_Proc(
154         IN      PRTMP_ADAPTER   pAd,
155         IN      PSTRING                 arg);
156
157 INT     Set_ATE_RX_Antenna_Proc(
158         IN      PRTMP_ADAPTER   pAd,
159         IN      PSTRING                 arg);
160
161 INT     Set_ATE_TX_FREQOFFSET_Proc(
162         IN      PRTMP_ADAPTER   pAd,
163         IN      PSTRING                 arg);
164
165 INT     Set_ATE_TX_BW_Proc(
166         IN      PRTMP_ADAPTER   pAd,
167         IN      PSTRING                 arg);
168
169 INT     Set_ATE_TX_LENGTH_Proc(
170         IN      PRTMP_ADAPTER   pAd,
171         IN      PSTRING                 arg);
172
173 INT     Set_ATE_TX_COUNT_Proc(
174         IN      PRTMP_ADAPTER   pAd,
175         IN      PSTRING                 arg);
176
177 INT     Set_ATE_TX_MCS_Proc(
178         IN      PRTMP_ADAPTER   pAd,
179         IN      PSTRING                 arg);
180
181 INT     Set_ATE_TX_MODE_Proc(
182         IN      PRTMP_ADAPTER   pAd,
183         IN      PSTRING                 arg);
184
185 INT     Set_ATE_TX_GI_Proc(
186         IN      PRTMP_ADAPTER   pAd,
187         IN      PSTRING                 arg);
188
189
190 INT     Set_ATE_RX_FER_Proc(
191         IN      PRTMP_ADAPTER   pAd,
192         IN      PSTRING                 arg);
193
194 INT Set_ATE_Read_RF_Proc(
195         IN      PRTMP_ADAPTER   pAd,
196         IN      PSTRING                 arg);
197
198 INT Set_ATE_Write_RF1_Proc(
199         IN      PRTMP_ADAPTER   pAd,
200         IN      PSTRING                 arg);
201
202 INT Set_ATE_Write_RF2_Proc(
203         IN      PRTMP_ADAPTER   pAd,
204         IN      PSTRING                 arg);
205
206 INT Set_ATE_Write_RF3_Proc(
207         IN      PRTMP_ADAPTER   pAd,
208         IN      PSTRING                 arg);
209
210 INT Set_ATE_Write_RF4_Proc(
211         IN      PRTMP_ADAPTER   pAd,
212         IN      PSTRING                 arg);
213
214 INT Set_ATE_Load_E2P_Proc(
215         IN      PRTMP_ADAPTER   pAd,
216         IN      PSTRING                 arg);
217
218 INT Set_ATE_Read_E2P_Proc(
219         IN      PRTMP_ADAPTER   pAd,
220         IN      PSTRING                 arg);
221
222
223 INT     Set_ATE_Show_Proc(
224         IN      PRTMP_ADAPTER   pAd,
225         IN      PSTRING                 arg);
226
227 INT     Set_ATE_Help_Proc(
228         IN      PRTMP_ADAPTER   pAd,
229         IN      PSTRING                 arg);
230
231 #ifdef RALINK_28xx_QA
232 VOID ATE_QA_Statistics(
233         IN PRTMP_ADAPTER                pAd,
234         IN PRXWI_STRUC                  pRxWI,
235         IN PRT28XX_RXD_STRUC    p28xxRxD,
236         IN PHEADER_802_11               pHeader);
237
238 VOID RtmpDoAte(
239         IN      PRTMP_ADAPTER   pAdapter,
240         IN      struct iwreq    *wrq);
241
242 VOID BubbleSort(
243         IN  INT32 n,
244         IN  INT32 a[]);
245
246 VOID CalNoiseLevel(
247         IN  PRTMP_ADAPTER   pAdapter,
248         IN  UCHAR           channel,
249         OUT INT32           buffer[3][10]);
250
251 BOOLEAN SyncTxRxConfig(
252         IN      PRTMP_ADAPTER   pAdapter,
253         IN      USHORT                  offset,
254         IN      UCHAR                   value);
255
256 INT Set_TxStop_Proc(
257         IN      PRTMP_ADAPTER   pAd,
258         IN      PSTRING                 arg);
259
260 INT Set_RxStop_Proc(
261         IN      PRTMP_ADAPTER   pAd,
262         IN      PSTRING                 arg);
263
264 #ifdef DBG
265 INT Set_EERead_Proc(
266         IN      PRTMP_ADAPTER   pAd,
267         IN      PSTRING                 arg);
268
269 INT Set_EEWrite_Proc(
270         IN      PRTMP_ADAPTER   pAd,
271         IN      PSTRING                 arg);
272
273 INT Set_BBPRead_Proc(
274         IN      PRTMP_ADAPTER   pAd,
275         IN      PSTRING                 arg);
276
277 INT Set_BBPWrite_Proc(
278         IN      PRTMP_ADAPTER   pAd,
279         IN      PSTRING                 arg);
280
281 INT Set_RFWrite_Proc(
282         IN      PRTMP_ADAPTER   pAd,
283         IN      PSTRING                 arg);
284 #endif // DBG //
285 #endif // RALINK_28xx_QA //
286
287
288 VOID ATEAsicSwitchChannel(
289         IN PRTMP_ADAPTER pAd);
290
291 VOID ATEAsicAdjustTxPower(
292         IN PRTMP_ADAPTER pAd);
293
294 VOID ATEDisableAsicProtect(
295         IN              PRTMP_ADAPTER   pAd);
296
297 CHAR ATEConvertToRssi(
298         IN PRTMP_ADAPTER  pAd,
299         IN CHAR                         Rssi,
300         IN UCHAR    RssiNumber);
301
302 VOID ATESampleRssi(
303         IN PRTMP_ADAPTER        pAd,
304         IN PRXWI_STRUC          pRxWI);
305
306
307 #ifdef CONFIG_STA_SUPPORT
308 VOID RTMPStationStop(
309     IN  PRTMP_ADAPTER   pAd);
310
311 VOID RTMPStationStart(
312     IN  PRTMP_ADAPTER   pAd);
313 #endif // CONFIG_STA_SUPPORT //
314 #endif // __ATE_H__ //