Commit | Line | Data |
---|---|---|
364e30eb LF |
1 | /****************************************************************************** |
2 | * | |
3 | * Copyright(c) 2007 - 2012 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 | ******************************************************************************/ | |
15 | #ifndef __RTL8723A_BT_COEXIST_H__ | |
16 | #define __RTL8723A_BT_COEXIST_H__ | |
17 | ||
18 | #include <drv_types.h> | |
19 | #include "odm_precomp.h" | |
20 | ||
21 | ||
364e30eb LF |
22 | /* HEADER/PlatformDef.h */ |
23 | enum rt_media_status { | |
24 | RT_MEDIA_DISCONNECT = 0, | |
25 | RT_MEDIA_CONNECT = 1 | |
26 | }; | |
27 | ||
28 | /* ===== Below this line is sync from SD7 driver COMMON/BT.h ===== */ | |
29 | ||
30 | #define BT_TMP_BUF_SIZE 100 | |
31 | ||
32 | void BT_SignalCompensation(struct rtw_adapter *padapter, | |
33 | u8 *rssi_wifi, u8 *rssi_bt); | |
3cd87c12 GD |
34 | void BT_HaltProcess(struct rtw_adapter *padapter); |
35 | void BT_LpsLeave(struct rtw_adapter *padapter); | |
364e30eb LF |
36 | |
37 | ||
38 | #define BT_HsConnectionEstablished(Adapter) false | |
39 | /* ===== End of sync from SD7 driver COMMON/BT.h ===== */ | |
364e30eb LF |
40 | |
41 | /* HEADER/SecurityType.h */ | |
42 | #define TKIP_ENC_KEY_POS 32 /* KEK_LEN+KEK_LEN) */ | |
43 | #define MAXRSNIELEN 256 | |
44 | ||
45 | /* COMMON/Protocol802_11.h */ | |
46 | /* */ | |
47 | /* 802.11 Management frame Status Code field */ | |
48 | /* */ | |
49 | struct octet_string { | |
50 | u8 *Octet; | |
51 | u16 Length; | |
52 | }; | |
53 | ||
54 | ||
55 | /* AES_CCMP specific */ | |
56 | enum { | |
57 | AESCCMP_BLK_SIZE = 16, /* # octets in an AES block */ | |
58 | AESCCMP_MAX_PACKET = 4*512, /* largest packet size */ | |
59 | AESCCMP_N_RESERVED = 0, /* reserved nonce octet value */ | |
60 | AESCCMP_A_DATA = 0x40, /* the Adata bit in the flags */ | |
61 | AESCCMP_M_SHIFT = 3, /* how much to shift the 3-bit M field */ | |
62 | AESCCMP_L_SHIFT = 0, /* how much to shift the 3-bit L field */ | |
63 | AESCCMP_L_SIZE = 2, /* size of the l(m) length field (in octets) */ | |
64 | AESCCMP_OFFSET_SC = 22, | |
65 | AESCCMP_OFFSET_DURATION = 4, | |
66 | AESCCMP_OFFSET_A2 = 10, | |
67 | AESCCMP_OFFSET_A4 = 24, | |
68 | AESCCMP_QC_TID_MASK = 0x0f, | |
69 | AESCCMP_BLK_SIZE_TOTAL = 16*16, /* Added by Annie for CKIP AES MIC BSOD, 2006-08-17. */ | |
70 | /* 16*8 < 4*60 Resove to 16*16 */ | |
71 | }; | |
72 | ||
73 | /* Key Length */ | |
74 | #define PMK_LEN 32 | |
75 | #define PTK_LEN_TKIP 64 | |
76 | #define GTK_LEN 32 | |
77 | #define KEY_NONCE_LEN 32 | |
78 | ||
79 | ||
80 | /* COMMON/Dot11d.h */ | |
81 | struct chnl_txpower_triple { | |
82 | u8 FirstChnl; | |
83 | u8 NumChnls; | |
84 | s8 MaxTxPowerInDbm; | |
85 | }; | |
86 | ||
87 | ||
88 | /* ===== Below this line is sync from SD7 driver COMMON/bt_hci.h ===== */ | |
89 | /* The following is for BT 3.0 + HS HCI COMMAND ERRORS CODES */ | |
90 | ||
91 | #define Max80211PALPDUSize 1492 | |
92 | #define Max80211AMPASSOCLen 672 | |
93 | #define MinGUserPrio 4 | |
94 | #define MaxGUserPrio 7 | |
95 | #define BEUserPrio0 0 | |
96 | #define BEUserPrio1 3 | |
97 | #define Max80211BeaconPeriod 2000 | |
98 | #define ShortRangeModePowerMax 4 | |
99 | ||
100 | #define BT_Default_Chnl 10 | |
101 | #define ACLDataHeaderLen 4 | |
102 | ||
103 | #define BTTotalDataBlockNum 0x100 | |
104 | #define BTLocalBufNum 0x200 | |
105 | #define BTMaxDataBlockLen 0x800 | |
106 | #define BTTOTALBANDWIDTH 0x7530 | |
107 | #define BTMAXBANDGUBANDWIDTH 0x4e20 | |
108 | #define TmpLocalBufSize 0x100 | |
109 | #define BTSynDataPacketLength 0xff | |
110 | /* */ | |
111 | ||
112 | #define BTMaxAuthCount 5 | |
113 | #define BTMaxAsocCount 5 | |
114 | ||
115 | #define MAX_LOGICAL_LINK_NUM 2 /* temporarily define */ | |
116 | #define MAX_BT_ASOC_ENTRY_NUM 2 /* temporarily define */ | |
117 | ||
118 | #define INVALID_PL_HANDLE 0xff | |
119 | #define INVALID_ENTRY_NUM 0xff | |
120 | /* */ | |
121 | ||
122 | #define CAM_BT_START_INDEX (HALF_CAM_ENTRY - 4) /* MAX_BT_ASOC_ENTRY_NUM : 4 !!! */ | |
123 | #define BT_HWCAM_STAR CAM_BT_START_INDEX /* We used HALF_CAM_ENTRY ~ HALF_CAM_ENTRY -MAX_BT_ASOC_ENTRY_NUM */ | |
124 | ||
125 | enum hci_status { | |
126 | HCI_STATUS_SUCCESS = 0x00, /* Success */ | |
127 | HCI_STATUS_UNKNOW_HCI_CMD = 0x01, /* Unknown HCI Command */ | |
128 | HCI_STATUS_UNKNOW_CONNECT_ID = 0X02, /* Unknown Connection Identifier */ | |
129 | HCI_STATUS_HW_FAIL = 0X03, /* Hardware Failure */ | |
130 | HCI_STATUS_PAGE_TIMEOUT = 0X04, /* Page Timeout */ | |
131 | HCI_STATUS_AUTH_FAIL = 0X05, /* Authentication Failure */ | |
132 | HCI_STATUS_PIN_OR_KEY_MISSING = 0X06, /* PIN or Key Missing */ | |
133 | HCI_STATUS_MEM_CAP_EXCEED = 0X07, /* Memory Capacity Exceeded */ | |
134 | HCI_STATUS_CONNECT_TIMEOUT = 0X08, /* Connection Timeout */ | |
135 | HCI_STATUS_CONNECT_LIMIT = 0X09, /* Connection Limit Exceeded */ | |
136 | HCI_STATUS_SYN_CONNECT_LIMIT = 0X0a, /* Synchronous Connection Limit To A Device Exceeded */ | |
137 | HCI_STATUS_ACL_CONNECT_EXISTS = 0X0b, /* ACL Connection Already Exists */ | |
138 | HCI_STATUS_CMD_DISALLOW = 0X0c, /* Command Disallowed */ | |
139 | HCI_STATUS_CONNECT_RJT_LIMIT_RESOURCE = 0X0d, /* Connection Rejected due to Limited Resources */ | |
140 | HCI_STATUS_CONNECT_RJT_SEC_REASON = 0X0e, /* Connection Rejected Due To Security Reasons */ | |
141 | HCI_STATUS_CONNECT_RJT_UNACCEPT_BD_ADDR = 0X0f, /* Connection Rejected due to Unacceptable BD_ADDR */ | |
142 | HCI_STATUS_CONNECT_ACCEPT_TIMEOUT = 0X10, /* Connection Accept Timeout Exceeded */ | |
143 | HCI_STATUS_UNSUPPORT_FEATURE_PARA_VALUE = 0X11, /* Unsupported Feature or Parameter Value */ | |
144 | HCI_STATUS_INVALID_HCI_CMD_PARA_VALUE = 0X12, /* Invalid HCI Command Parameters */ | |
145 | HCI_STATUS_REMOTE_USER_TERMINATE_CONNECT = 0X13, /* Remote User Terminated Connection */ | |
146 | HCI_STATUS_REMOTE_DEV_TERMINATE_LOW_RESOURCE = 0X14, /* Remote Device Terminated Connection due to Low Resources */ | |
147 | HCI_STATUS_REMOTE_DEV_TERMINATE_CONNECT_POWER_OFF = 0X15, /* Remote Device Terminated Connection due to Power Off */ | |
148 | HCI_STATUS_CONNECT_TERMINATE_LOCAL_HOST = 0X16, /* Connection Terminated By Local Host */ | |
149 | HCI_STATUS_REPEATE_ATTEMPT = 0X17, /* Repeated Attempts */ | |
150 | HCI_STATUS_PAIR_NOT_ALLOW = 0X18, /* Pairing Not Allowed */ | |
151 | HCI_STATUS_UNKNOW_LMP_PDU = 0X19, /* Unknown LMP PDU */ | |
152 | HCI_STATUS_UNSUPPORT_REMOTE_LMP_FEATURE = 0X1a, /* Unsupported Remote Feature / Unsupported LMP Feature */ | |
153 | HCI_STATUS_SOC_OFFSET_REJECT = 0X1b, /* SCO Offset Rejected */ | |
154 | HCI_STATUS_SOC_INTERVAL_REJECT = 0X1c, /* SCO Interval Rejected */ | |
155 | HCI_STATUS_SOC_AIR_MODE_REJECT = 0X1d,/* SCO Air Mode Rejected */ | |
156 | HCI_STATUS_INVALID_LMP_PARA = 0X1e, /* Invalid LMP Parameters */ | |
157 | HCI_STATUS_UNSPECIFIC_ERROR = 0X1f, /* Unspecified Error */ | |
158 | HCI_STATUS_UNSUPPORT_LMP_PARA_VALUE = 0X20, /* Unsupported LMP Parameter Value */ | |
159 | HCI_STATUS_ROLE_CHANGE_NOT_ALLOW = 0X21, /* Role Change Not Allowed */ | |
160 | HCI_STATUS_LMP_RESPONSE_TIMEOUT = 0X22, /* LMP Response Timeout */ | |
161 | HCI_STATUS_LMP_ERROR_TRANSACTION_COLLISION = 0X23, /* LMP Error Transaction Collision */ | |
162 | HCI_STATUS_LMP_PDU_NOT_ALLOW = 0X24, /* LMP PDU Not Allowed */ | |
163 | HCI_STATUS_ENCRYPTION_MODE_NOT_ALLOW = 0X25, /* Encryption Mode Not Acceptable */ | |
164 | HCI_STATUS_LINK_KEY_CAN_NOT_CHANGE = 0X26, /* Link Key Can Not be Changed */ | |
165 | HCI_STATUS_REQUEST_QOS_NOT_SUPPORT = 0X27, /* Requested QoS Not Supported */ | |
166 | HCI_STATUS_INSTANT_PASSED = 0X28, /* Instant Passed */ | |
167 | HCI_STATUS_PAIRING_UNIT_KEY_NOT_SUPPORT = 0X29, /* Pairing With Unit Key Not Supported */ | |
168 | HCI_STATUS_DIFFERENT_TRANSACTION_COLLISION = 0X2a, /* Different Transaction Collision */ | |
169 | HCI_STATUS_RESERVE_1 = 0X2b, /* Reserved */ | |
170 | HCI_STATUS_QOS_UNACCEPT_PARA = 0X2c, /* QoS Unacceptable Parameter */ | |
171 | HCI_STATUS_QOS_REJECT = 0X2d, /* QoS Rejected */ | |
172 | HCI_STATUS_CHNL_CLASSIFICATION_NOT_SUPPORT = 0X2e, /* Channel Classification Not Supported */ | |
173 | HCI_STATUS_INSUFFICIENT_SECURITY = 0X2f, /* Insufficient Security */ | |
174 | HCI_STATUS_PARA_OUT_OF_RANGE = 0x30, /* Parameter Out Of Mandatory Range */ | |
175 | HCI_STATUS_RESERVE_2 = 0X31, /* Reserved */ | |
176 | HCI_STATUS_ROLE_SWITCH_PENDING = 0X32, /* Role Switch Pending */ | |
177 | HCI_STATUS_RESERVE_3 = 0X33, /* Reserved */ | |
178 | HCI_STATUS_RESERVE_SOLT_VIOLATION = 0X34, /* Reserved Slot Violation */ | |
179 | HCI_STATUS_ROLE_SWITCH_FAIL = 0X35, /* Role Switch Failed */ | |
180 | HCI_STATUS_EXTEND_INQUIRY_RSP_TOO_LARGE = 0X36, /* Extended Inquiry Response Too Large */ | |
181 | HCI_STATUS_SEC_SIMPLE_PAIRING_NOT_SUPPORT = 0X37, /* Secure Simple Pairing Not Supported By Host. */ | |
182 | HCI_STATUS_HOST_BUSY_PAIRING = 0X38, /* Host Busy - Pairing */ | |
183 | HCI_STATUS_CONNECT_REJ_NOT_SUIT_CHNL_FOUND = 0X39, /* Connection Rejected due to No Suitable Channel Found */ | |
184 | HCI_STATUS_CONTROLLER_BUSY = 0X3a /* CONTROLLER BUSY */ | |
185 | }; | |
186 | ||
187 | /* */ | |
188 | /* The following is for BT 3.0 + HS HCI COMMAND */ | |
189 | /* */ | |
190 | ||
191 | /* bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ | |
192 | /* | OCF | OGF | */ | |
193 | /* */ | |
194 | ||
195 | /* OGF 0x01 */ | |
196 | #define LINK_CONTROL_COMMANDS 0x01 | |
197 | enum link_control_commands { | |
198 | HCI_INQUIRY = 0x0001, | |
199 | HCI_INQUIRY_CANCEL = 0x0002, | |
200 | HCI_PERIODIC_INQUIRY_MODE = 0x0003, | |
201 | HCI_EXIT_PERIODIC_INQUIRY_MODE = 0x0004, | |
202 | HCI_CREATE_CONNECTION = 0x0005, | |
203 | HCI_DISCONNECT = 0x0006, | |
204 | HCI_CREATE_CONNECTION_CANCEL = 0x0008, | |
205 | HCI_ACCEPT_CONNECTIONREQUEST = 0x0009, | |
206 | HCI_REJECT_CONNECTION_REQUEST = 0x000a, | |
207 | HCI_LINK_KEY_REQUEST_REPLY = 0x000b, | |
208 | HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY = 0x000c, | |
209 | HCI_PIN_CODE_REQUEST_REPLY = 0x000d, | |
210 | HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY = 0x000e, | |
211 | HCI_CHANGE_CONNECTION_PACKET_TYPE = 0x000f, | |
212 | HCI_AUTHENTICATION_REQUESTED = 0x0011, | |
213 | HCI_SET_CONNECTION_ENCRYPTION = 0x0013, | |
214 | HCI_CHANGE_CONNECTION_LINK_KEY = 0x0015, | |
215 | HCI_MASTER_LINK_KEY = 0x0017, | |
216 | HCI_REMOTE_NAME_REQUEST = 0x0019, | |
217 | HCI_REMOTE_NAME_REQUEST_CANCEL = 0x001a, | |
218 | HCI_READ_REMOTE_SUPPORTED_FEATURES = 0x001b, | |
219 | HCI_READ_REMOTE_EXTENDED_FEATURES = 0x001c, | |
220 | HCI_READ_REMOTE_VERSION_INFORMATION = 0x001d, | |
221 | HCI_READ_CLOCK_OFFSET = 0x001f, | |
222 | HCI_READ_LMP_HANDLE = 0x0020, | |
223 | HCI_SETUP_SYNCHRONOUS_CONNECTION = 0x0028, | |
224 | HCI_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST = 0x0029, | |
225 | HCI_REJECT_SYNCHRONOUS_CONNECTION_REQUEST = 0x002a, | |
226 | HCI_IO_CAPABILITY_REQUEST_REPLY = 0x002b, | |
227 | HCI_USER_CONFIRMATION_REQUEST_REPLY = 0x002c, | |
228 | HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY = 0x002d, | |
229 | HCI_USER_PASSKEY_REQUEST_REPLY = 0x002e, | |
230 | HCI_USER_PASSKEY_REQUESTNEGATIVE_REPLY = 0x002f, | |
231 | HCI_REMOTE_OOB_DATA_REQUEST_REPLY = 0x0030, | |
232 | HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY = 0x0033, | |
233 | HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY = 0x0034, | |
234 | HCI_CREATE_PHYSICAL_LINK = 0x0035, | |
235 | HCI_ACCEPT_PHYSICAL_LINK = 0x0036, | |
236 | HCI_DISCONNECT_PHYSICAL_LINK = 0x0037, | |
237 | HCI_CREATE_LOGICAL_LINK = 0x0038, | |
238 | HCI_ACCEPT_LOGICAL_LINK = 0x0039, | |
239 | HCI_DISCONNECT_LOGICAL_LINK = 0x003a, | |
240 | HCI_LOGICAL_LINK_CANCEL = 0x003b, | |
241 | HCI_FLOW_SPEC_MODIFY = 0x003c | |
242 | }; | |
243 | ||
244 | /* OGF 0x02 */ | |
245 | #define HOLD_MODE_COMMAND 0x02 | |
246 | enum hold_mode_command { | |
247 | HCI_HOLD_MODE = 0x0001, | |
248 | HCI_SNIFF_MODE = 0x0002, | |
249 | HCI_EXIT_SNIFF_MODE = 0x0003, | |
250 | HCI_PARK_STATE = 0x0005, | |
251 | HCI_EXIT_PARK_STATE = 0x0006, | |
252 | HCI_QOS_SETUP = 0x0007, | |
253 | HCI_ROLE_DISCOVERY = 0x0009, | |
254 | HCI_SWITCH_ROLE = 0x000b, | |
255 | HCI_READ_LINK_POLICY_SETTINGS = 0x000c, | |
256 | HCI_WRITE_LINK_POLICY_SETTINGS = 0x000d, | |
257 | HCI_READ_DEFAULT_LINK_POLICY_SETTINGS = 0x000e, | |
258 | HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS = 0x000f, | |
259 | HCI_FLOW_SPECIFICATION = 0x0010, | |
260 | HCI_SNIFF_SUBRATING = 0x0011 | |
261 | }; | |
262 | ||
263 | /* OGF 0x03 */ | |
264 | #define OGF_SET_EVENT_MASK_COMMAND 0x03 | |
265 | enum set_event_mask_command { | |
266 | HCI_SET_EVENT_MASK = 0x0001, | |
267 | HCI_RESET = 0x0003, | |
268 | HCI_SET_EVENT_FILTER = 0x0005, | |
269 | HCI_FLUSH = 0x0008, | |
270 | HCI_READ_PIN_TYPE = 0x0009, | |
271 | HCI_WRITE_PIN_TYPE = 0x000a, | |
272 | HCI_CREATE_NEW_UNIT_KEY = 0x000b, | |
273 | HCI_READ_STORED_LINK_KEY = 0x000d, | |
274 | HCI_WRITE_STORED_LINK_KEY = 0x0011, | |
275 | HCI_DELETE_STORED_LINK_KEY = 0x0012, | |
276 | HCI_WRITE_LOCAL_NAME = 0x0013, | |
277 | HCI_READ_LOCAL_NAME = 0x0014, | |
278 | HCI_READ_CONNECTION_ACCEPT_TIMEOUT = 0x0015, | |
279 | HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT = 0x0016, | |
280 | HCI_READ_PAGE_TIMEOUT = 0x0017, | |
281 | HCI_WRITE_PAGE_TIMEOUT = 0x0018, | |
282 | HCI_READ_SCAN_ENABLE = 0x0019, | |
283 | HCI_WRITE_SCAN_ENABLE = 0x001a, | |
284 | HCI_READ_PAGE_SCAN_ACTIVITY = 0x001b, | |
285 | HCI_WRITE_PAGE_SCAN_ACTIVITY = 0x001c, | |
286 | HCI_READ_INQUIRY_SCAN_ACTIVITY = 0x001d, | |
287 | HCI_WRITE_INQUIRY_SCAN_ACTIVITY = 0x001e, | |
288 | HCI_READ_AUTHENTICATION_ENABLE = 0x001f, | |
289 | HCI_WRITE_AUTHENTICATION_ENABLE = 0x0020, | |
290 | HCI_READ_CLASS_OF_DEVICE = 0x0023, | |
291 | HCI_WRITE_CLASS_OF_DEVICE = 0x0024, | |
292 | HCI_READ_VOICE_SETTING = 0x0025, | |
293 | HCI_WRITE_VOICE_SETTING = 0x0026, | |
294 | HCI_READ_AUTOMATIC_FLUSH_TIMEOUT = 0x0027, | |
295 | HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT = 0x0028, | |
296 | HCI_READ_NUM_BROADCAST_RETRANSMISSIONS = 0x0029, | |
297 | HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS = 0x002a, | |
298 | HCI_READ_HOLD_MODE_ACTIVITY = 0x002b, | |
299 | HCI_WRITE_HOLD_MODE_ACTIVITY = 0x002c, | |
300 | HCI_READ_SYNCHRONOUS_FLOW_CONTROL_ENABLE = 0x002e, | |
301 | HCI_WRITE_SYNCHRONOUS_FLOW_CONTROL_ENABLE = 0x002f, | |
302 | HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL = 0x0031, | |
303 | HCI_HOST_BUFFER_SIZE = 0x0033, | |
304 | HCI_HOST_NUMBER_OF_COMPLETED_PACKETS = 0x0035, | |
305 | HCI_READ_LINK_SUPERVISION_TIMEOUT = 0x0036, | |
306 | HCI_WRITE_LINK_SUPERVISION_TIMEOUT = 0x0037, | |
307 | HCI_READ_NUMBER_OF_SUPPORTED_IAC = 0x0038, | |
308 | HCI_READ_CURRENT_IAC_LAP = 0x0039, | |
309 | HCI_WRITE_CURRENT_IAC_LAP = 0x003a, | |
310 | HCI_READ_PAGE_SCAN_MODE = 0x003d, | |
311 | HCI_WRITE_PAGE_SCAN_MODE = 0x003e, | |
312 | HCI_SET_AFH_HOST_CHANNEL_CLASSIFICATION = 0x003f, | |
313 | HCI_READ_INQUIRY_SCAN_TYPE = 0x0042, | |
314 | HCI_WRITE_INQUIRY_SCAN_TYPE = 0x0043, | |
315 | HCI_READ_INQUIRY_MODE = 0x0044, | |
316 | HCI_WRITE_INQUIRY_MODE = 0x0045, | |
317 | HCI_READ_PAGE_SCAN_TYPE = 0x0046, | |
318 | HCI_WRITE_PAGE_SCAN_TYPE = 0x0047, | |
319 | HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE = 0x0048, | |
320 | HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE = 0x0049, | |
321 | HCI_READ_EXTENDED_INQUIRY_RESPONSE = 0x0051, | |
322 | HCI_WRITE_EXTENDED_INQUIRY_RESPONSE = 0x0052, | |
323 | HCI_REFRESH_ENCRYPTION_KEY = 0x0053, | |
324 | HCI_READ_SIMPLE_PAIRING_MODE = 0x0055, | |
325 | HCI_WRITE_SIMPLE_PAIRING_MODE = 0x0056, | |
326 | HCI_READ_LOCAL_OOB_DATA = 0x0057, | |
327 | HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL = 0x0058, | |
328 | HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL = 0x0059, | |
329 | HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING = 0x005a, | |
330 | HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING = 0x005b, | |
331 | HCI_ENHANCED_FLUSH = 0x005f, | |
332 | HCI_SEND_KEYPRESS_NOTIFICATION = 0x0060, | |
333 | HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT = 0x0061, | |
334 | HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT = 0x0062, | |
335 | HCI_SET_EVENT_MASK_PAGE_2 = 0x0063, | |
336 | HCI_READ_LOCATION_DATA = 0x0064, | |
337 | HCI_WRITE_LOCATION_DATA = 0x0065, | |
338 | HCI_READ_FLOW_CONTROL_MODE = 0x0066, | |
339 | HCI_WRITE_FLOW_CONTROL_MODE = 0x0067, | |
340 | HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL = 0x0068, | |
341 | HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT = 0x0069, | |
342 | HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT = 0x006a, | |
343 | HCI_SHORT_RANGE_MODE = 0x006b | |
344 | }; | |
345 | ||
346 | /* OGF 0x04 */ | |
347 | #define OGF_INFORMATIONAL_PARAMETERS 0x04 | |
348 | enum informational_params { | |
349 | HCI_READ_LOCAL_VERSION_INFORMATION = 0x0001, | |
350 | HCI_READ_LOCAL_SUPPORTED_COMMANDS = 0x0002, | |
351 | HCI_READ_LOCAL_SUPPORTED_FEATURES = 0x0003, | |
352 | HCI_READ_LOCAL_EXTENDED_FEATURES = 0x0004, | |
353 | HCI_READ_BUFFER_SIZE = 0x0005, | |
354 | HCI_READ_BD_ADDR = 0x0009, | |
355 | HCI_READ_DATA_BLOCK_SIZE = 0x000a | |
356 | }; | |
357 | ||
358 | /* OGF 0x05 */ | |
359 | #define OGF_STATUS_PARAMETERS 0x05 | |
360 | enum status_params { | |
361 | HCI_READ_FAILED_CONTACT_COUNTER = 0x0001, | |
362 | HCI_RESET_FAILED_CONTACT_COUNTER = 0x0002, | |
363 | HCI_READ_LINK_QUALITY = 0x0003, | |
364 | HCI_READ_RSSI = 0x0005, | |
365 | HCI_READ_AFH_CHANNEL_MAP = 0x0006, | |
366 | HCI_READ_CLOCK = 0x0007, | |
367 | HCI_READ_ENCRYPTION_KEY_SIZE = 0x0008, | |
368 | HCI_READ_LOCAL_AMP_INFO = 0x0009, | |
369 | HCI_READ_LOCAL_AMP_ASSOC = 0x000a, | |
370 | HCI_WRITE_REMOTE_AMP_ASSOC = 0x000b | |
371 | }; | |
372 | ||
373 | /* OGF 0x06 */ | |
374 | #define OGF_TESTING_COMMANDS 0x06 | |
375 | enum testing_commands { | |
376 | HCI_READ_LOOPBACK_MODE = 0x0001, | |
377 | HCI_WRITE_LOOPBACK_MODE = 0x0002, | |
378 | HCI_ENABLE_DEVICE_UNDER_TEST_MODE = 0x0003, | |
379 | HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE = 0x0004, | |
380 | HCI_ENABLE_AMP_RECEIVER_REPORTS = 0x0007, | |
381 | HCI_AMP_TEST_END = 0x0008, | |
382 | HCI_AMP_TEST_COMMAND = 0x0009 | |
383 | }; | |
384 | ||
385 | /* OGF 0x3f */ | |
386 | #define OGF_EXTENSION 0X3f | |
387 | enum hci_extension_commands { | |
388 | HCI_SET_ACL_LINK_DATA_FLOW_MODE = 0x0010, | |
389 | HCI_SET_ACL_LINK_STATUS = 0x0020, | |
390 | HCI_SET_SCO_LINK_STATUS = 0x0030, | |
391 | HCI_SET_RSSI_VALUE = 0x0040, | |
392 | HCI_SET_CURRENT_BLUETOOTH_STATUS = 0x0041, | |
393 | ||
394 | /* The following is for RTK8723 */ | |
395 | HCI_EXTENSION_VERSION_NOTIFY = 0x0100, | |
396 | HCI_LINK_STATUS_NOTIFY = 0x0101, | |
397 | HCI_BT_OPERATION_NOTIFY = 0x0102, | |
398 | HCI_ENABLE_WIFI_SCAN_NOTIFY = 0x0103, | |
399 | ||
400 | ||
401 | /* The following is for IVT */ | |
402 | HCI_WIFI_CURRENT_CHANNEL = 0x0300, | |
403 | HCI_WIFI_CURRENT_BANDWIDTH = 0x0301, | |
404 | HCI_WIFI_CONNECTION_STATUS = 0x0302, | |
405 | }; | |
406 | ||
407 | enum bt_spec { | |
408 | BT_SPEC_1_0_b = 0x00, | |
409 | BT_SPEC_1_1 = 0x01, | |
410 | BT_SPEC_1_2 = 0x02, | |
411 | BT_SPEC_2_0_EDR = 0x03, | |
412 | BT_SPEC_2_1_EDR = 0x04, | |
413 | BT_SPEC_3_0_HS = 0x05, | |
414 | BT_SPEC_4_0 = 0x06 | |
415 | }; | |
416 | ||
417 | /* The following is for BT 3.0 + HS EVENTS */ | |
418 | enum hci_event { | |
419 | HCI_EVENT_INQUIRY_COMPLETE = 0x01, | |
420 | HCI_EVENT_INQUIRY_RESULT = 0x02, | |
421 | HCI_EVENT_CONNECTION_COMPLETE = 0x03, | |
422 | HCI_EVENT_CONNECTION_REQUEST = 0x04, | |
423 | HCI_EVENT_DISCONNECTION_COMPLETE = 0x05, | |
424 | HCI_EVENT_AUTHENTICATION_COMPLETE = 0x06, | |
425 | HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE = 0x07, | |
426 | HCI_EVENT_ENCRYPTION_CHANGE = 0x08, | |
427 | HCI_EVENT_CHANGE_LINK_KEY_COMPLETE = 0x09, | |
428 | HCI_EVENT_MASTER_LINK_KEY_COMPLETE = 0x0a, | |
429 | HCI_EVENT_READ_REMOTE_SUPPORT_FEATURES_COMPLETE = 0x0b, | |
430 | HCI_EVENT_READ_REMOTE_VER_INFO_COMPLETE = 0x0c, | |
431 | HCI_EVENT_QOS_SETUP_COMPLETE = 0x0d, | |
432 | HCI_EVENT_COMMAND_COMPLETE = 0x0e, | |
433 | HCI_EVENT_COMMAND_STATUS = 0x0f, | |
434 | HCI_EVENT_HARDWARE_ERROR = 0x10, | |
435 | HCI_EVENT_FLUSH_OCCRUED = 0x11, | |
436 | HCI_EVENT_ROLE_CHANGE = 0x12, | |
437 | HCI_EVENT_NUMBER_OF_COMPLETE_PACKETS = 0x13, | |
438 | HCI_EVENT_MODE_CHANGE = 0x14, | |
439 | HCI_EVENT_RETURN_LINK_KEYS = 0x15, | |
440 | HCI_EVENT_PIN_CODE_REQUEST = 0x16, | |
441 | HCI_EVENT_LINK_KEY_REQUEST = 0x17, | |
442 | HCI_EVENT_LINK_KEY_NOTIFICATION = 0x18, | |
443 | HCI_EVENT_LOOPBACK_COMMAND = 0x19, | |
444 | HCI_EVENT_DATA_BUFFER_OVERFLOW = 0x1a, | |
445 | HCI_EVENT_MAX_SLOTS_CHANGE = 0x1b, | |
446 | HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE = 0x1c, | |
447 | HCI_EVENT_CONNECT_PACKET_TYPE_CHANGE = 0x1d, | |
448 | HCI_EVENT_QOS_VIOLATION = 0x1e, | |
449 | HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE = 0x20, | |
450 | HCI_EVENT_FLOW_SEPC_COMPLETE = 0x21, | |
451 | HCI_EVENT_INQUIRY_RESULT_WITH_RSSI = 0x22, | |
452 | HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE = 0x23, | |
453 | HCI_EVENT_SYNC_CONNECT_COMPLETE = 0x2c, | |
454 | HCI_EVENT_SYNC_CONNECT_CHANGE = 0x2d, | |
455 | HCI_EVENT_SNIFFER_SUBRATING = 0x2e, | |
456 | HCI_EVENT_EXTENTED_INQUIRY_RESULT = 0x2f, | |
457 | HCI_EVENT_ENCRYPTION_KEY_REFLASH_COMPLETE = 0x30, | |
458 | HCI_EVENT_IO_CAPIBILITY_COMPLETE = 0x31, | |
459 | HCI_EVENT_IO_CAPIBILITY_RESPONSE = 0x32, | |
460 | HCI_EVENT_USER_CONFIRMTION_REQUEST = 0x33, | |
461 | HCI_EVENT_USER_PASSKEY_REQUEST = 0x34, | |
462 | HCI_EVENT_REMOTE_OOB_DATA_REQUEST = 0x35, | |
463 | HCI_EVENT_SIMPLE_PAIRING_COMPLETE = 0x36, | |
464 | HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGE = 0x38, | |
465 | HCI_EVENT_ENHANCED_FLUSH_COMPLETE = 0x39, | |
466 | HCI_EVENT_USER_PASSKEY_NOTIFICATION = 0x3b, | |
467 | HCI_EVENT_KEYPRESS_NOTIFICATION = 0x3c, | |
468 | HCI_EVENT_REMOTE_HOST_SUPPORT_FEATURES_NOTIFICATION = 0x3d, | |
469 | HCI_EVENT_PHY_LINK_COMPLETE = 0x40, | |
470 | HCI_EVENT_CHANNEL_SELECT = 0x41, | |
471 | HCI_EVENT_DISCONNECT_PHY_LINK_COMPLETE = 0x42, | |
472 | HCI_EVENT_PHY_LINK_LOSS_EARLY_WARNING = 0x43, | |
473 | HCI_EVENT_PHY_LINK_RECOVER = 0x44, | |
474 | HCI_EVENT_LOGICAL_LINK_COMPLETE = 0x45, | |
475 | HCI_EVENT_DISCONNECT_LOGICAL_LINK_COMPLETE = 0x46, | |
476 | HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE = 0x47, | |
477 | HCI_EVENT_NUM_OF_COMPLETE_DATA_BLOCKS = 0x48, | |
478 | HCI_EVENT_AMP_START_TEST = 0x49, | |
479 | HCI_EVENT_AMP_TEST_END = 0x4a, | |
480 | HCI_EVENT_AMP_RECEIVER_REPORT = 0x4b, | |
481 | HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE = 0x4c, | |
482 | HCI_EVENT_AMP_STATUS_CHANGE = 0x4d, | |
483 | HCI_EVENT_EXTENSION_RTK = 0xfe, | |
484 | HCI_EVENT_EXTENSION_MOTO = 0xff, | |
485 | }; | |
486 | ||
487 | enum hci_extension_event_moto { | |
488 | HCI_EVENT_GET_BT_RSSI = 0x01, | |
489 | }; | |
490 | ||
491 | enum hci_extension_event { | |
492 | HCI_EVENT_EXT_WIFI_SCAN_NOTIFY = 0x01, | |
493 | }; | |
494 | ||
495 | enum hci_event_mask_page_2 { | |
496 | EMP2_HCI_EVENT_PHY_LINK_COMPLETE = 0x0000000000000001, | |
497 | EMP2_HCI_EVENT_CHANNEL_SELECT = 0x0000000000000002, | |
498 | EMP2_HCI_EVENT_DISCONNECT_PHY_LINK_COMPLETE = 0x0000000000000004, | |
499 | EMP2_HCI_EVENT_PHY_LINK_LOSS_EARLY_WARNING = 0x0000000000000008, | |
500 | EMP2_HCI_EVENT_PHY_LINK_RECOVER = 0x0000000000000010, | |
501 | EMP2_HCI_EVENT_LOGICAL_LINK_COMPLETE = 0x0000000000000020, | |
502 | EMP2_HCI_EVENT_DISCONNECT_LOGICAL_LINK_COMPLETE = 0x0000000000000040, | |
503 | EMP2_HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE = 0x0000000000000080, | |
504 | EMP2_HCI_EVENT_NUM_OF_COMPLETE_DATA_BLOCKS = 0x0000000000000100, | |
505 | EMP2_HCI_EVENT_AMP_START_TEST = 0x0000000000000200, | |
506 | EMP2_HCI_EVENT_AMP_TEST_END = 0x0000000000000400, | |
507 | EMP2_HCI_EVENT_AMP_RECEIVER_REPORT = 0x0000000000000800, | |
508 | EMP2_HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE = 0x0000000000001000, | |
509 | EMP2_HCI_EVENT_AMP_STATUS_CHANGE = 0x0000000000002000, | |
510 | }; | |
511 | ||
512 | enum hci_state_machine { | |
513 | HCI_STATE_STARTING = 0x01, | |
514 | HCI_STATE_CONNECTING = 0x02, | |
515 | HCI_STATE_AUTHENTICATING = 0x04, | |
516 | HCI_STATE_CONNECTED = 0x08, | |
517 | HCI_STATE_DISCONNECTING = 0x10, | |
518 | HCI_STATE_DISCONNECTED = 0x20 | |
519 | }; | |
520 | ||
521 | enum amp_assoc_structure_type { | |
522 | AMP_MAC_ADDR = 0x01, | |
523 | AMP_PREFERRED_CHANNEL_LIST = 0x02, | |
524 | AMP_CONNECTED_CHANNEL = 0x03, | |
525 | AMP_80211_PAL_CAP_LIST = 0x04, | |
526 | AMP_80211_PAL_VISION = 0x05, | |
527 | AMP_RESERVED_FOR_TESTING = 0x33 | |
528 | }; | |
529 | ||
530 | enum amp_btap_type { | |
531 | AMP_BTAP_NONE, | |
532 | AMP_BTAP_CREATOR, | |
533 | AMP_BTAP_JOINER | |
534 | }; | |
535 | ||
536 | enum hci_state_with_cmd { | |
537 | STATE_CMD_CREATE_PHY_LINK, | |
538 | STATE_CMD_ACCEPT_PHY_LINK, | |
539 | STATE_CMD_DISCONNECT_PHY_LINK, | |
540 | STATE_CMD_CONNECT_ACCEPT_TIMEOUT, | |
541 | STATE_CMD_MAC_START_COMPLETE, | |
542 | STATE_CMD_MAC_START_FAILED, | |
543 | STATE_CMD_MAC_CONNECT_COMPLETE, | |
544 | STATE_CMD_MAC_CONNECT_FAILED, | |
545 | STATE_CMD_MAC_DISCONNECT_INDICATE, | |
546 | STATE_CMD_MAC_CONNECT_CANCEL_INDICATE, | |
547 | STATE_CMD_4WAY_FAILED, | |
548 | STATE_CMD_4WAY_SUCCESSED, | |
549 | STATE_CMD_ENTER_STATE, | |
550 | STATE_CMD_NO_SUCH_CMD, | |
551 | }; | |
552 | ||
553 | enum hci_service_type { | |
554 | SERVICE_NO_TRAFFIC, | |
555 | SERVICE_BEST_EFFORT, | |
556 | SERVICE_GUARANTEE | |
557 | }; | |
558 | ||
559 | enum hci_traffic_mode { | |
560 | TRAFFIC_MODE_BEST_EFFORT = 0x00, | |
561 | TRAFFIC_MODE_GUARANTEED_LATENCY = 0x01, | |
562 | TRAFFIC_MODE_GUARANTEED_BANDWIDTH = 0x02, | |
563 | TRAFFIC_MODE_GUARANTEED_LATENCY_AND_BANDWIDTH = 0x03 | |
564 | }; | |
565 | ||
566 | #define HCIOPCODE(_OCF, _OGF) (_OGF<<10|_OCF) | |
567 | #define HCIOPCODELOW(_OCF, _OGF) (u8)(HCIOPCODE(_OCF, _OGF)&0x00ff) | |
568 | #define HCIOPCODEHIGHT(_OCF, _OGF) (u8)(HCIOPCODE(_OCF, _OGF)>>8) | |
569 | ||
570 | #define TWOBYTE_HIGHTBYTE(_DATA) (u8)(_DATA>>8) | |
571 | #define TWOBYTE_LOWBYTE(_DATA) (u8)(_DATA) | |
572 | ||
573 | enum amp_status { | |
574 | AMP_STATUS_AVA_PHY_PWR_DWN = 0x0, | |
575 | AMP_STATUS_BT_USE_ONLY = 0x1, | |
576 | AMP_STATUS_NO_CAPACITY_FOR_BT = 0x2, | |
577 | AMP_STATUS_LOW_CAPACITY_FOR_BT = 0x3, | |
578 | AMP_STATUS_MEDIUM_CAPACITY_FOR_BT = 0x4, | |
579 | AMP_STATUS_HIGH_CAPACITY_FOR_BT = 0x5, | |
580 | AMP_STATUS_FULL_CAPACITY_FOR_BT = 0x6 | |
581 | }; | |
582 | ||
583 | enum bt_wpa_msg_type { | |
584 | Type_BT_4way1st = 0, | |
585 | Type_BT_4way2nd = 1, | |
586 | Type_BT_4way3rd = 2, | |
587 | Type_BT_4way4th = 3, | |
588 | Type_BT_unknow = 4 | |
589 | }; | |
590 | ||
591 | enum bt_connect_type { | |
592 | BT_CONNECT_AUTH_REQ = 0x00, | |
593 | BT_CONNECT_AUTH_RSP = 0x01, | |
594 | BT_CONNECT_ASOC_REQ = 0x02, | |
595 | BT_CONNECT_ASOC_RSP = 0x03, | |
596 | BT_DISCONNECT = 0x04 | |
597 | }; | |
598 | ||
599 | enum bt_ll_service_type { | |
600 | BT_LL_BE = 0x01, | |
601 | BT_LL_GU = 0x02 | |
602 | }; | |
603 | ||
604 | enum bt_ll_flowspec { | |
605 | BT_TX_BE_FS, /* TX best effort flowspec */ | |
606 | BT_RX_BE_FS, /* RX best effort flowspec */ | |
607 | BT_TX_GU_FS, /* TX guaranteed latency flowspec */ | |
608 | BT_RX_GU_FS, /* RX guaranteed latency flowspec */ | |
609 | BT_TX_BE_AGG_FS, /* TX aggregated best effort flowspec */ | |
610 | BT_RX_BE_AGG_FS, /* RX aggregated best effort flowspec */ | |
611 | BT_TX_GU_BW_FS, /* TX guaranteed bandwidth flowspec */ | |
612 | BT_RX_GU_BW_FS, /* RX guaranteed bandwidth flowspec */ | |
613 | BT_TX_GU_LARGE_FS, /* TX guaranteed latency flowspec, for testing only */ | |
614 | BT_RX_GU_LARGE_FS, /* RX guaranteed latency flowspec, for testing only */ | |
615 | }; | |
616 | ||
617 | enum bt_traffic_mode { | |
618 | BT_MOTOR_EXT_BE = 0x00, /* Best Effort. Default. for HCRP, PAN, SDP, RFCOMM-based profiles like FTP, OPP, SPP, DUN, etc. */ | |
619 | BT_MOTOR_EXT_GUL = 0x01, /* Guaranteed Latency. This type of traffic is used e.g. for HID and AVRCP. */ | |
620 | BT_MOTOR_EXT_GUB = 0X02, /* Guaranteed Bandwidth. */ | |
621 | BT_MOTOR_EXT_GULB = 0X03 /* Guaranteed Latency and Bandwidth. for A2DP and VDP. */ | |
622 | }; | |
623 | ||
624 | enum bt_traffic_mode_profile { | |
625 | BT_PROFILE_NONE, | |
626 | BT_PROFILE_A2DP, | |
627 | BT_PROFILE_PAN, | |
628 | BT_PROFILE_HID, | |
629 | BT_PROFILE_SCO | |
630 | }; | |
631 | ||
632 | enum bt_link_role { | |
633 | BT_LINK_MASTER = 0, | |
634 | BT_LINK_SLAVE = 1 | |
635 | }; | |
636 | ||
637 | enum bt_state_wpa_auth { | |
638 | STATE_WPA_AUTH_UNINITIALIZED, | |
639 | STATE_WPA_AUTH_WAIT_PACKET_1, /* Join */ | |
640 | STATE_WPA_AUTH_WAIT_PACKET_2, /* Creat */ | |
641 | STATE_WPA_AUTH_WAIT_PACKET_3, | |
642 | STATE_WPA_AUTH_WAIT_PACKET_4, | |
643 | STATE_WPA_AUTH_SUCCESSED | |
644 | }; | |
645 | ||
646 | #define BT_WPA_AUTH_TIMEOUT_PERIOD 1000 | |
647 | #define BTMaxWPAAuthReTransmitCoun 5 | |
648 | ||
649 | #define MAX_AMP_ASSOC_FRAG_LEN 248 | |
650 | #define TOTAL_ALLOCIATE_ASSOC_LEN 1000 | |
651 | ||
652 | struct hci_flow_spec { | |
653 | u8 Identifier; | |
654 | u8 ServiceType; | |
655 | u16 MaximumSDUSize; | |
656 | u32 SDUInterArrivalTime; | |
657 | u32 AccessLatency; | |
658 | u32 FlushTimeout; | |
659 | }; | |
660 | ||
661 | struct hci_log_link_cmd_data { | |
662 | u8 BtPhyLinkhandle; | |
663 | u16 BtLogLinkhandle; | |
664 | u8 BtTxFlowSpecID; | |
665 | struct hci_flow_spec Tx_Flow_Spec; | |
666 | struct hci_flow_spec Rx_Flow_Spec; | |
667 | u32 TxPacketCount; | |
668 | u32 BestEffortFlushTimeout; | |
669 | ||
670 | u8 bLLCompleteEventIsSet; | |
671 | ||
672 | u8 bLLCancelCMDIsSetandComplete; | |
673 | }; | |
674 | ||
675 | struct hci_phy_link_cmd_data { | |
676 | /* Physical_Link_Handle */ | |
677 | u8 BtPhyLinkhandle; | |
678 | ||
679 | u16 LinkSuperversionTimeout; | |
680 | ||
681 | /* u16 SuperTimeOutCnt; */ | |
682 | ||
683 | /* Dedicated_AMP_Key_Length */ | |
684 | u8 BtAMPKeyLen; | |
685 | /* Dedicated_AMP_Key_Type */ | |
686 | u8 BtAMPKeyType; | |
687 | /* Dedicated_AMP_Key */ | |
688 | u8 BtAMPKey[PMK_LEN]; | |
689 | }; | |
690 | ||
691 | struct amp_assoc_structure { | |
692 | /* TYPE ID */ | |
693 | u8 TypeID; | |
694 | /* Length */ | |
695 | u16 Length; | |
696 | /* Value */ | |
697 | u8 Data[1]; | |
698 | }; | |
699 | ||
700 | struct amp_pref_chnl_regulatory { | |
701 | u8 reXId; | |
702 | u8 regulatoryClass; | |
703 | u8 coverageClass; | |
704 | }; | |
705 | ||
706 | struct amp_assoc_cmd_data { | |
707 | /* Physical_Link_Handle */ | |
708 | u8 BtPhyLinkhandle; | |
709 | /* Length_So_Far */ | |
710 | u16 LenSoFar; | |
711 | ||
712 | u16 MaxRemoteASSOCLen; | |
713 | /* AMP_ASSOC_Remaining_Length */ | |
714 | u16 AMPAssocRemLen; | |
715 | /* AMP_ASSOC_fragment */ | |
716 | void *AMPAssocfragment; | |
717 | }; | |
718 | ||
719 | struct hci_link_info { | |
720 | u16 ConnectHandle; | |
721 | u8 IncomingTrafficMode; | |
722 | u8 OutgoingTrafficMode; | |
723 | u8 BTProfile; | |
724 | u8 BTCoreSpec; | |
725 | s8 BT_RSSI; | |
726 | u8 TrafficProfile; | |
727 | u8 linkRole; | |
728 | }; | |
729 | ||
730 | struct hci_ext_config { | |
731 | struct hci_link_info linkInfo[MAX_BT_ASOC_ENTRY_NUM]; | |
732 | u8 btOperationCode; | |
733 | u16 CurrentConnectHandle; | |
734 | u8 CurrentIncomingTrafficMode; | |
735 | u8 CurrentOutgoingTrafficMode; | |
736 | s8 MIN_BT_RSSI; | |
737 | u8 NumberOfHandle; | |
738 | u8 NumberOfSCO; | |
739 | u8 CurrentBTStatus; | |
740 | u16 HCIExtensionVer; | |
741 | ||
742 | /* Bt coexist related */ | |
743 | u8 btProfileCase; | |
744 | u8 btProfileAction; | |
745 | u8 bManualControl; | |
746 | u8 bBTBusy; | |
747 | u8 bBTA2DPBusy; | |
748 | u8 bEnableWifiScanNotify; | |
749 | ||
750 | u8 bHoldForBtOperation; | |
751 | u32 bHoldPeriodCnt; | |
752 | }; | |
753 | ||
754 | struct hci_acl_packet_data { | |
755 | u16 ACLDataPacketLen; | |
756 | u8 SyncDataPacketLen; | |
757 | u16 TotalNumACLDataPackets; | |
758 | u16 TotalSyncNumDataPackets; | |
759 | }; | |
760 | ||
761 | struct hci_phy_link_bss_info { | |
762 | u16 bdCap; /* capability information */ | |
763 | }; | |
764 | ||
765 | struct packet_irp_hcicmd_data { | |
766 | u16 OCF:10; | |
767 | u16 OGF:6; | |
768 | u8 Length; | |
769 | u8 Data[20]; | |
770 | }; | |
771 | ||
772 | struct bt_asoc_entry { | |
773 | u8 bUsed; | |
774 | u8 mAssoc; | |
775 | u8 b4waySuccess; | |
776 | u8 Bssid[6]; | |
777 | struct hci_phy_link_cmd_data PhyLinkCmdData; | |
778 | ||
779 | struct hci_log_link_cmd_data LogLinkCmdData[MAX_LOGICAL_LINK_NUM]; | |
780 | ||
781 | struct hci_acl_packet_data ACLPacketsData; | |
782 | ||
783 | struct amp_assoc_cmd_data AmpAsocCmdData; | |
784 | struct octet_string BTSsid; | |
785 | u8 BTSsidBuf[33]; | |
786 | ||
787 | enum hci_status PhyLinkDisconnectReason; | |
788 | ||
789 | u8 bSendSupervisionPacket; | |
790 | /* u8 CurrentSuervisionPacketSendNum; */ | |
791 | /* u8 LastSuervisionPacketSendNum; */ | |
792 | u32 NoRxPktCnt; | |
793 | /* Is Creator or Joiner */ | |
794 | enum amp_btap_type AMPRole; | |
795 | ||
796 | /* BT current state */ | |
797 | u8 BtCurrentState; | |
798 | /* BT next state */ | |
799 | u8 BtNextState; | |
800 | ||
801 | u8 bNeedPhysLinkCompleteEvent; | |
802 | ||
803 | enum hci_status PhysLinkCompleteStatus; | |
804 | ||
805 | u8 BTRemoteMACAddr[6]; | |
806 | ||
807 | u32 BTCapability; | |
808 | ||
809 | u8 SyncDataPacketLen; | |
810 | ||
811 | u16 TotalSyncNumDataPackets; | |
812 | u16 TotalNumACLDataPackets; | |
813 | ||
814 | u8 ShortRangeMode; | |
815 | ||
816 | u8 PTK[PTK_LEN_TKIP]; | |
817 | u8 GTK[GTK_LEN]; | |
818 | u8 ANonce[KEY_NONCE_LEN]; | |
819 | u8 SNonce[KEY_NONCE_LEN]; | |
820 | u64 KeyReplayCounter; | |
821 | u8 WPAAuthReplayCount; | |
822 | u8 AESKeyBuf[AESCCMP_BLK_SIZE_TOTAL]; | |
823 | u8 PMK[PMK_LEN]; | |
824 | enum bt_state_wpa_auth BTWPAAuthState; | |
825 | s32 UndecoratedSmoothedPWDB; | |
826 | ||
827 | /* Add for HW security !! */ | |
828 | u8 HwCAMIndex; /* Cam index */ | |
829 | u8 bPeerQosSta; | |
830 | ||
831 | u32 rxSuvpPktCnt; | |
832 | }; | |
833 | ||
834 | struct bt_traffic_statistics { | |
835 | u8 bTxBusyTraffic; | |
836 | u8 bRxBusyTraffic; | |
837 | u8 bIdle; | |
838 | u32 TxPktCntInPeriod; | |
839 | u32 RxPktCntInPeriod; | |
840 | u64 TxPktLenInPeriod; | |
841 | u64 RxPktLenInPeriod; | |
842 | }; | |
843 | ||
844 | struct bt_mgnt { | |
845 | u8 bBTConnectInProgress; | |
846 | u8 bLogLinkInProgress; | |
847 | u8 bPhyLinkInProgress; | |
848 | u8 bPhyLinkInProgressStartLL; | |
849 | u8 BtCurrentPhyLinkhandle; | |
850 | u16 BtCurrentLogLinkhandle; | |
851 | u8 CurrentConnectEntryNum; | |
852 | u8 DisconnectEntryNum; | |
853 | u8 CurrentBTConnectionCnt; | |
854 | enum bt_connect_type BTCurrentConnectType; | |
855 | enum bt_connect_type BTReceiveConnectPkt; | |
856 | u8 BTAuthCount; | |
857 | u8 BTAsocCount; | |
858 | u8 bStartSendSupervisionPkt; | |
859 | u8 BtOperationOn; | |
860 | u8 BTNeedAMPStatusChg; | |
861 | u8 JoinerNeedSendAuth; | |
862 | struct hci_phy_link_bss_info bssDesc; | |
863 | struct hci_ext_config ExtConfig; | |
864 | u8 bNeedNotifyAMPNoCap; | |
865 | u8 bCreateSpportQos; | |
866 | u8 bSupportProfile; | |
867 | u8 BTChannel; | |
868 | u8 CheckChnlIsSuit; | |
869 | u8 bBtScan; | |
870 | u8 btLogoTest; | |
871 | }; | |
872 | ||
873 | struct bt_hci_dgb_info { | |
874 | u32 hciCmdCnt; | |
875 | u32 hciCmdCntUnknown; | |
876 | u32 hciCmdCntCreatePhyLink; | |
877 | u32 hciCmdCntAcceptPhyLink; | |
878 | u32 hciCmdCntDisconnectPhyLink; | |
879 | u32 hciCmdPhyLinkStatus; | |
880 | u32 hciCmdCntCreateLogLink; | |
881 | u32 hciCmdCntAcceptLogLink; | |
882 | u32 hciCmdCntDisconnectLogLink; | |
883 | u32 hciCmdCntReadLocalAmpAssoc; | |
884 | u32 hciCmdCntWriteRemoteAmpAssoc; | |
885 | u32 hciCmdCntSetAclLinkStatus; | |
886 | u32 hciCmdCntSetScoLinkStatus; | |
887 | u32 hciCmdCntExtensionVersionNotify; | |
888 | u32 hciCmdCntLinkStatusNotify; | |
889 | }; | |
890 | ||
891 | struct bt_irp_dgb_info { | |
892 | u32 irpMJCreate; | |
893 | /* Io Control */ | |
894 | u32 irpIoControl; | |
895 | u32 irpIoCtrlHciCmd; | |
896 | u32 irpIoCtrlHciEvent; | |
897 | u32 irpIoCtrlHciTxData; | |
898 | u32 irpIoCtrlHciRxData; | |
899 | u32 irpIoCtrlUnknown; | |
900 | ||
901 | u32 irpIoCtrlHciTxData1s; | |
902 | }; | |
903 | ||
904 | struct bt_packet_dgb_info { | |
905 | u32 btPktTxProbReq; | |
906 | u32 btPktRxProbReq; | |
907 | u32 btPktRxProbReqFail; | |
908 | u32 btPktTxProbRsp; | |
909 | u32 btPktRxProbRsp; | |
910 | u32 btPktTxAuth; | |
911 | u32 btPktRxAuth; | |
912 | u32 btPktRxAuthButDrop; | |
913 | u32 btPktTxAssocReq; | |
914 | u32 btPktRxAssocReq; | |
915 | u32 btPktRxAssocReqButDrop; | |
916 | u32 btPktTxAssocRsp; | |
917 | u32 btPktRxAssocRsp; | |
918 | u32 btPktTxDisassoc; | |
919 | u32 btPktRxDisassoc; | |
920 | u32 btPktRxDeauth; | |
921 | u32 btPktTx4way1st; | |
922 | u32 btPktRx4way1st; | |
923 | u32 btPktTx4way2nd; | |
924 | u32 btPktRx4way2nd; | |
925 | u32 btPktTx4way3rd; | |
926 | u32 btPktRx4way3rd; | |
927 | u32 btPktTx4way4th; | |
928 | u32 btPktRx4way4th; | |
929 | u32 btPktTxLinkSuperReq; | |
930 | u32 btPktRxLinkSuperReq; | |
931 | u32 btPktTxLinkSuperRsp; | |
932 | u32 btPktRxLinkSuperRsp; | |
933 | u32 btPktTxData; | |
934 | u32 btPktRxData; | |
935 | }; | |
936 | ||
937 | struct bt_dgb { | |
938 | u8 dbgCtrl; | |
939 | u32 dbgProfile; | |
940 | struct bt_hci_dgb_info dbgHciInfo; | |
941 | struct bt_irp_dgb_info dbgIrpInfo; | |
942 | struct bt_packet_dgb_info dbgBtPkt; | |
943 | }; | |
944 | ||
945 | struct bt_hci_info { | |
946 | /* 802.11 Pal version specifier */ | |
947 | u8 BTPalVersion; | |
948 | u16 BTPalCompanyID; | |
949 | u16 BTPalsubversion; | |
950 | ||
951 | /* Connected channel list */ | |
952 | u16 BTConnectChnlListLen; | |
953 | u8 BTConnectChnllist[64]; | |
954 | ||
955 | /* Fail contact counter */ | |
956 | u16 FailContactCount; | |
957 | ||
958 | /* Event mask */ | |
959 | u64 BTEventMask; | |
960 | u64 BTEventMaskPage2; | |
961 | ||
962 | /* timeout var */ | |
963 | u16 ConnAcceptTimeout; | |
964 | u16 LogicalAcceptTimeout; | |
965 | u16 PageTimeout; | |
966 | ||
967 | u8 LocationDomainAware; | |
968 | u16 LocationDomain; | |
969 | u8 LocationDomainOptions; | |
970 | u8 LocationOptions; | |
971 | ||
972 | u8 FlowControlMode; | |
973 | ||
974 | /* Preferred channel list */ | |
975 | u16 BtPreChnlListLen; | |
976 | u8 BTPreChnllist[64]; | |
977 | ||
978 | u16 enFlush_LLH; /* enhanced flush handle */ | |
979 | u16 FLTO_LLH; /* enhanced flush handle */ | |
980 | ||
981 | /* */ | |
982 | /* Test command only. */ | |
983 | u8 bInTestMode; | |
984 | u8 bTestIsEnd; | |
985 | u8 bTestNeedReport; | |
986 | u8 TestScenario; | |
987 | u8 TestReportInterval; | |
988 | u8 TestCtrType; | |
989 | u32 TestEventType; | |
990 | u16 TestNumOfFrame; | |
991 | u16 TestNumOfErrFrame; | |
992 | u16 TestNumOfBits; | |
993 | u16 TestNumOfErrBits; | |
994 | /* */ | |
995 | }; | |
996 | ||
997 | struct bt_traffic { | |
998 | /* Add for check replay data */ | |
999 | u8 LastRxUniFragNum; | |
1000 | u16 LastRxUniSeqNum; | |
1001 | ||
1002 | /* s32 EntryMaxUndecoratedSmoothedPWDB; */ | |
1003 | /* s32 EntryMinUndecoratedSmoothedPWDB; */ | |
1004 | ||
1005 | struct bt_traffic_statistics Bt30TrafficStatistics; | |
1006 | }; | |
1007 | ||
1008 | #define RT_WORK_ITEM struct work_struct | |
1009 | ||
1010 | struct bt_security { | |
1011 | /* WPA auth state | |
1012 | * May need to remove to BTSecInfo ... | |
1013 | * enum bt_state_wpa_auth BTWPAAuthState; | |
1014 | */ | |
1015 | struct octet_string RSNIE; | |
1016 | u8 RSNIEBuf[MAXRSNIELEN]; | |
1017 | u8 bRegNoEncrypt; | |
1018 | u8 bUsedHwEncrypt; | |
1019 | }; | |
1020 | ||
1021 | struct bt_30info { | |
1022 | struct rtw_adapter *padapter; | |
1023 | struct bt_asoc_entry BtAsocEntry[MAX_BT_ASOC_ENTRY_NUM]; | |
1024 | struct bt_mgnt BtMgnt; | |
1025 | struct bt_dgb BtDbg; | |
1026 | struct bt_hci_info BtHciInfo; | |
1027 | struct bt_traffic BtTraffic; | |
1028 | struct bt_security BtSec; | |
1029 | RT_WORK_ITEM HCICmdWorkItem; | |
1030 | struct timer_list BTHCICmdTimer; | |
1031 | RT_WORK_ITEM BTPsDisableWorkItem; | |
1032 | RT_WORK_ITEM BTConnectWorkItem; | |
1033 | struct timer_list BTHCIDiscardAclDataTimer; | |
1034 | struct timer_list BTHCIJoinTimeoutTimer; | |
1035 | struct timer_list BTTestSendPacketTimer; | |
1036 | struct timer_list BTDisconnectPhyLinkTimer; | |
1037 | struct timer_list BTBeaconTimer; | |
1038 | u8 BTBeaconTmrOn; | |
1039 | ||
1040 | struct timer_list BTPsDisableTimer; | |
1041 | ||
1042 | void * pBtChnlList; | |
1043 | }; | |
1044 | ||
1045 | struct packet_irp_acl_data { | |
1046 | u16 Handle:12; | |
1047 | u16 PB_Flag:2; | |
1048 | u16 BC_Flag:2; | |
1049 | u16 Length; | |
1050 | u8 Data[1]; | |
1051 | }; | |
1052 | ||
1053 | struct packet_irp_hcievent_data { | |
1054 | u8 EventCode; | |
1055 | u8 Length; | |
c17416ef | 1056 | u8 Data[20]; |
364e30eb LF |
1057 | }; |
1058 | ||
1059 | struct common_triple { | |
1060 | u8 byte_1st; | |
1061 | u8 byte_2nd; | |
1062 | u8 byte_3rd; | |
1063 | }; | |
1064 | ||
1065 | #define COUNTRY_STR_LEN 3 /* country string len = 3 */ | |
1066 | ||
1067 | #define LOCAL_PMK 0 | |
1068 | ||
1069 | enum hci_wifi_connect_status { | |
1070 | HCI_WIFI_NOT_CONNECTED = 0x0, | |
1071 | HCI_WIFI_CONNECTED = 0x1, | |
1072 | HCI_WIFI_CONNECT_IN_PROGRESS = 0x2, | |
1073 | }; | |
1074 | ||
1075 | enum hci_ext_bp_operation { | |
1076 | HCI_BT_OP_NONE = 0x0, | |
1077 | HCI_BT_OP_INQUIRY_START = 0x1, | |
1078 | HCI_BT_OP_INQUIRY_FINISH = 0x2, | |
1079 | HCI_BT_OP_PAGING_START = 0x3, | |
1080 | HCI_BT_OP_PAGING_SUCCESS = 0x4, | |
1081 | HCI_BT_OP_PAGING_UNSUCCESS = 0x5, | |
1082 | HCI_BT_OP_PAIRING_START = 0x6, | |
1083 | HCI_BT_OP_PAIRING_FINISH = 0x7, | |
1084 | HCI_BT_OP_BT_DEV_ENABLE = 0x8, | |
1085 | HCI_BT_OP_BT_DEV_DISABLE = 0x9, | |
1086 | HCI_BT_OP_MAX | |
1087 | }; | |
1088 | ||
364e30eb LF |
1089 | #define BTHCI_SM_WITH_INFO(_Adapter, _StateToEnter, _StateCmd, _EntryNum) \ |
1090 | { \ | |
f8628a47 | 1091 | RTPRINT(FIOCTL, IOCTL_STATE, ("[BT state change] caused by ""%s"", line =%d\n", __func__, __LINE__)); \ |
364e30eb LF |
1092 | BTHCI_StateMachine(_Adapter, _StateToEnter, _StateCmd, _EntryNum);\ |
1093 | } | |
1094 | ||
3cd87c12 GD |
1095 | void BTHCI_EventParse(struct rtw_adapter *padapter, void *pEvntData, |
1096 | u32 dataLen); | |
364e30eb | 1097 | #define BT_EventParse BTHCI_EventParse |
3cd87c12 GD |
1098 | u8 BTHCI_HsConnectionEstablished(struct rtw_adapter *padapter); |
1099 | void BTHCI_UpdateBTProfileRTKToMoto(struct rtw_adapter *padapter); | |
1100 | void BTHCI_WifiScanNotify(struct rtw_adapter *padapter, u8 scanType); | |
1101 | void BTHCI_StateMachine(struct rtw_adapter *padapter, u8 StateToEnter, | |
1102 | enum hci_state_with_cmd StateCmd, u8 EntryNum); | |
1103 | void BTHCI_DisconnectPeer(struct rtw_adapter *padapter, u8 EntryNum); | |
1104 | void BTHCI_EventNumOfCompletedDataBlocks(struct rtw_adapter *padapter); | |
1105 | void BTHCI_EventAMPStatusChange(struct rtw_adapter *padapter, u8 AMP_Status); | |
1106 | void BTHCI_DisconnectAll(struct rtw_adapter *padapter); | |
1107 | enum hci_status BTHCI_HandleHCICMD(struct rtw_adapter *padapter, | |
1108 | struct packet_irp_hcicmd_data *pHciCmd); | |
364e30eb LF |
1109 | |
1110 | /* ===== End of sync from SD7 driver COMMON/bt_hci.h ===== */ | |
364e30eb | 1111 | |
364e30eb LF |
1112 | /* ===== Below this line is sync from SD7 driver HAL/BTCoexist/HalBtc87231Ant.h ===== */ |
1113 | #define GET_BT_INFO(padapter) (&GET_HAL_DATA(padapter)->BtInfo) | |
1114 | ||
1115 | #define BTC_FOR_SCAN_START 1 | |
1116 | #define BTC_FOR_SCAN_FINISH 0 | |
1117 | ||
1118 | #define BT_TXRX_CNT_THRES_1 1200 | |
1119 | #define BT_TXRX_CNT_THRES_2 1400 | |
1120 | #define BT_TXRX_CNT_THRES_3 3000 | |
1121 | #define BT_TXRX_CNT_LEVEL_0 0 /* < 1200 */ | |
1122 | #define BT_TXRX_CNT_LEVEL_1 1 /* >= 1200 && < 1400 */ | |
1123 | #define BT_TXRX_CNT_LEVEL_2 2 /* >= 1400 */ | |
1124 | #define BT_TXRX_CNT_LEVEL_3 3 /* >= 3000 */ | |
1125 | ||
1126 | enum bt_state_1ant { | |
1127 | BT_INFO_STATE_DISABLED = 0, | |
1128 | BT_INFO_STATE_NO_CONNECTION = 1, | |
1129 | BT_INFO_STATE_CONNECT_IDLE = 2, | |
1130 | BT_INFO_STATE_INQ_OR_PAG = 3, | |
1131 | BT_INFO_STATE_ACL_ONLY_BUSY = 4, | |
1132 | BT_INFO_STATE_SCO_ONLY_BUSY = 5, | |
1133 | BT_INFO_STATE_ACL_SCO_BUSY = 6, | |
1134 | BT_INFO_STATE_ACL_INQ_OR_PAG = 7, | |
1135 | BT_INFO_STATE_MAX = 8 | |
1136 | }; | |
1137 | ||
1138 | struct btdm_8723a_1ant { | |
1139 | u8 prePsTdma; | |
1140 | u8 curPsTdma; | |
1141 | u8 psTdmaDuAdjType; | |
1142 | u8 bPrePsTdmaOn; | |
1143 | u8 bCurPsTdmaOn; | |
1144 | u8 preWifiPara; | |
1145 | u8 curWifiPara; | |
1146 | u8 preCoexWifiCon; | |
1147 | u8 curCoexWifiCon; | |
1148 | u8 wifiRssiThresh; | |
1149 | ||
1150 | u32 psTdmaMonitorCnt; | |
1151 | u32 psTdmaGlobalCnt; | |
1152 | ||
1153 | /* DurationAdjust For SCO */ | |
1154 | u32 psTdmaMonitorCntForSCO; | |
1155 | u8 psTdmaDuAdjTypeForSCO; | |
1156 | u8 RSSI_WiFi_Last; | |
1157 | u8 RSSI_BT_Last; | |
1158 | ||
1159 | u8 bWiFiHalt; | |
1160 | u8 bRAChanged; | |
1161 | }; | |
1162 | ||
3cd87c12 GD |
1163 | void BTDM_1AntSignalCompensation(struct rtw_adapter *padapter, |
1164 | u8 *rssi_wifi, u8 *rssi_bt); | |
1165 | void BTDM_1AntForDhcp(struct rtw_adapter *padapter); | |
1166 | void BTDM_1AntBtCoexist8723A(struct rtw_adapter *padapter); | |
364e30eb LF |
1167 | |
1168 | /* ===== End of sync from SD7 driver HAL/BTCoexist/HalBtc87231Ant.h ===== */ | |
364e30eb | 1169 | |
364e30eb LF |
1170 | /* ===== Below this line is sync from SD7 driver HAL/BTCoexist/HalBtc87232Ant.h ===== */ |
1171 | enum bt_2ant_bt_status { | |
1172 | BT_2ANT_BT_STATUS_IDLE = 0x0, | |
1173 | BT_2ANT_BT_STATUS_CONNECTED_IDLE = 0x1, | |
1174 | BT_2ANT_BT_STATUS_NON_IDLE = 0x2, | |
1175 | BT_2ANT_BT_STATUS_MAX | |
1176 | }; | |
1177 | ||
1178 | enum bt_2ant_coex_algo { | |
1179 | BT_2ANT_COEX_ALGO_UNDEFINED = 0x0, | |
1180 | BT_2ANT_COEX_ALGO_SCO = 0x1, | |
1181 | BT_2ANT_COEX_ALGO_HID = 0x2, | |
1182 | BT_2ANT_COEX_ALGO_A2DP = 0x3, | |
1183 | BT_2ANT_COEX_ALGO_PANEDR = 0x4, | |
1184 | BT_2ANT_COEX_ALGO_PANHS = 0x5, | |
1185 | BT_2ANT_COEX_ALGO_PANEDR_A2DP = 0x6, | |
1186 | BT_2ANT_COEX_ALGO_PANEDR_HID = 0x7, | |
1187 | BT_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x8, | |
1188 | BT_2ANT_COEX_ALGO_HID_A2DP = 0x9, | |
1189 | BT_2ANT_COEX_ALGO_HID_A2DP_PANHS = 0xA, | |
1190 | BT_2ANT_COEX_ALGO_MAX = 0xB, | |
1191 | }; | |
1192 | ||
1193 | struct btdm_8723a_2ant { | |
1194 | u8 bPreDecBtPwr; | |
1195 | u8 bCurDecBtPwr; | |
1196 | ||
1197 | u8 preWlanActHi; | |
1198 | u8 curWlanActHi; | |
1199 | u8 preWlanActLo; | |
1200 | u8 curWlanActLo; | |
1201 | ||
1202 | u8 preFwDacSwingLvl; | |
1203 | u8 curFwDacSwingLvl; | |
1204 | ||
1205 | u8 bPreRfRxLpfShrink; | |
1206 | u8 bCurRfRxLpfShrink; | |
1207 | ||
1208 | u8 bPreLowPenaltyRa; | |
1209 | u8 bCurLowPenaltyRa; | |
1210 | ||
1211 | u8 preBtRetryIndex; | |
1212 | u8 curBtRetryIndex; | |
1213 | ||
1214 | u8 bPreDacSwingOn; | |
1215 | u32 preDacSwingLvl; | |
1216 | u8 bCurDacSwingOn; | |
1217 | u32 curDacSwingLvl; | |
1218 | ||
1219 | u8 bPreAdcBackOff; | |
1220 | u8 bCurAdcBackOff; | |
1221 | ||
1222 | u8 bPreAgcTableEn; | |
1223 | u8 bCurAgcTableEn; | |
1224 | ||
1225 | u32 preVal0x6c0; | |
1226 | u32 curVal0x6c0; | |
1227 | u32 preVal0x6c8; | |
1228 | u32 curVal0x6c8; | |
1229 | u8 preVal0x6cc; | |
1230 | u8 curVal0x6cc; | |
1231 | ||
1232 | u8 bCurIgnoreWlanAct; | |
1233 | u8 bPreIgnoreWlanAct; | |
1234 | ||
1235 | u8 prePsTdma; | |
1236 | u8 curPsTdma; | |
1237 | u8 psTdmaDuAdjType; | |
1238 | u8 bPrePsTdmaOn; | |
1239 | u8 bCurPsTdmaOn; | |
1240 | ||
1241 | u8 preAlgorithm; | |
1242 | u8 curAlgorithm; | |
1243 | u8 bResetTdmaAdjust; | |
1244 | ||
1245 | u8 btStatus; | |
1246 | }; | |
1247 | ||
3cd87c12 | 1248 | void BTDM_2AntBtCoexist8723A(struct rtw_adapter *padapter); |
364e30eb | 1249 | /* ===== End of sync from SD7 driver HAL/BTCoexist/HalBtc87232Ant.h ===== */ |
364e30eb | 1250 | |
364e30eb LF |
1251 | /* ===== Below this line is sync from SD7 driver HAL/BTCoexist/HalBtc8723.h ===== */ |
1252 | ||
1253 | #define BT_Q_PKT_OFF 0 | |
1254 | #define BT_Q_PKT_ON 1 | |
1255 | ||
1256 | #define BT_TX_PWR_OFF 0 | |
1257 | #define BT_TX_PWR_ON 1 | |
1258 | ||
1259 | /* TDMA mode definition */ | |
1260 | #define TDMA_2ANT 0 | |
1261 | #define TDMA_1ANT 1 | |
1262 | #define TDMA_NAV_OFF 0 | |
1263 | #define TDMA_NAV_ON 1 | |
1264 | #define TDMA_DAC_SWING_OFF 0 | |
1265 | #define TDMA_DAC_SWING_ON 1 | |
1266 | ||
1267 | #define BT_RSSI_LEVEL_H 0 | |
1268 | #define BT_RSSI_LEVEL_M 1 | |
1269 | #define BT_RSSI_LEVEL_L 2 | |
1270 | ||
1271 | /* PTA mode related definition */ | |
1272 | #define BT_PTA_MODE_OFF 0 | |
1273 | #define BT_PTA_MODE_ON 1 | |
1274 | ||
1275 | /* Penalty Tx Rate Adaptive */ | |
1276 | #define BT_TX_RATE_ADAPTIVE_NORMAL 0 | |
1277 | #define BT_TX_RATE_ADAPTIVE_LOW_PENALTY 1 | |
1278 | ||
1279 | /* RF Corner */ | |
1280 | #define BT_RF_RX_LPF_CORNER_RESUME 0 | |
1281 | #define BT_RF_RX_LPF_CORNER_SHRINK 1 | |
1282 | ||
1283 | #define BT_INFO_ACL BIT(0) | |
1284 | #define BT_INFO_SCO BIT(1) | |
1285 | #define BT_INFO_INQ_PAG BIT(2) | |
1286 | #define BT_INFO_ACL_BUSY BIT(3) | |
1287 | #define BT_INFO_SCO_BUSY BIT(4) | |
1288 | #define BT_INFO_HID BIT(5) | |
1289 | #define BT_INFO_A2DP BIT(6) | |
1290 | #define BT_INFO_FTP BIT(7) | |
1291 | ||
1292 | ||
1293 | ||
1294 | struct bt_coexist_8723a { | |
1295 | u32 highPriorityTx; | |
1296 | u32 highPriorityRx; | |
1297 | u32 lowPriorityTx; | |
1298 | u32 lowPriorityRx; | |
1299 | u8 btRssi; | |
1300 | u8 TotalAntNum; | |
1301 | u8 bC2hBtInfoSupport; | |
1302 | u8 c2hBtInfo; | |
1303 | u8 c2hBtInfoOriginal; | |
1304 | u8 prec2hBtInfo; /* for 1Ant */ | |
1305 | u8 bC2hBtInquiryPage; | |
c17416ef | 1306 | unsigned long btInqPageStartTime; /* for 2Ant */ |
364e30eb LF |
1307 | u8 c2hBtProfile; /* for 1Ant */ |
1308 | u8 btRetryCnt; | |
1309 | u8 btInfoExt; | |
1310 | u8 bC2hBtInfoReqSent; | |
1311 | u8 bForceFwBtInfo; | |
1312 | u8 bForceA2dpSink; | |
1313 | struct btdm_8723a_2ant btdm2Ant; | |
1314 | struct btdm_8723a_1ant btdm1Ant; | |
1315 | }; | |
1316 | ||
3cd87c12 GD |
1317 | void BTDM_SetFwChnlInfo(struct rtw_adapter *padapter, |
1318 | enum rt_media_status mstatus); | |
1319 | u8 BTDM_IsWifiConnectionExist(struct rtw_adapter *padapter); | |
1320 | void BTDM_SetFw3a(struct rtw_adapter *padapter, u8 byte1, u8 byte2, u8 byte3, | |
1321 | u8 byte4, u8 byte5); | |
1322 | void BTDM_QueryBtInformation(struct rtw_adapter *padapter); | |
1323 | void BTDM_SetSwRfRxLpfCorner(struct rtw_adapter *padapter, u8 type); | |
1324 | void BTDM_SetSwPenaltyTxRateAdaptive(struct rtw_adapter *padapter, u8 raType); | |
1325 | void BTDM_SetFwDecBtPwr(struct rtw_adapter *padapter, u8 bDecBtPwr); | |
1326 | u8 BTDM_BtProfileSupport(struct rtw_adapter *padapter); | |
1327 | void BTDM_LpsLeave(struct rtw_adapter *padapter); | |
364e30eb LF |
1328 | |
1329 | /* ===== End of sync from SD7 driver HAL/BTCoexist/HalBtc8723.h ===== */ | |
364e30eb | 1330 | |
364e30eb LF |
1331 | /* ===== Below this line is sync from SD7 driver HAL/BTCoexist/HalBtcCsr1Ant.h ===== */ |
1332 | ||
1333 | enum BT_A2DP_INDEX{ | |
1334 | BT_A2DP_INDEX0 = 0, /* 32, 12; the most critical for BT */ | |
1335 | BT_A2DP_INDEX1, /* 12, 24 */ | |
1336 | BT_A2DP_INDEX2, /* 0, 0 */ | |
1337 | BT_A2DP_INDEX_MAX | |
1338 | }; | |
1339 | ||
1340 | #define BT_A2DP_STATE_NOT_ENTERED 0 | |
1341 | #define BT_A2DP_STATE_DETECTING 1 | |
1342 | #define BT_A2DP_STATE_DETECTED 2 | |
1343 | ||
1344 | #define BTDM_ANT_BT_IDLE 0 | |
1345 | #define BTDM_ANT_WIFI 1 | |
1346 | #define BTDM_ANT_BT 2 | |
1347 | ||
1348 | ||
3cd87c12 GD |
1349 | void BTDM_SingleAnt(struct rtw_adapter *padapter, u8 bSingleAntOn, |
1350 | u8 bInterruptOn, u8 bMultiNAVOn); | |
1351 | void BTDM_CheckBTIdleChange1Ant(struct rtw_adapter *padapter); | |
364e30eb LF |
1352 | |
1353 | /* ===== End of sync from SD7 driver HAL/BTCoexist/HalBtcCsr1Ant.h ===== */ | |
364e30eb | 1354 | |
364e30eb LF |
1355 | /* ===== Below this line is sync from SD7 driver HAL/BTCoexist/HalBtcCsr2Ant.h ===== */ |
1356 | ||
1357 | /* */ | |
1358 | /* For old core stack before v251 */ | |
1359 | /* */ | |
1c3b6e7d JS |
1360 | #define BT_RSSI_STATE_NORMAL_POWER BIT(0) |
1361 | #define BT_RSSI_STATE_AMDPU_OFF BIT(1) | |
1362 | #define BT_RSSI_STATE_SPECIAL_LOW BIT(2) | |
1363 | #define BT_RSSI_STATE_BG_EDCA_LOW BIT(3) | |
1364 | #define BT_RSSI_STATE_TXPOWER_LOW BIT(4) | |
364e30eb LF |
1365 | |
1366 | #define BT_DACSWING_OFF 0 | |
1367 | #define BT_DACSWING_M4 1 | |
1368 | #define BT_DACSWING_M7 2 | |
1369 | #define BT_DACSWING_M10 3 | |
1370 | ||
3cd87c12 GD |
1371 | void BTDM_DiminishWiFi(struct rtw_adapter *Adapter, u8 bDACOn, u8 bInterruptOn, |
1372 | u8 DACSwingLevel, u8 bNAVOn); | |
364e30eb LF |
1373 | |
1374 | /* ===== End of sync from SD7 driver HAL/BTCoexist/HalBtcCsr2Ant.h ===== */ | |
364e30eb LF |
1375 | |
1376 | /* HEADER/TypeDef.h */ | |
1377 | #define MAX_FW_SUPPORT_MACID_NUM 64 | |
1378 | ||
1379 | /* ===== Below this line is sync from SD7 driver HAL/BTCoexist/HalBtCoexist.h ===== */ | |
1380 | ||
1381 | #define FW_VER_BT_REG 62 | |
1382 | #define FW_VER_BT_REG1 74 | |
1383 | #define REG_BT_ACTIVE 0x444 | |
1384 | #define REG_BT_STATE 0x448 | |
1385 | #define REG_BT_POLLING1 0x44c | |
1386 | #define REG_BT_POLLING 0x700 | |
1387 | ||
1388 | #define REG_BT_ACTIVE_OLD 0x488 | |
1389 | #define REG_BT_STATE_OLD 0x48c | |
1390 | #define REG_BT_POLLING_OLD 0x490 | |
1391 | ||
1392 | /* The reg define is for 8723 */ | |
1393 | #define REG_HIGH_PRIORITY_TXRX 0x770 | |
1394 | #define REG_LOW_PRIORITY_TXRX 0x774 | |
1395 | ||
1396 | #define BT_FW_COEX_THRESH_TOL 6 | |
1397 | #define BT_FW_COEX_THRESH_20 20 | |
1398 | #define BT_FW_COEX_THRESH_23 23 | |
1399 | #define BT_FW_COEX_THRESH_25 25 | |
1400 | #define BT_FW_COEX_THRESH_30 30 | |
1401 | #define BT_FW_COEX_THRESH_35 35 | |
1402 | #define BT_FW_COEX_THRESH_40 40 | |
1403 | #define BT_FW_COEX_THRESH_45 45 | |
1404 | #define BT_FW_COEX_THRESH_47 47 | |
1405 | #define BT_FW_COEX_THRESH_50 50 | |
1406 | #define BT_FW_COEX_THRESH_55 55 | |
1407 | #define BT_FW_COEX_THRESH_65 65 | |
1408 | ||
1c3b6e7d | 1409 | #define BT_COEX_STATE_BT30 BIT(0) |
364e30eb LF |
1410 | #define BT_COEX_STATE_WIFI_HT20 BIT(1) |
1411 | #define BT_COEX_STATE_WIFI_HT40 BIT(2) | |
1c3b6e7d | 1412 | #define BT_COEX_STATE_WIFI_LEGACY BIT(3) |
364e30eb LF |
1413 | |
1414 | #define BT_COEX_STATE_WIFI_RSSI_LOW BIT(4) | |
1c3b6e7d | 1415 | #define BT_COEX_STATE_WIFI_RSSI_MEDIUM BIT(5) |
364e30eb LF |
1416 | #define BT_COEX_STATE_WIFI_RSSI_HIGH BIT(6) |
1417 | #define BT_COEX_STATE_DEC_BT_POWER BIT(7) | |
1418 | ||
1419 | #define BT_COEX_STATE_WIFI_IDLE BIT(8) | |
1c3b6e7d | 1420 | #define BT_COEX_STATE_WIFI_UPLINK BIT(9) |
364e30eb LF |
1421 | #define BT_COEX_STATE_WIFI_DOWNLINK BIT(10) |
1422 | ||
1c3b6e7d JS |
1423 | #define BT_COEX_STATE_BT_INQ_PAGE BIT(11) |
1424 | #define BT_COEX_STATE_BT_IDLE BIT(12) | |
364e30eb LF |
1425 | #define BT_COEX_STATE_BT_UPLINK BIT(13) |
1426 | #define BT_COEX_STATE_BT_DOWNLINK BIT(14) | |
1427 | /* */ | |
1428 | /* Todo: Remove these definitions */ | |
1c3b6e7d | 1429 | #define BT_COEX_STATE_BT_PAN_IDLE BIT(15) |
364e30eb | 1430 | #define BT_COEX_STATE_BT_PAN_UPLINK BIT(16) |
1c3b6e7d | 1431 | #define BT_COEX_STATE_BT_PAN_DOWNLINK BIT(17) |
364e30eb LF |
1432 | #define BT_COEX_STATE_BT_A2DP_IDLE BIT(18) |
1433 | /* */ | |
1c3b6e7d | 1434 | #define BT_COEX_STATE_BT_RSSI_LOW BIT(19) |
364e30eb | 1435 | |
1c3b6e7d | 1436 | #define BT_COEX_STATE_PROFILE_HID BIT(20) |
364e30eb | 1437 | #define BT_COEX_STATE_PROFILE_A2DP BIT(21) |
1c3b6e7d JS |
1438 | #define BT_COEX_STATE_PROFILE_PAN BIT(22) |
1439 | #define BT_COEX_STATE_PROFILE_SCO BIT(23) | |
364e30eb LF |
1440 | |
1441 | #define BT_COEX_STATE_WIFI_RSSI_1_LOW BIT(24) | |
1442 | #define BT_COEX_STATE_WIFI_RSSI_1_MEDIUM BIT(25) | |
1443 | #define BT_COEX_STATE_WIFI_RSSI_1_HIGH BIT(26) | |
1444 | ||
1c3b6e7d JS |
1445 | #define BT_COEX_STATE_WIFI_RSSI_BEACON_LOW BIT(27) |
1446 | #define BT_COEX_STATE_WIFI_RSSI_BEACON_MEDIUM BIT(28) | |
1447 | #define BT_COEX_STATE_WIFI_RSSI_BEACON_HIGH BIT(29) | |
364e30eb LF |
1448 | |
1449 | ||
1c3b6e7d JS |
1450 | #define BT_COEX_STATE_BTINFO_COMMON BIT(30) |
1451 | #define BT_COEX_STATE_BTINFO_B_HID_SCOESCO BIT(31) | |
1452 | #define BT_COEX_STATE_BTINFO_B_FTP_A2DP BIT(32) | |
364e30eb | 1453 | |
1c3b6e7d JS |
1454 | #define BT_COEX_STATE_BT_CNT_LEVEL_0 BIT(33) |
1455 | #define BT_COEX_STATE_BT_CNT_LEVEL_1 BIT(34) | |
1456 | #define BT_COEX_STATE_BT_CNT_LEVEL_2 BIT(35) | |
1457 | #define BT_COEX_STATE_BT_CNT_LEVEL_3 BIT(36) | |
364e30eb | 1458 | |
1c3b6e7d JS |
1459 | #define BT_RSSI_STATE_HIGH 0 |
1460 | #define BT_RSSI_STATE_MEDIUM 1 | |
1461 | #define BT_RSSI_STATE_LOW 2 | |
364e30eb | 1462 | #define BT_RSSI_STATE_STAY_HIGH 3 |
1c3b6e7d | 1463 | #define BT_RSSI_STATE_STAY_MEDIUM 4 |
364e30eb LF |
1464 | #define BT_RSSI_STATE_STAY_LOW 5 |
1465 | ||
1466 | #define BT_AGCTABLE_OFF 0 | |
1467 | #define BT_AGCTABLE_ON 1 | |
1468 | ||
1469 | #define BT_BB_BACKOFF_OFF 0 | |
1470 | #define BT_BB_BACKOFF_ON 1 | |
1471 | ||
1472 | #define BT_FW_NAV_OFF 0 | |
1473 | #define BT_FW_NAV_ON 1 | |
1474 | ||
1475 | #define BT_COEX_MECH_NONE 0 | |
1476 | #define BT_COEX_MECH_SCO 1 | |
1477 | #define BT_COEX_MECH_HID 2 | |
1478 | #define BT_COEX_MECH_A2DP 3 | |
1479 | #define BT_COEX_MECH_PAN 4 | |
1480 | #define BT_COEX_MECH_HID_A2DP 5 | |
1481 | #define BT_COEX_MECH_HID_PAN 6 | |
1482 | #define BT_COEX_MECH_PAN_A2DP 7 | |
1483 | #define BT_COEX_MECH_HID_SCO_ESCO 8 | |
1484 | #define BT_COEX_MECH_FTP_A2DP 9 | |
1485 | #define BT_COEX_MECH_COMMON 10 | |
1486 | #define BT_COEX_MECH_MAX 11 | |
1487 | /* BT Dbg Ctrl */ | |
1488 | #define BT_DBG_PROFILE_NONE 0 | |
1489 | #define BT_DBG_PROFILE_SCO 1 | |
1490 | #define BT_DBG_PROFILE_HID 2 | |
1491 | #define BT_DBG_PROFILE_A2DP 3 | |
1492 | #define BT_DBG_PROFILE_PAN 4 | |
1493 | #define BT_DBG_PROFILE_HID_A2DP 5 | |
1494 | #define BT_DBG_PROFILE_HID_PAN 6 | |
1495 | #define BT_DBG_PROFILE_PAN_A2DP 7 | |
1496 | #define BT_DBG_PROFILE_MAX 9 | |
1497 | ||
1498 | struct bt_coexist_str { | |
1499 | u8 BluetoothCoexist; | |
1500 | u8 BT_Ant_Num; | |
1501 | u8 BT_CoexistType; | |
1502 | u8 BT_Ant_isolation; /* 0:good, 1:bad */ | |
1503 | u8 bt_radiosharedtype; | |
1504 | u32 Ratio_Tx; | |
1505 | u32 Ratio_PRI; | |
1506 | u8 bInitlized; | |
1507 | u32 BtRfRegOrigin1E; | |
1508 | u32 BtRfRegOrigin1F; | |
1509 | u8 bBTBusyTraffic; | |
1510 | u8 bBTTrafficModeSet; | |
1511 | u8 bBTNonTrafficModeSet; | |
1512 | struct bt_traffic_statistics BT21TrafficStatistics; | |
1513 | u64 CurrentState; | |
1514 | u64 PreviousState; | |
1515 | u8 preRssiState; | |
1516 | u8 preRssiState1; | |
1517 | u8 preRssiStateBeacon; | |
1518 | u8 bFWCoexistAllOff; | |
1519 | u8 bSWCoexistAllOff; | |
1520 | u8 bHWCoexistAllOff; | |
1521 | u8 bBalanceOn; | |
1522 | u8 bSingleAntOn; | |
1523 | u8 bInterruptOn; | |
1524 | u8 bMultiNAVOn; | |
1525 | u8 PreWLANActH; | |
1526 | u8 PreWLANActL; | |
1527 | u8 WLANActH; | |
1528 | u8 WLANActL; | |
1529 | u8 A2DPState; | |
1530 | u8 AntennaState; | |
1531 | u32 lastBtEdca; | |
1532 | u16 last_aggr_num; | |
1533 | u8 bEDCAInitialized; | |
1534 | u8 exec_cnt; | |
1535 | u8 b8723aAgcTableOn; | |
1536 | u8 b92DAgcTableOn; | |
1537 | struct bt_coexist_8723a halCoex8723; | |
1538 | u8 btActiveZeroCnt; | |
1539 | u8 bCurBtDisabled; | |
1540 | u8 bPreBtDisabled; | |
1541 | u8 bNeedToRoamForBtDisableEnable; | |
1542 | u8 fw3aVal[5]; | |
1543 | }; | |
1544 | ||
3cd87c12 GD |
1545 | void BTDM_CheckAntSelMode(struct rtw_adapter *padapter); |
1546 | void BTDM_FwC2hBtRssi(struct rtw_adapter *padapter, u8 *tmpBuf); | |
364e30eb | 1547 | #define BT_FwC2hBtRssi BTDM_FwC2hBtRssi |
3cd87c12 | 1548 | void BTDM_DisplayBtCoexInfo(struct rtw_adapter *padapter); |
364e30eb | 1549 | #define BT_DisplayBtCoexInfo BTDM_DisplayBtCoexInfo |
3cd87c12 GD |
1550 | void BTDM_RejectAPAggregatedPacket(struct rtw_adapter *padapter, u8 bReject); |
1551 | u8 BTDM_IsHT40(struct rtw_adapter *padapter); | |
1552 | u8 BTDM_Legacy(struct rtw_adapter *padapter); | |
1553 | void BTDM_CheckWiFiState(struct rtw_adapter *padapter); | |
1554 | s32 BTDM_GetRxSS(struct rtw_adapter *padapter); | |
1555 | u8 BTDM_CheckCoexBcnRssiState(struct rtw_adapter *padapter, u8 levelNum, | |
1556 | u8 RssiThresh, u8 RssiThresh1); | |
1557 | u8 BTDM_CheckCoexRSSIState1(struct rtw_adapter *padapter, u8 levelNum, | |
1558 | u8 RssiThresh, u8 RssiThresh1); | |
1559 | u8 BTDM_CheckCoexRSSIState(struct rtw_adapter *padapter, u8 levelNum, | |
1560 | u8 RssiThresh, u8 RssiThresh1); | |
1561 | void BTDM_Balance(struct rtw_adapter *padapter, u8 bBalanceOn, u8 ms0, u8 ms1); | |
1562 | void BTDM_AGCTable(struct rtw_adapter *padapter, u8 type); | |
1563 | void BTDM_BBBackOffLevel(struct rtw_adapter *padapter, u8 type); | |
1564 | void BTDM_FWCoexAllOff(struct rtw_adapter *padapter); | |
1565 | void BTDM_SWCoexAllOff(struct rtw_adapter *padapter); | |
1566 | void BTDM_HWCoexAllOff(struct rtw_adapter *padapter); | |
1567 | void BTDM_CoexAllOff(struct rtw_adapter *padapter); | |
1568 | void BTDM_TurnOffBtCoexistBeforeEnterIPS(struct rtw_adapter *padapter); | |
1569 | void BTDM_SignalCompensation(struct rtw_adapter *padapter, u8 *rssi_wifi, | |
1570 | u8 *rssi_bt); | |
1571 | void BTDM_UpdateCoexState(struct rtw_adapter *padapter); | |
1572 | u8 BTDM_IsSameCoexistState(struct rtw_adapter *padapter); | |
1573 | void BTDM_PWDBMonitor(struct rtw_adapter *padapter); | |
1574 | u8 BTDM_IsBTBusy(struct rtw_adapter *padapter); | |
364e30eb | 1575 | #define BT_IsBtBusy BTDM_IsBTBusy |
3cd87c12 GD |
1576 | u8 BTDM_IsWifiBusy(struct rtw_adapter *padapter); |
1577 | u8 BTDM_IsCoexistStateChanged(struct rtw_adapter *padapter); | |
1578 | u8 BTDM_IsWifiUplink(struct rtw_adapter *padapter); | |
1579 | u8 BTDM_IsWifiDownlink(struct rtw_adapter *padapter); | |
1580 | u8 BTDM_IsBTHSMode(struct rtw_adapter *padapter); | |
1581 | u8 BTDM_IsBTUplink(struct rtw_adapter *padapter); | |
1582 | u8 BTDM_IsBTDownlink(struct rtw_adapter *padapter); | |
1583 | void BTDM_AdjustForBtOperation(struct rtw_adapter *padapter); | |
1584 | void BTDM_ForHalt(struct rtw_adapter *padapter); | |
1585 | void BTDM_WifiScanNotify(struct rtw_adapter *padapter, u8 scanType); | |
1586 | void BTDM_WifiAssociateNotify(struct rtw_adapter *padapter, u8 action); | |
1587 | void BTDM_MediaStatusNotify(struct rtw_adapter *padapter, | |
1588 | enum rt_media_status mstatus); | |
1589 | void BTDM_ForDhcp(struct rtw_adapter *padapter); | |
1590 | void BTDM_ResetActionProfileState(struct rtw_adapter *padapter); | |
1591 | void BTDM_SetBtCoexCurrAntNum(struct rtw_adapter *padapter, u8 antNum); | |
364e30eb | 1592 | #define BT_SetBtCoexCurrAntNum BTDM_SetBtCoexCurrAntNum |
3cd87c12 GD |
1593 | u8 BTDM_IsActionSCO(struct rtw_adapter *padapter); |
1594 | u8 BTDM_IsActionHID(struct rtw_adapter *padapter); | |
1595 | u8 BTDM_IsActionA2DP(struct rtw_adapter *padapter); | |
1596 | u8 BTDM_IsActionPAN(struct rtw_adapter *padapter); | |
1597 | u8 BTDM_IsActionHIDA2DP(struct rtw_adapter *padapter); | |
1598 | u8 BTDM_IsActionHIDPAN(struct rtw_adapter *padapter); | |
1599 | u8 BTDM_IsActionPANA2DP(struct rtw_adapter *padapter); | |
1600 | u32 BTDM_BtTxRxCounterH(struct rtw_adapter *padapter); | |
1601 | u32 BTDM_BtTxRxCounterL(struct rtw_adapter *padapter); | |
364e30eb LF |
1602 | |
1603 | /* ===== End of sync from SD7 driver HAL/BTCoexist/HalBtCoexist.h ===== */ | |
364e30eb | 1604 | |
364e30eb LF |
1605 | /* ===== Below this line is sync from SD7 driver HAL/HalBT.h ===== */ |
1606 | ||
1607 | #define RTS_CTS_NO_LEN_LIMIT 0 | |
1608 | ||
3cd87c12 | 1609 | u8 HALBT_GetPGAntNum(struct rtw_adapter *padapter); |
364e30eb | 1610 | #define BT_GetPGAntNum HALBT_GetPGAntNum |
3cd87c12 GD |
1611 | void HALBT_SetKey(struct rtw_adapter *padapter, u8 EntryNum); |
1612 | void HALBT_RemoveKey(struct rtw_adapter *padapter, u8 EntryNum); | |
1613 | u8 HALBT_IsBTExist(struct rtw_adapter *padapter); | |
364e30eb | 1614 | #define BT_IsBtExist HALBT_IsBTExist |
3cd87c12 GD |
1615 | u8 HALBT_BTChipType(struct rtw_adapter *padapter); |
1616 | void HALBT_SetRtsCtsNoLenLimit(struct rtw_adapter *padapter); | |
364e30eb LF |
1617 | |
1618 | /* ===== End of sync from SD7 driver HAL/HalBT.c ===== */ | |
364e30eb LF |
1619 | |
1620 | #define _bt_dbg_off_ 0 | |
1621 | #define _bt_dbg_on_ 1 | |
1622 | ||
1623 | extern u32 BTCoexDbgLevel; | |
1624 | ||
1625 | ||
1626 | ||
1627 | #endif /* __RTL8723A_BT_COEXIST_H__ */ |