Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6] / drivers / staging / vt6655 / card.h
1 /*
2  * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3  * All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * File: card.h
20  *
21  * Purpose: Provide functions to setup NIC operation mode
22  *
23  * Author: Tevin Chen
24  *
25  * Date: May 21, 1996
26  *
27  */
28
29
30 #ifndef __CARD_H__
31 #define __CARD_H__
32
33 //#if !defined(__DEVICE_H__)
34 //#include "device.h"
35 //#endif
36 #if !defined(__TTYPE_H__)
37 #include "ttype.h"
38 #endif
39
40
41
42
43 /*---------------------  Export Definitions -------------------------*/
44 //
45 // Loopback mode
46 //
47 // LOBYTE is MAC LB mode, HIBYTE is MII LB mode
48 #define CARD_LB_NONE            MAKEWORD(MAC_LB_NONE, 0)
49 #define CARD_LB_MAC             MAKEWORD(MAC_LB_INTERNAL, 0)   // PHY must ISO, avoid MAC loopback packet go out
50 #define CARD_LB_PHY             MAKEWORD(MAC_LB_EXT, 0)
51
52
53 #define DEFAULT_MSDU_LIFETIME           512  // ms
54 #define DEFAULT_MSDU_LIFETIME_RES_64us  8000 // 64us
55
56 #define DEFAULT_MGN_LIFETIME            8    // ms
57 #define DEFAULT_MGN_LIFETIME_RES_64us   125  // 64us
58
59 #define CB_MAX_CHANNEL_24G      14
60 #define CB_MAX_CHANNEL_5G       42 //[20050104] add channel9(5045MHz), 41==>42
61 #define CB_MAX_CHANNEL          (CB_MAX_CHANNEL_24G+CB_MAX_CHANNEL_5G)
62
63 typedef enum _CARD_PHY_TYPE {
64     PHY_TYPE_AUTO,
65     PHY_TYPE_11B,
66     PHY_TYPE_11G,
67     PHY_TYPE_11A
68 } CARD_PHY_TYPE, *PCARD_PHY_TYPE;
69
70 typedef enum _CARD_PKT_TYPE {
71     PKT_TYPE_802_11_BCN,
72     PKT_TYPE_802_11_MNG,
73     PKT_TYPE_802_11_DATA,
74     PKT_TYPE_802_11_ALL
75 } CARD_PKT_TYPE, *PCARD_PKT_TYPE;
76
77 typedef enum _CARD_STATUS_TYPE {
78     CARD_STATUS_MEDIA_CONNECT,
79     CARD_STATUS_MEDIA_DISCONNECT,
80     CARD_STATUS_PMKID
81 } CARD_STATUS_TYPE, *PCARD_STATUS_TYPE;
82
83 typedef enum _CARD_OP_MODE {
84     OP_MODE_INFRASTRUCTURE,
85     OP_MODE_ADHOC,
86     OP_MODE_AP,
87     OP_MODE_UNKNOWN
88 } CARD_OP_MODE, *PCARD_OP_MODE;
89
90
91
92 /*---------------------  Export Classes  ----------------------------*/
93
94 /*---------------------  Export Variables  --------------------------*/
95
96 /*---------------------  Export Functions  --------------------------*/
97 #ifdef __cplusplus
98 extern "C" {                            /* Assume C declarations for C++ */
99 #endif /* __cplusplus */
100
101 BOOL ChannelValid(UINT CountryCode, UINT ChannelIndex);
102 void CARDvSetRSPINF(PVOID pDeviceHandler, CARD_PHY_TYPE ePHYType);
103 void vUpdateIFS(PVOID pDeviceHandler);
104 void CARDvUpdateBasicTopRate(PVOID pDeviceHandler);
105 BOOL CARDbAddBasicRate(PVOID pDeviceHandler, WORD wRateIdx);
106 BOOL CARDbIsOFDMinBasicRate(PVOID pDeviceHandler);
107 void CARDvSetLoopbackMode(DWORD_PTR dwIoBase, WORD wLoopbackMode);
108 BOOL CARDbSoftwareReset(PVOID pDeviceHandler);
109 void CARDvSetFirstNextTBTT(DWORD_PTR dwIoBase, WORD wBeaconInterval);
110 void CARDvUpdateNextTBTT(DWORD_PTR dwIoBase, QWORD qwTSF, WORD wBeaconInterval);
111 BOOL CARDbGetCurrentTSF(DWORD_PTR dwIoBase, PQWORD pqwCurrTSF);
112 QWORD CARDqGetNextTBTT(QWORD qwTSF, WORD wBeaconInterval);
113 QWORD CARDqGetTSFOffset(BYTE byRxRate, QWORD qwTSF1, QWORD qwTSF2);
114 BOOL CARDbSetTxPower(PVOID pDeviceHandler, ULONG ulTxPower);
115 BYTE CARDbyGetPktType(PVOID pDeviceHandler);
116 VOID CARDvSafeResetTx(PVOID pDeviceHandler);
117 VOID CARDvSafeResetRx(PVOID pDeviceHandler);
118
119 //xxx
120 BOOL CARDbRadioPowerOff(PVOID pDeviceHandler);
121 BOOL CARDbRadioPowerOn(PVOID pDeviceHandler);
122 BOOL CARDbSetChannel(PVOID pDeviceHandler, UINT uConnectionChannel);
123 //BOOL CARDbSendPacket(PVOID pDeviceHandler, PVOID pPacket, CARD_PKT_TYPE ePktType, UINT uLength);
124 BOOL CARDbIsShortPreamble(PVOID pDeviceHandler);
125 BOOL CARDbIsShorSlotTime(PVOID pDeviceHandler);
126 BOOL CARDbSetPhyParameter(PVOID pDeviceHandler, CARD_PHY_TYPE ePHYType, WORD wCapInfo, BYTE byERPField, PVOID pvSupportRateIEs, PVOID pvExtSupportRateIEs);
127 BOOL CARDbUpdateTSF(PVOID pDeviceHandler, BYTE byRxRate, QWORD qwBSSTimestamp, QWORD qwLocalTSF);
128 BOOL CARDbStopTxPacket(PVOID pDeviceHandler, CARD_PKT_TYPE ePktType);
129 BOOL CARDbStartTxPacket(PVOID pDeviceHandler, CARD_PKT_TYPE ePktType);
130 BOOL CARDbSetBeaconPeriod(PVOID pDeviceHandler, WORD wBeaconInterval);
131 BOOL CARDbSetBSSID(PVOID pDeviceHandler, PBYTE pbyBSSID, CARD_OP_MODE eOPMode);
132
133 BOOL
134 CARDbPowerDown(
135     PVOID   pDeviceHandler
136     );
137
138 BOOL CARDbSetTxDataRate(
139     PVOID   pDeviceHandler,
140     WORD    wDataRate
141     );
142
143
144 BOOL CARDbRemoveKey (PVOID pDeviceHandler, PBYTE pbyBSSID);
145
146 BOOL
147 CARDbAdd_PMKID_Candidate (
148     IN PVOID            pDeviceHandler,
149     IN PBYTE            pbyBSSID,
150     IN BOOL             bRSNCapExist,
151     IN WORD             wRSNCap
152     );
153
154 PVOID
155 CARDpGetCurrentAddress (
156     IN PVOID            pDeviceHandler
157     );
158
159
160 VOID CARDvInitChannelTable(PVOID pDeviceHandler);
161 BYTE CARDbyGetChannelMapping(PVOID pDeviceHandler, BYTE byChannelNumber, CARD_PHY_TYPE ePhyType);
162
163 BOOL
164 CARDbStartMeasure (
165     IN PVOID            pDeviceHandler,
166     IN PVOID            pvMeasureEIDs,
167     IN UINT             uNumOfMeasureEIDs
168     );
169
170 BOOL
171 CARDbChannelSwitch (
172     IN PVOID            pDeviceHandler,
173     IN BYTE             byMode,
174     IN BYTE             byNewChannel,
175     IN BYTE             byCount
176     );
177
178 BOOL
179 CARDbSetQuiet (
180     IN PVOID            pDeviceHandler,
181     IN BOOL             bResetQuiet,
182     IN BYTE             byQuietCount,
183     IN BYTE             byQuietPeriod,
184     IN WORD             wQuietDuration,
185     IN WORD             wQuietOffset
186     );
187
188 BOOL
189 CARDbStartQuiet (
190     IN PVOID            pDeviceHandler
191     );
192
193 VOID
194 CARDvSetCountryInfo (
195     IN PVOID            pDeviceHandler,
196     IN CARD_PHY_TYPE    ePHYType,
197     IN PVOID            pIE
198     );
199
200 VOID
201 CARDvSetPowerConstraint (
202     IN PVOID            pDeviceHandler,
203     IN BYTE             byChannel,
204     IN I8               byPower
205     );
206
207 VOID
208 CARDvGetPowerCapability (
209     IN PVOID            pDeviceHandler,
210     OUT PBYTE           pbyMinPower,
211     OUT PBYTE           pbyMaxPower
212     );
213
214 BYTE
215 CARDbySetSupportChannels (
216     IN PVOID            pDeviceHandler,
217     IN OUT PBYTE        pbyIEs
218     );
219
220 I8
221 CARDbyGetTransmitPower (
222     IN PVOID            pDeviceHandler
223     );
224
225 BOOL
226 CARDbChannelGetList (
227     IN  UINT       uCountryCodeIdx,
228     OUT PBYTE      pbyChannelTable
229     );
230
231 VOID
232 CARDvSetCountryIE(
233     IN PVOID        pDeviceHandler,
234     IN PVOID        pIE
235     );
236
237 BOOL
238 CARDbGetChannelMapInfo(
239     IN PVOID        pDeviceHandler,
240     IN UINT         uChannelIndex,
241     OUT PBYTE       pbyChannelNumber,
242     OUT PBYTE       pbyMap
243     );
244
245 VOID
246 CARDvSetChannelMapInfo(
247     IN PVOID        pDeviceHandler,
248     IN UINT         uChannelIndex,
249     IN BYTE         byMap
250     );
251
252 VOID
253 CARDvClearChannelMapInfo(
254     IN PVOID        pDeviceHandler
255     );
256
257 BYTE
258 CARDbyAutoChannelSelect(
259     IN PVOID        pDeviceHandler,
260     CARD_PHY_TYPE   ePHYType
261     );
262
263 BYTE CARDbyGetChannelNumber(PVOID pDeviceHandler, BYTE byChannelIndex);
264
265 #ifdef __cplusplus
266 }                                       /* End of extern "C" { */
267 #endif /* __cplusplus */
268
269
270 #endif // __CARD_H__
271
272
273