2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/include/wlan_bow.h#1 $
6 \brief This file contains the declairations of 802.11 PAL
7 command processing routines for
8 MediaTek Inc. 802.11 Wireless LAN Adapters.
11 /*******************************************************************************
12 * Copyright (c) 2007 MediaTek Inc.
14 * All rights reserved. Copying, compilation, modification, distribution
15 * or any other use whatsoever of this material is strictly prohibited
16 * except in accordance with a Software License Agreement with
18 ********************************************************************************
21 /*******************************************************************************
24 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
25 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
26 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
27 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
28 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
29 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
30 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
31 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
32 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
33 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
34 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
35 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
36 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
38 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
39 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
40 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
41 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
42 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
44 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
45 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
46 * OF LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
47 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
48 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
50 ********************************************************************************
57 * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
58 * Add BoW Cancel Scan Request and Turn On deactive network function.
61 * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
62 * Add some BoW error handling.
65 * [WCXRP00000735] [MT6620 Wi-Fi][BoW][FW/Driver] Protect BoW connection establishment
66 * Protect BoW connection establishment.
69 * [WCXRP00000730] [MT6620 Wi-Fi][BoW] Send deauth while disconnecting
70 * Send deauth while disconnecting BoW link.
73 * [WCXRP00000707] [MT6620 Wi-Fi][Driver] Fix BoW Multiple Physical Link connect/disconnect issue
74 * Fix BoW Multiple Physical Link connect/disconnect issue.
76 * 04 15 2011 chinghwa.yu
77 * [WCXRP00000065] Update BoW design and settings
78 * Add BOW short range mode.
80 * 03 27 2011 chinghwa.yu
81 * [WCXRP00000065] Update BoW design and settings
82 * Support multiple physical link.
84 * 03 10 2011 chinghwa.yu
85 * [WCXRP00000065] Update BoW design and settings
88 * 02 16 2011 chinghwa.yu
89 * [WCXRP00000065] Update BoW design and settings
90 * Add bowNotifyAllLinkDisconnected interface and change channel grant procedure for bow starting..
92 * 02 15 2011 chinghwa.yu
93 * [WCXRP00000065] Update BoW design and settings
94 * Update bowString and channel grant.
96 * 01 11 2011 chinghwa.yu
97 * [WCXRP00000065] Update BoW design and settings
98 * Update BOW Activity Report structure and bug fix.
100 * 09 27 2010 chinghwa.yu
101 * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000065] Update BoW design and settings
102 * Update BCM/BoW design and settings.
104 * 09 14 2010 chinghwa.yu
106 * Add bowRunEventAAAComplete.
108 * 08 24 2010 chinghwa.yu
110 * Update BOW for the 1st time.
114 * 1) BoW wrapper: use definitions instead of hard-coded constant for error code
115 * 2) AIS-FSM: eliminate use of desired RF parameters, use prTargetBssDesc instead
116 * 3) add handling for RX_PKT_DESTINATION_HOST_WITH_FORWARD for GO-broadcast frames
120 * sync. bluetooth-over-Wi-Fi interface to driver interface document v0.2.6.
124 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
126 * 06 06 2010 kevin.huang
127 * [WPD00003832][MT6620 5931] Create driver base
128 * [MT6620 5931] Create driver base
131 * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
132 * 1) add timeout handler mechanism for pending command packets
133 * 2) add p2p add/removal key
136 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
137 * 1) all BT physical handles shares the same RSSI/Link Quality.
138 * 2) simplify BT command composing
141 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
142 * change prefix for data structure used to communicate with 802.11 PAL
143 * to avoid ambiguous naming with firmware interface
146 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
147 * add multiple physical link support
150 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
151 * add framework for BT-over-Wi-Fi support.
152 * * * * * * * * * * * * 1) prPendingCmdInfo is replaced by queue for multiple handler capability
153 * * * * * * * * * * * * 2) command sequence number is now increased atomically
154 * * * * * * * * * * * * 3) private data could be hold and taken use for other purpose
161 /*******************************************************************************
162 * C O M P I L E R F L A G S
163 ********************************************************************************
166 /*******************************************************************************
167 * E X T E R N A L R E F E R E N C E S
168 ********************************************************************************
171 #include "nic/cmd_buf.h"
173 #if CFG_ENABLE_BT_OVER_WIFI
174 /*******************************************************************************
176 ********************************************************************************
178 #define BOWCMD_STATUS_SUCCESS 0
179 #define BOWCMD_STATUS_FAILURE 1
180 #define BOWCMD_STATUS_UNACCEPTED 2
181 #define BOWCMD_STATUS_INVALID 3
182 #define BOWCMD_STATUS_TIMEOUT 4
184 #define BOW_WILDCARD_SSID "AMP"
185 #define BOW_WILDCARD_SSID_LEN 3
186 #define BOW_SSID_LEN 21
188 /* 0: query, 1: setup, 2: destroy */
189 #define BOW_QUERY_CMD 0
190 #define BOW_SETUP_CMD 1
191 #define BOW_DESTROY_CMD 2
193 #define BOW_INITIATOR 0
194 #define BOW_RESPONDER 1
196 /*******************************************************************************
197 * P U B L I C D A T A
198 ********************************************************************************
201 typedef struct _BOW_TABLE_T {
204 ENUM_BOW_DEVICE_STATE eState;
205 UINT_8 aucPeerAddress[6];
207 //UINT_8 ucChannelNum;
209 } BOW_TABLE_T, *P_BOW_TABLE_T;
211 typedef WLAN_STATUS (*PFN_BOW_CMD_HANDLE)(P_ADAPTER_T, P_AMPC_COMMAND);
213 typedef struct _BOW_CMD_T {
215 PFN_BOW_CMD_HANDLE pfCmdHandle;
216 } BOW_CMD_T, *P_BOW_CMD_T;
218 typedef struct _BOW_EVENT_ACTIVITY_REPORT_T {
221 UINT_8 aucPeerAddress[6];
222 } BOW_EVENT_ACTIVITY_REPORT_T, *P_BOW_EVENT_ACTIVITY_REPORT_T;
227 2: too much time (> 2/3 second totally) requested for scheduling.
231 typedef struct _BOW_EVENT_SYNC_TSF_T {
233 UINT_32 u4TsfSysTime;
235 UINT_32 u4ScoSysTime;
236 } BOW_EVENT_SYNC_TSF_T, *P_BOW_EVENT_SYNC_TSF_T;
238 typedef struct _BOW_ACTIVITY_REPORT_BODY_T {
241 UINT_32 u4Periodicity;
242 } BOW_ACTIVITY_REPORT_BODY_T, *P_BOW_ACTIVITY_REPORT_BODY_T;
244 typedef struct _BOW_ACTIVITY_REPORT_T {
245 UINT_8 aucPeerAddress[6];
246 UINT_8 ucScheduleKnown;
248 BOW_ACTIVITY_REPORT_BODY_T arBowActivityReportBody[MAX_ACTIVITY_REPORT];
249 } BOW_ACTIVITY_REPORT_T, *P_BOW_ACTIVITY_REPORT_T;
251 /*******************************************************************************
252 * P R I V A T E D A T A
253 ********************************************************************************
256 /*******************************************************************************
258 ********************************************************************************
261 /*******************************************************************************
262 * F U N C T I O N D E C L A R A T I O N S
263 ********************************************************************************
265 /*--------------------------------------------------------------*/
266 /* Firmware Command Packer */
267 /*--------------------------------------------------------------*/
269 wlanoidSendSetQueryBowCmd (
270 IN P_ADAPTER_T prAdapter,
274 PFN_CMD_DONE_HANDLER pfCmdDoneHandler,
275 PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler,
276 UINT_32 u4SetQueryInfoLen,
277 PUINT_8 pucInfoBuffer,
278 IN UINT_8 ucSeqNumber
282 /*--------------------------------------------------------------*/
283 /* Command Dispatcher */
284 /*--------------------------------------------------------------*/
286 wlanbowHandleCommand(
287 IN P_ADAPTER_T prAdapter,
288 IN P_AMPC_COMMAND prCmd
292 /*--------------------------------------------------------------*/
293 /* Routines to handle command */
294 /*--------------------------------------------------------------*/
297 IN P_ADAPTER_T prAdapter,
298 IN P_AMPC_COMMAND prCmd
302 bowCmdSetupConnection(
303 IN P_ADAPTER_T prAdapter,
304 IN P_AMPC_COMMAND prCmd
308 bowCmdDestroyConnection(
309 IN P_ADAPTER_T prAdapter,
310 IN P_AMPC_COMMAND prCmd
315 IN P_ADAPTER_T prAdapter,
316 IN P_AMPC_COMMAND prCmd
321 IN P_ADAPTER_T prAdapter,
322 IN P_AMPC_COMMAND prCmd
326 bowCmdReadLinkQuality(
327 IN P_ADAPTER_T prAdapter,
328 IN P_AMPC_COMMAND prCmd
332 bowCmdShortRangeMode(
333 IN P_ADAPTER_T prAdapter,
334 IN P_AMPC_COMMAND prCmd
338 bowCmdGetChannelList(
339 IN P_ADAPTER_T prAdapter,
340 IN P_AMPC_COMMAND prCmd
344 wlanbowCmdEventSetStatus(
345 IN P_ADAPTER_T prAdapter,
346 IN P_AMPC_COMMAND prCmd,
350 /*--------------------------------------------------------------*/
351 /* Callbacks for event indication */
352 /*--------------------------------------------------------------*/
354 wlanbowCmdEventSetCommon (
355 IN P_ADAPTER_T prAdapter,
356 IN P_CMD_INFO_T prCmdInfo,
357 IN PUINT_8 pucEventBuf
361 wlanbowCmdEventLinkConnected (
362 IN P_ADAPTER_T prAdapter,
363 IN P_CMD_INFO_T prCmdInfo,
364 IN PUINT_8 pucEventBuf
368 wlanbowCmdEventLinkDisconnected (
369 IN P_ADAPTER_T prAdapter,
370 IN P_CMD_INFO_T prCmdInfo,
371 IN PUINT_8 pucEventBuf
375 wlanbowCmdEventSetSetupConnection (
376 IN P_ADAPTER_T prAdapter,
377 IN P_CMD_INFO_T prCmdInfo,
378 IN PUINT_8 pucEventBuf
382 wlanbowCmdEventReadLinkQuality (
383 IN P_ADAPTER_T prAdapter,
384 IN P_CMD_INFO_T prCmdInfo,
385 IN PUINT_8 pucEventBuf
389 wlanbowCmdEventReadRssi (
390 IN P_ADAPTER_T prAdapter,
391 IN P_CMD_INFO_T prCmdInfo,
392 IN PUINT_8 pucEventBuf
396 wlanbowCmdTimeoutHandler (
397 IN P_ADAPTER_T prAdapter,
398 IN P_CMD_INFO_T prCmdInfo
403 IN P_ADAPTER_T prAdapter);
407 IN P_ADAPTER_T prAdapter
413 IN PUINT_8 pucSsidLen
417 bowValidateProbeReq (
418 IN P_ADAPTER_T prAdapter,
419 IN P_SW_RFB_T prSwRfb,
420 OUT PUINT_32 pu4ControlFlags
425 IN P_ADAPTER_T prAdapter,
431 IN P_ADAPTER_T prAdapter
435 bowResponderScanDone(
436 IN P_ADAPTER_T prAdapter,
437 IN P_MSG_HDR_T prMsgHdr
441 bowResponderCancelScan (
442 IN P_ADAPTER_T prAdapter,
443 IN BOOLEAN fgIsChannelExtention
448 IN P_ADAPTER_T prAdapter,
449 P_BSS_DESC_T prBssDesc
453 bowFsmRunEventJoinComplete(
454 IN P_ADAPTER_T prAdapter,
455 IN P_MSG_HDR_T prMsgHdr
459 bowIndicationOfMediaStateToHost(
460 IN P_ADAPTER_T prAdapter,
461 ENUM_PARAM_MEDIA_STATE_T eConnectionState,
462 BOOLEAN fgDelayIndication
466 bowRunEventAAATxFail(
467 IN P_ADAPTER_T prAdapter,
468 IN P_STA_RECORD_T prStaRec
472 bowRunEventAAAComplete(
473 IN P_ADAPTER_T prAdapter,
474 IN P_STA_RECORD_T prStaRec
478 bowRunEventRxDeAuth (
479 IN P_ADAPTER_T prAdapter,
480 IN P_STA_RECORD_T prStaRec,
481 IN P_SW_RFB_T prSwRfb
486 IN P_ADAPTER_T prAdapter,
487 IN P_MSDU_INFO_T prMsduInfo,
488 IN ENUM_TX_RESULT_CODE_T rTxDoneStatus
493 IN P_ADAPTER_T prAdapter,
494 IN P_SW_RFB_T prSwRfb,
495 OUT PUINT_16 pu2StatusCode
500 IN P_ADAPTER_T prAdapter,
501 IN P_SW_RFB_T prSwRfb,
502 IN PP_STA_RECORD_T pprStaRec,
503 OUT PUINT_16 pu2StatusCode
508 IN P_ADAPTER_T prAdapter,
509 IN P_MSG_HDR_T prMsgHdr
514 IN P_ADAPTER_T prAdapter
519 IN P_ADAPTER_T prAdapter
524 IN P_ADAPTER_T prAdapter,
529 bowNotifyAllLinkDisconnected (
530 IN P_ADAPTER_T prAdapter
534 bowCheckBowTableIfVaild(
535 IN P_ADAPTER_T prAdapter,
536 IN UINT_8 aucPeerAddress[6]
540 bowGetBowTableContent(
541 IN P_ADAPTER_T prAdapter,
542 IN UINT_8 ucBowTableIdx,
543 OUT P_BOW_TABLE_T prBowTable
547 bowGetBowTableEntryByPeerAddress(
548 IN P_ADAPTER_T prAdapter,
549 IN UINT_8 aucPeerAddress[6],
550 OUT PUINT_8 pucBowTableIdx
554 bowGetBowTableFreeEntry(
555 IN P_ADAPTER_T prAdapter,
556 OUT PUINT_8 pucBowTableIdx
559 ENUM_BOW_DEVICE_STATE
561 IN P_ADAPTER_T prAdapter,
562 IN UINT_8 aucPeerAddress[6]
567 IN P_ADAPTER_T prAdapter,
568 IN UINT_8 aucPeerAddress[6],
569 IN ENUM_BOW_DEVICE_STATE eState
574 bowSetBowTableContent(
575 IN P_ADAPTER_T prAdapter,
576 IN UINT_8 ucBowTableIdx,
577 IN P_BOW_TABLE_T prBowTable
580 /*******************************************************************************
582 ********************************************************************************
586 #endif /* _WLAN_BOW_H */