8723BU: Update 8723BU wifi driver to version v4.3.16_14189.20150519_BTCOEX2015119...
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bu / include / rtw_btcoex.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2013 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17  *
18  *
19  ******************************************************************************/
20 #ifndef __RTW_BTCOEX_H__
21 #define __RTW_BTCOEX_H__
22
23 #include <drv_types.h>
24
25 #ifdef CONFIG_BT_COEXIST_SOCKET_TRX
26
27 #define NETLINK_USER 31
28 #define CONNECT_PORT 30000
29 #define CONNECT_PORT_BT 30001
30 #define KERNEL_SOCKET_OK 0x01   
31 #define NETLINK_SOCKET_OK 0x02
32
33 #define OTHER 0
34 #define RX_ATTEND_ACK 1
35 #define RX_LEAVE_ACK 2
36 #define RX_BT_LEAVE 3
37 #define RX_INVITE_REQ 4
38 #define RX_ATTEND_REQ 5
39 #define RX_INVITE_RSP 6
40
41 #define invite_req "INVITE_REQ"
42 #define invite_rsp "INVITE_RSP"
43 #define attend_req "ATTEND_REQ"
44 #define attend_ack "ATTEND_ACK"
45 #define wifi_leave "WIFI_LEAVE"
46 #define leave_ack "LEAVE_ACK"
47 #define bt_leave "BT_LEAVE"
48
49 #define BT_INFO_NOTIFY_CMD 0x0106
50 #define BT_INFO_LEN 8
51
52 typedef struct _HCI_LINK_INFO{
53         u2Byte                                  ConnectHandle;
54         u1Byte                                  IncomingTrafficMode;
55         u1Byte                                  OutgoingTrafficMode;
56         u1Byte                                  BTProfile;
57         u1Byte                                  BTCoreSpec;
58         s1Byte                                  BT_RSSI;
59         u1Byte                                  TrafficProfile;
60         u1Byte                                  linkRole;
61 }HCI_LINK_INFO, *PHCI_LINK_INFO;
62
63 #define MAX_BT_ACL_LINK_NUM                             8
64
65 typedef struct _HCI_EXT_CONFIG{
66         HCI_LINK_INFO                           aclLink[MAX_BT_ACL_LINK_NUM];
67         u1Byte                                  btOperationCode;
68         u2Byte                                  CurrentConnectHandle;
69         u1Byte                                  CurrentIncomingTrafficMode;
70         u1Byte                                  CurrentOutgoingTrafficMode;
71
72         u1Byte                                  NumberOfACL;
73         u1Byte                                  NumberOfSCO;
74         u1Byte                                  CurrentBTStatus;
75         u2Byte                                  HCIExtensionVer;
76
77         BOOLEAN                                 bEnableWifiScanNotify;
78 }HCI_EXT_CONFIG, *PHCI_EXT_CONFIG;
79
80 typedef struct _HCI_PHY_LINK_BSS_INFO{
81         u2Byte                                          bdCap;                  // capability information
82
83         // Qos related. Added by Annie, 2005-11-01.
84         //BSS_QOS                                               BssQos;         
85         
86 }HCI_PHY_LINK_BSS_INFO, *PHCI_PHY_LINK_BSS_INFO;
87
88 typedef enum _BT_CONNECT_TYPE{
89         BT_CONNECT_AUTH_REQ                                                             =0x00,  
90         BT_CONNECT_AUTH_RSP                                                             =0x01,
91         BT_CONNECT_ASOC_REQ                                                             =0x02,
92         BT_CONNECT_ASOC_RSP                                                             =0x03,
93         BT_DISCONNECT                                                                           =0x04
94 }BT_CONNECT_TYPE,*PBT_CONNECT_TYPE;
95
96
97 typedef struct _PACKET_IRP_HCIEVENT_DATA {
98             u8          EventCode;
99             u8          Length; //total cmd length = extension event length+1(extension event code length)
100             u8          Data[1]; // byte1 is extension event code
101 } rtw_HCI_event;
102
103
104 struct btinfo_8761ATV {
105         u8 cid;
106         u8 len;
107
108         u8 bConnection:1;
109         u8 bSCOeSCO:1;
110         u8 bInQPage:1;
111         u8 bACLBusy:1;
112         u8 bSCOBusy:1;
113         u8 bHID:1;
114         u8 bA2DP:1;
115         u8 bFTP:1;
116
117         u8 retry_cnt:4;
118         u8 rsvd_34:1;
119         u8 bPage:1;
120         u8 TRxMask:1;
121         u8 Sniff_attempt:1;
122
123         u8 rssi;
124
125         u8 A2dp_rate:1;
126         u8 ReInit:1;
127         u8 MaxPower:1;
128         u8 bEnIgnoreWlanAct:1;
129         u8 TxPowerLow:1;
130         u8 TxPowerHigh:1;
131         u8 eSCO_SCO:1;
132         u8 Master_Slave:1;
133
134         u8 ACL_TRx_TP_low;
135         u8 ACL_TRx_TP_high;
136 };
137
138 #define HCIOPCODE(_OCF, _OGF)     ((_OGF)<<10|(_OCF))
139 #define HCIOPCODELOW(_OCF, _OGF)        (u8)(HCIOPCODE(_OCF, _OGF)&0x00ff)
140 #define HCIOPCODEHIGHT(_OCF, _OGF) (u8)(HCIOPCODE(_OCF, _OGF)>>8)
141 #define HCI_OGF(opCode)  (unsigned char)((0xFC00 & (opCode)) >> 10)
142 #define HCI_OCF(opCode)  ( 0x3FF & (opCode))
143
144
145 typedef enum _HCI_STATUS{
146         HCI_STATUS_SUCCESS                                                                              =0x00, //Success
147         HCI_STATUS_UNKNOW_HCI_CMD                                                               =0x01, //Unknown HCI Command
148         HCI_STATUS_UNKNOW_CONNECT_ID                                                    =0X02, //Unknown Connection Identifier
149         HCI_STATUS_HW_FAIL                                                                              =0X03, //Hardware Failure
150         HCI_STATUS_PAGE_TIMEOUT                                                                 =0X04, //Page Timeout
151         HCI_STATUS_AUTH_FAIL                                                                            =0X05, //Authentication Failure
152         HCI_STATUS_PIN_OR_KEY_MISSING                                                   =0X06, //PIN or Key Missing
153         HCI_STATUS_MEM_CAP_EXCEED                                                               =0X07, //Memory Capacity Exceeded
154         HCI_STATUS_CONNECT_TIMEOUT                                                              =0X08, //Connection Timeout
155         HCI_STATUS_CONNECT_LIMIT                                                                        =0X09, //Connection Limit Exceeded
156         HCI_STATUS_SYN_CONNECT_LIMIT                                                            =0X0a, //Synchronous Connection Limit To A Device Exceeded
157         HCI_STATUS_ACL_CONNECT_EXISTS                                                   =0X0b, //ACL Connection Already Exists
158         HCI_STATUS_CMD_DISALLOW                                                                 =0X0c, //Command Disallowed
159         HCI_STATUS_CONNECT_RJT_LIMIT_RESOURCE                                   =0X0d, //Connection Rejected due to Limited Resources
160         HCI_STATUS_CONNECT_RJT_SEC_REASON                                               =0X0e, //Connection Rejected Due To Security Reasons
161         HCI_STATUS_CONNECT_RJT_UNACCEPT_BD_ADDR                         =0X0f, //Connection Rejected due to Unacceptable BD_ADDR
162         HCI_STATUS_CONNECT_ACCEPT_TIMEOUT                                               =0X10, //Connection Accept Timeout Exceeded
163         HCI_STATUS_UNSUPPORT_FEATURE_PARA_VALUE                         =0X11, //Unsupported Feature or Parameter Value
164         HCI_STATUS_INVALID_HCI_CMD_PARA_VALUE                                   =0X12, //Invalid HCI Command Parameters
165         HCI_STATUS_REMOTE_USER_TERMINATE_CONNECT                                =0X13, //Remote User Terminated Connection
166         HCI_STATUS_REMOTE_DEV_TERMINATE_LOW_RESOURCE                    =0X14, //Remote Device Terminated Connection due to Low Resources
167         HCI_STATUS_REMOTE_DEV_TERMINATE_CONNECT_POWER_OFF       =0X15, //Remote Device Terminated Connection due to Power Off
168         HCI_STATUS_CONNECT_TERMINATE_LOCAL_HOST                         =0X16, //Connection Terminated By Local Host
169         HCI_STATUS_REPEATE_ATTEMPT                                                              =0X17, //Repeated Attempts
170         HCI_STATUS_PAIR_NOT_ALLOW                                                               =0X18, //Pairing Not Allowed
171         HCI_STATUS_UNKNOW_LMP_PDU                                                               =0X19, //Unknown LMP PDU
172         HCI_STATUS_UNSUPPORT_REMOTE_LMP_FEATURE                         =0X1a, //Unsupported Remote Feature / Unsupported LMP Feature
173         HCI_STATUS_SOC_OFFSET_REJECT                                                            =0X1b, //SCO Offset Rejected
174         HCI_STATUS_SOC_INTERVAL_REJECT                                                  =0X1c, //SCO Interval Rejected
175         HCI_STATUS_SOC_AIR_MODE_REJECT                                                  =0X1d,//SCO Air Mode Rejected
176         HCI_STATUS_INVALID_LMP_PARA                                                             =0X1e, //Invalid LMP Parameters
177         HCI_STATUS_UNSPECIFIC_ERROR                                                             =0X1f, //Unspecified Error
178         HCI_STATUS_UNSUPPORT_LMP_PARA_VALUE                                     =0X20, //Unsupported LMP Parameter Value
179         HCI_STATUS_ROLE_CHANGE_NOT_ALLOW                                                =0X21, //Role Change Not Allowed
180         HCI_STATUS_LMP_RESPONSE_TIMEOUT                                                 =0X22, //LMP Response Timeout
181         HCI_STATUS_LMP_ERROR_TRANSACTION_COLLISION                              =0X23, //LMP Error Transaction Collision
182         HCI_STATUS_LMP_PDU_NOT_ALLOW                                                    =0X24, //LMP PDU Not Allowed
183         HCI_STATUS_ENCRYPTION_MODE_NOT_ALLOW                                    =0X25, //Encryption Mode Not Acceptable
184         HCI_STATUS_LINK_KEY_CAN_NOT_CHANGE                                              =0X26, //Link Key Can Not be Changed
185         HCI_STATUS_REQUEST_QOS_NOT_SUPPORT                                              =0X27, //Requested QoS Not Supported
186         HCI_STATUS_INSTANT_PASSED                                                               =0X28, //Instant Passed
187         HCI_STATUS_PAIRING_UNIT_KEY_NOT_SUPPORT                                 =0X29, //Pairing With Unit Key Not Supported
188         HCI_STATUS_DIFFERENT_TRANSACTION_COLLISION                              =0X2a, //Different Transaction Collision
189         HCI_STATUS_RESERVE_1                                                                            =0X2b, //Reserved
190         HCI_STATUS_QOS_UNACCEPT_PARA                                                    =0X2c, //QoS Unacceptable Parameter
191         HCI_STATUS_QOS_REJECT                                                                           =0X2d, //QoS Rejected
192         HCI_STATUS_CHNL_CLASSIFICATION_NOT_SUPPORT                              =0X2e, //Channel Classification Not Supported
193         HCI_STATUS_INSUFFICIENT_SECURITY                                                        =0X2f, //Insufficient Security
194         HCI_STATUS_PARA_OUT_OF_RANGE                                                    =0x30, //Parameter Out Of Mandatory Range
195         HCI_STATUS_RESERVE_2                                                                            =0X31, //Reserved
196         HCI_STATUS_ROLE_SWITCH_PENDING                                                  =0X32, //Role Switch Pending
197         HCI_STATUS_RESERVE_3                                                                            =0X33, //Reserved
198         HCI_STATUS_RESERVE_SOLT_VIOLATION                                               =0X34, //Reserved Slot Violation
199         HCI_STATUS_ROLE_SWITCH_FAIL                                                             =0X35, //Role Switch Failed
200         HCI_STATUS_EXTEND_INQUIRY_RSP_TOO_LARGE                         =0X36, //Extended Inquiry Response Too Large
201         HCI_STATUS_SEC_SIMPLE_PAIRING_NOT_SUPPORT                               =0X37, //Secure Simple Pairing Not Supported By Host.
202         HCI_STATUS_HOST_BUSY_PAIRING                                                            =0X38, //Host Busy - Pairing
203         HCI_STATUS_CONNECT_REJ_NOT_SUIT_CHNL_FOUND                      =0X39, //Connection Rejected due to No Suitable Channel Found
204         HCI_STATUS_CONTROLLER_BUSY                                                              =0X3a  //CONTROLLER BUSY
205 }RTW_HCI_STATUS;
206
207 #define HCI_EVENT_COMMAND_COMPLETE                                      0x0e
208
209 #define OGF_EXTENSION                                                                   0X3f
210 typedef enum HCI_EXTENSION_COMMANDS{
211         HCI_SET_ACL_LINK_DATA_FLOW_MODE                         =0x0010,
212         HCI_SET_ACL_LINK_STATUS                                                 =0x0020,
213         HCI_SET_SCO_LINK_STATUS                                                 =0x0030,
214         HCI_SET_RSSI_VALUE                                                              =0x0040,
215         HCI_SET_CURRENT_BLUETOOTH_STATUS                                =0x0041,
216
217         //The following is for RTK8723
218         HCI_EXTENSION_VERSION_NOTIFY                                    =0x0100,
219         HCI_LINK_STATUS_NOTIFY                                                  =0x0101,
220         HCI_BT_OPERATION_NOTIFY                                                 =0x0102,
221         HCI_ENABLE_WIFI_SCAN_NOTIFY                                             =0x0103,
222         HCI_QUERY_RF_STATUS                                                             =0x0104,
223         HCI_BT_ABNORMAL_NOTIFY                                                  =0x0105,
224         HCI_BT_INFO_NOTIFY                                                              =0x0106,
225         HCI_BT_COEX_NOTIFY                                                              =0x0107,
226         HCI_BT_PATCH_VERSION_NOTIFY                                             =0x0108,
227         HCI_BT_AFH_MAP_NOTIFY                                                   =0x0109,
228         HCI_BT_REGISTER_VALUE_NOTIFY                                    =0x010a,
229         
230         //The following is for IVT
231         HCI_WIFI_CURRENT_CHANNEL                                                =0x0300,        
232         HCI_WIFI_CURRENT_BANDWIDTH                                              =0x0301,                
233         HCI_WIFI_CONNECTION_STATUS                                              =0x0302
234 }RTW_HCI_EXT_CMD;
235
236 #define HCI_EVENT_EXTENSION_RTK                                         0xfe
237 typedef enum HCI_EXTENSION_EVENT_RTK{
238         HCI_EVENT_EXT_WIFI_SCAN_NOTIFY                                                          =0x01,
239         HCI_EVENT_EXT_WIFI_RF_STATUS_NOTIFY                                             =0x02,
240         HCI_EVENT_EXT_BT_INFO_CONTROL                                                           =0x03,
241         HCI_EVENT_EXT_BT_COEX_CONTROL                                                           =0x04
242 }RTW_HCI_EXT_EVENT;
243
244 typedef enum _BT_TRAFFIC_MODE{
245         BT_MOTOR_EXT_BE         = 0x00, //Best Effort. Default. for HCRP, PAN, SDP, RFCOMM-based profiles like FTP,OPP, SPP, DUN, etc.
246         BT_MOTOR_EXT_GUL                = 0x01, //Guaranteed Latency. This type of traffic is used e.g. for HID and AVRCP.
247         BT_MOTOR_EXT_GUB                = 0X02, //Guaranteed Bandwidth.
248         BT_MOTOR_EXT_GULB       = 0X03  //Guaranteed Latency and Bandwidth. for A2DP and VDP.
249 } BT_TRAFFIC_MODE;
250
251 typedef enum _BT_TRAFFIC_MODE_PROFILE{
252         BT_PROFILE_NONE,        
253         BT_PROFILE_A2DP,
254         BT_PROFILE_PAN  ,
255         BT_PROFILE_HID,
256         BT_PROFILE_SCO          
257 } BT_TRAFFIC_MODE_PROFILE;
258
259 typedef enum _HCI_EXT_BT_OPERATION {
260         HCI_BT_OP_NONE                          = 0x0,
261         HCI_BT_OP_INQUIRY_START         = 0x1,
262         HCI_BT_OP_INQUIRY_FINISH                = 0x2,
263         HCI_BT_OP_PAGING_START          = 0x3,
264         HCI_BT_OP_PAGING_SUCCESS                = 0x4,
265         HCI_BT_OP_PAGING_UNSUCCESS      = 0x5,
266         HCI_BT_OP_PAIRING_START         = 0x6,
267         HCI_BT_OP_PAIRING_FINISH                = 0x7,
268         HCI_BT_OP_BT_DEV_ENABLE         = 0x8,
269         HCI_BT_OP_BT_DEV_DISABLE                = 0x9,
270         HCI_BT_OP_MAX
271 } HCI_EXT_BT_OPERATION, *PHCI_EXT_BT_OPERATION;
272
273 typedef struct _BT_MGNT{
274         BOOLEAN                         bBTConnectInProgress;
275         BOOLEAN                         bLogLinkInProgress;
276         BOOLEAN                         bPhyLinkInProgress;
277         BOOLEAN                         bPhyLinkInProgressStartLL;
278         u1Byte                          BtCurrentPhyLinkhandle;
279         u2Byte                          BtCurrentLogLinkhandle; 
280         u1Byte                          CurrentConnectEntryNum;
281         u1Byte                          DisconnectEntryNum;
282         u1Byte                          CurrentBTConnectionCnt;
283         BT_CONNECT_TYPE         BTCurrentConnectType;
284         BT_CONNECT_TYPE         BTReceiveConnectPkt;    
285         u1Byte                          BTAuthCount;
286         u1Byte                          BTAsocCount;
287         BOOLEAN                         bStartSendSupervisionPkt;
288         BOOLEAN                         BtOperationOn;
289         BOOLEAN                         BTNeedAMPStatusChg;
290         BOOLEAN                         JoinerNeedSendAuth;
291         HCI_PHY_LINK_BSS_INFO   bssDesc;
292         HCI_EXT_CONFIG          ExtConfig;
293         BOOLEAN                         bNeedNotifyAMPNoCap;
294         BOOLEAN                         bCreateSpportQos;
295         BOOLEAN                         bSupportProfile;
296         u1Byte                          BTChannel;
297         BOOLEAN                         CheckChnlIsSuit;
298         BOOLEAN                         bBtScan;
299         BOOLEAN                         btLogoTest;
300         BOOLEAN                         bRfStatusNotified;
301         BOOLEAN                         bBtRsvedPageDownload;
302 }BT_MGNT, *PBT_MGNT;
303
304 struct bt_coex_info {
305         /* For Kernel Socket */
306         struct socket *udpsock; 
307         struct sockaddr_in wifi_sockaddr; /*wifi socket*/
308         struct sockaddr_in bt_sockaddr;/* BT socket  */
309         struct sock *sk_store;/*back up socket for UDP RX int*/
310         
311         /* store which socket is OK */
312         u8 sock_open;
313                 
314         u8 BT_attend;
315         u8 is_exist; /* socket exist */
316         BT_MGNT BtMgnt;
317         struct workqueue_struct *btcoex_wq;
318         struct delayed_work recvmsg_work;
319 };
320 #endif //CONFIG_BT_COEXIST_SOCKET_TRX
321
322 #define PACKET_NORMAL                   0
323 #define PACKET_DHCP                             1
324 #define PACKET_ARP                              2
325 #define PACKET_EAPOL                    3
326
327 void rtw_btcoex_Initialize(PADAPTER);
328 void rtw_btcoex_PowerOnSetting(PADAPTER padapter);
329 void rtw_btcoex_PreLoadFirmware(PADAPTER padapter);
330 void rtw_btcoex_HAL_Initialize(PADAPTER padapter, u8 bWifiOnly);
331 void rtw_btcoex_IpsNotify(PADAPTER, u8 type);
332 void rtw_btcoex_LpsNotify(PADAPTER, u8 type);
333 void rtw_btcoex_ScanNotify(PADAPTER, u8 type);
334 void rtw_btcoex_ConnectNotify(PADAPTER, u8 action);
335 void rtw_btcoex_MediaStatusNotify(PADAPTER, u8 mediaStatus);
336 void rtw_btcoex_SpecialPacketNotify(PADAPTER, u8 pktType);
337 void rtw_btcoex_IQKNotify(PADAPTER padapter, u8 state);
338 void rtw_btcoex_BtInfoNotify(PADAPTER, u8 length, u8 *tmpBuf);
339 void rtw_btcoex_SuspendNotify(PADAPTER, u8 state);
340 void rtw_btcoex_HaltNotify(PADAPTER);
341 void rtw_btcoex_SwitchBtTRxMask(PADAPTER);
342 void rtw_btcoex_Switch(PADAPTER, u8 enable);
343 u8 rtw_btcoex_IsBtDisabled(PADAPTER);
344 void rtw_btcoex_Handler(PADAPTER);
345 s32 rtw_btcoex_IsBTCoexRejectAMPDU(PADAPTER padapter);
346 s32 rtw_btcoex_IsBTCoexCtrlAMPDUSize(PADAPTER);
347 u32 rtw_btcoex_GetAMPDUSize(PADAPTER);
348 void rtw_btcoex_SetManualControl(PADAPTER, u8 bmanual);
349 u8 rtw_btcoex_1Ant(PADAPTER);
350 u8 rtw_btcoex_IsBtControlLps(PADAPTER);
351 u8 rtw_btcoex_IsLpsOn(PADAPTER);
352 u8 rtw_btcoex_RpwmVal(PADAPTER);
353 u8 rtw_btcoex_LpsVal(PADAPTER);
354 void rtw_btcoex_SetBTCoexist(PADAPTER, u8 bBtExist);
355 void rtw_btcoex_SetChipType(PADAPTER, u8 chipType);
356 void rtw_btcoex_SetPGAntNum(PADAPTER, u8 antNum);
357 u8 rtw_btcoex_GetPGAntNum(PADAPTER);
358 void rtw_btcoex_SetSingleAntPath(PADAPTER padapter, u8 singleAntPath);
359 u32 rtw_btcoex_GetRaMask(PADAPTER);
360 void rtw_btcoex_RecordPwrMode(PADAPTER, u8 *pCmdBuf, u8 cmdLen);
361 void rtw_btcoex_DisplayBtCoexInfo(PADAPTER, u8 *pbuf, u32 bufsize);
362 void rtw_btcoex_SetDBG(PADAPTER, u32 *pDbgModule);
363 u32 rtw_btcoex_GetDBG(PADAPTER, u8 *pStrBuf, u32 bufSize);
364 u8 rtw_btcoex_IncreaseScanDeviceNum(PADAPTER);
365 u8 rtw_btcoex_IsBtLinkExist(PADAPTER);
366 #ifdef CONFIG_BT_COEXIST_SOCKET_TRX
367 void rtw_btcoex_SetBtPatchVersion(PADAPTER padapter,u16 btHciVer, u16 btPatchVer);
368 void rtw_btcoex_SetHciVersion(PADAPTER  padapter, u16 hciVersion);
369 void rtw_btcoex_StackUpdateProfileInfo(void);
370 void rtw_btcoex_init_socket(_adapter *padapter);
371 void rtw_btcoex_close_socket(_adapter *padapter);
372 void rtw_btcoex_dump_tx_msg(u8 *tx_msg, u8 len, u8 *msg_name);
373 u8 rtw_btcoex_sendmsgbysocket(_adapter *padapter, u8 *msg, u8 msg_size, bool force);
374 u8 rtw_btcoex_create_kernel_socket(_adapter *padapter);
375 void rtw_btcoex_close_kernel_socket(_adapter *padapter);
376 void rtw_btcoex_recvmsgbysocket(void *data);
377 u16 rtw_btcoex_parse_recv_data(u8 *msg, u8 msg_size);
378 u8 rtw_btcoex_btinfo_cmd(PADAPTER padapter, u8 *pbuf, u16 length);
379 void rtw_btcoex_parse_hci_cmd(_adapter *padapter, u8 *cmd, u16 len);
380 void rtw_btcoex_SendEventExtBtCoexControl(PADAPTER Adapter, u8 bNeedDbgRsp, u8 dataLen, void *pData);
381 void rtw_btcoex_SendEventExtBtInfoControl(PADAPTER Adapter, u8 dataLen, void *pData);
382 void rtw_btcoex_SendScanNotify(PADAPTER padapter, u8 scanType);
383 #define BT_SendEventExtBtCoexControl(Adapter, bNeedDbgRsp, dataLen, pData) rtw_btcoex_SendEventExtBtCoexControl(Adapter, bNeedDbgRsp, dataLen, pData)
384 #define BT_SendEventExtBtInfoControl(Adapter, dataLen, pData) rtw_btcoex_SendEventExtBtInfoControl(Adapter, dataLen, pData)
385 #endif //CONFIG_BT_COEXIST_SOCKET_TRX
386
387 // ==================================================
388 // Below Functions are called by BT-Coex
389 // ==================================================
390 void rtw_btcoex_rx_ampdu_apply(PADAPTER);
391 void rtw_btcoex_LPS_Enter(PADAPTER);
392 void rtw_btcoex_LPS_Leave(PADAPTER);
393
394 #endif // __RTW_BTCOEX_H__
395