1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _HALMAC_API_88XX_H_
3 #define _HALMAC_API_88XX_H_
4 
5 #include "../halmac_2_platform.h"
6 #include "../halmac_type.h"
7 
8 VOID
9 halmac_init_state_machine_88xx(
10 	IN PHALMAC_ADAPTER pHalmac_adapter
11 );
12 
13 VOID
14 halmac_init_adapter_para_88xx(
15 	IN PHALMAC_ADAPTER pHalmac_adapter
16 );
17 
18 HALMAC_RET_STATUS
19 halmac_mount_api_88xx(
20 	IN PHALMAC_ADAPTER pHalmac_adapter
21 );
22 
23 HALMAC_RET_STATUS
24 halmac_download_firmware_88xx(
25 	IN PHALMAC_ADAPTER pHalmac_adapter,
26 	IN u8 *pHamacl_fw,
27 	IN u32 halmac_fw_size
28 );
29 
30 HALMAC_RET_STATUS
31 halmac_get_fw_version_88xx(
32 	IN PHALMAC_ADAPTER pHalmac_adapter,
33 	OUT PHALMAC_FW_VERSION pFw_version
34 );
35 
36 HALMAC_RET_STATUS
37 halmac_cfg_mac_addr_88xx(
38 	IN PHALMAC_ADAPTER pHalmac_adapter,
39 	IN u8 halmac_port,
40 	IN PHALMAC_WLAN_ADDR pHal_address
41 );
42 
43 HALMAC_RET_STATUS
44 halmac_cfg_bssid_88xx(
45 	IN PHALMAC_ADAPTER pHalmac_adapter,
46 	IN u8 halmac_port,
47 	IN PHALMAC_WLAN_ADDR pHal_address
48 );
49 
50 HALMAC_RET_STATUS
51 halmac_cfg_multicast_addr_88xx(
52 	IN PHALMAC_ADAPTER pHalmac_adapter,
53 	IN PHALMAC_WLAN_ADDR pHal_address
54 );
55 
56 HALMAC_RET_STATUS
57 halmac_pre_init_system_cfg_88xx(
58 	IN PHALMAC_ADAPTER pHalmac_adapter
59 );
60 
61 HALMAC_RET_STATUS
62 halmac_init_system_cfg_88xx(
63 	IN PHALMAC_ADAPTER pHalmac_adapter
64 );
65 
66 HALMAC_RET_STATUS
67 halmac_cfg_rx_aggregation_88xx(
68 	IN PHALMAC_ADAPTER pHalmac_adapter,
69 	IN HALMAC_RXAGG_CFG halmac_rxagg_cfg
70 );
71 
72 HALMAC_RET_STATUS
73 halmac_init_protocol_cfg_88xx(
74 	IN PHALMAC_ADAPTER pHalmac_adapter
75 );
76 
77 HALMAC_RET_STATUS
78 halmac_init_edca_cfg_88xx(
79 	IN PHALMAC_ADAPTER pHalmac_adapter
80 );
81 
82 HALMAC_RET_STATUS
83 halmac_cfg_operation_mode_88xx(
84 	IN PHALMAC_ADAPTER pHalmac_adapter,
85 	IN HALMAC_WIRELESS_MODE wireless_mode
86 );
87 
88 HALMAC_RET_STATUS
89 halmac_cfg_ch_bw_88xx(
90 	IN PHALMAC_ADAPTER pHalmac_adapter,
91 	IN u8 channel,
92 	IN HALMAC_PRI_CH_IDX pri_ch_idx,
93 	IN HALMAC_BW bw
94 );
95 
96 HALMAC_RET_STATUS
97 halmac_cfg_ch_88xx(
98 	IN PHALMAC_ADAPTER pHalmac_adapter,
99 	IN u8 channel
100 );
101 
102 HALMAC_RET_STATUS
103 halmac_cfg_pri_ch_idx_88xx(
104 	IN PHALMAC_ADAPTER pHalmac_adapter,
105 	IN HALMAC_PRI_CH_IDX pri_ch_idx
106 );
107 
108 HALMAC_RET_STATUS
109 halmac_cfg_bw_88xx(
110 	IN PHALMAC_ADAPTER pHalmac_adapter,
111 	IN HALMAC_BW bw
112 );
113 
114 HALMAC_RET_STATUS
115 halmac_init_wmac_cfg_88xx(
116 	IN PHALMAC_ADAPTER pHalmac_adapter
117 );
118 
119 HALMAC_RET_STATUS
120 halmac_init_mac_cfg_88xx(
121 	IN PHALMAC_ADAPTER pHalmac_adapter,
122 	IN HALMAC_TRX_MODE mode
123 );
124 
125 HALMAC_RET_STATUS
126 halmac_clear_security_cam_88xx(
127 	IN PHALMAC_ADAPTER pHalmac_adapter
128 );
129 
130 HALMAC_RET_STATUS
131 halmac_dump_efuse_map_88xx(
132 	IN PHALMAC_ADAPTER pHalmac_adapter,
133 	IN HALMAC_EFUSE_READ_CFG cfg
134 );
135 
136 HALMAC_RET_STATUS
137 halmac_dump_efuse_map_bt_88xx(
138 	IN PHALMAC_ADAPTER pHalmac_adapter,
139 	IN HALMAC_EFUSE_BANK halmac_efuse_bank,
140 	IN u32 bt_efuse_map_size,
141 	OUT u8 *pBT_efuse_map
142 );
143 
144 HALMAC_RET_STATUS
145 halmac_write_efuse_bt_88xx(
146 	IN PHALMAC_ADAPTER pHalmac_adapter,
147 	IN u32 halmac_offset,
148 	IN u8 halmac_value,
149 	IN HALMAC_EFUSE_BANK halmac_efuse_bank
150 );
151 
152 HALMAC_RET_STATUS
153 halmac_pg_efuse_by_map_88xx(
154 	IN PHALMAC_ADAPTER pHalmac_adapter,
155 	IN PHALMAC_PG_EFUSE_INFO pPg_efuse_info,
156 	IN HALMAC_EFUSE_READ_CFG cfg
157 );
158 
159 HALMAC_RET_STATUS
160 halmac_get_efuse_size_88xx(
161 	IN PHALMAC_ADAPTER pHalmac_adapter,
162 	OUT u32 *halmac_size
163 );
164 
165 HALMAC_RET_STATUS
166 halmac_get_efuse_available_size_88xx(
167 	IN PHALMAC_ADAPTER pHalmac_adapter,
168 	OUT u32 *halmac_size
169 );
170 
171 HALMAC_RET_STATUS
172 halmac_get_c2h_info_88xx(
173 	IN PHALMAC_ADAPTER pHalmac_adapter,
174 	IN u8 *halmac_buf,
175 	IN u32 halmac_size
176 );
177 
178 HALMAC_RET_STATUS
179 halmac_get_logical_efuse_size_88xx(
180 	IN PHALMAC_ADAPTER pHalmac_adapter,
181 	OUT u32 *halmac_size
182 );
183 
184 HALMAC_RET_STATUS
185 halmac_dump_logical_efuse_map_88xx(
186 	IN PHALMAC_ADAPTER pHalmac_adapter,
187 	IN HALMAC_EFUSE_READ_CFG cfg
188 );
189 
190 HALMAC_RET_STATUS
191 halmac_write_logical_efuse_88xx(
192 	IN PHALMAC_ADAPTER pHalmac_adapter,
193 	IN u32 halmac_offset,
194 	IN u8 halmac_value
195 );
196 
197 HALMAC_RET_STATUS
198 halmac_read_logical_efuse_88xx(
199 	IN PHALMAC_ADAPTER pHalmac_adapter,
200 	IN u32 halmac_offset,
201 	OUT u8 *pValue
202 );
203 
204 HALMAC_RET_STATUS
205 halmac_cfg_fwlps_option_88xx(
206 	IN PHALMAC_ADAPTER pHalmac_adapter,
207 	IN PHALMAC_FWLPS_OPTION pLps_option
208 );
209 
210 HALMAC_RET_STATUS
211 halmac_cfg_fwips_option_88xx(
212 	IN PHALMAC_ADAPTER pHalmac_adapter,
213 	IN PHALMAC_FWIPS_OPTION pIps_option
214 );
215 
216 HALMAC_RET_STATUS
217 halmac_enter_wowlan_88xx(
218 	IN PHALMAC_ADAPTER pHalmac_adapter,
219 	IN PHALMAC_WOWLAN_OPTION pWowlan_option
220 );
221 
222 HALMAC_RET_STATUS
223 halmac_leave_wowlan_88xx(
224 	IN PHALMAC_ADAPTER pHalmac_adapter
225 );
226 
227 HALMAC_RET_STATUS
228 halmac_enter_ps_88xx(
229 	IN PHALMAC_ADAPTER pHalmac_adapter,
230 	IN HALMAC_PS_STATE ps_state
231 );
232 
233 HALMAC_RET_STATUS
234 halmac_leave_ps_88xx(
235 	IN PHALMAC_ADAPTER pHalmac_adapter
236 );
237 
238 HALMAC_RET_STATUS
239 halmac_h2c_lb_88xx(
240 	IN PHALMAC_ADAPTER pHalmac_adapter
241 );
242 
243 HALMAC_RET_STATUS
244 halmac_debug_88xx(
245 	IN PHALMAC_ADAPTER pHalmac_adapter
246 );
247 
248 HALMAC_RET_STATUS
249 halmac_cfg_parameter_88xx(
250 	IN PHALMAC_ADAPTER pHalmac_adapter,
251 	IN PHALMAC_PHY_PARAMETER_INFO para_info,
252 	IN u8 full_fifo
253 );
254 
255 HALMAC_RET_STATUS
256 halmac_update_packet_88xx(
257 	IN PHALMAC_ADAPTER pHalmac_adapter,
258 	IN HALMAC_PACKET_ID pkt_id,
259 	IN u8 *pkt,
260 	IN u32 pkt_size
261 );
262 
263 HALMAC_RET_STATUS
264 halmac_bcn_ie_filter_88xx(
265 	IN PHALMAC_ADAPTER pHalmac_adapter,
266 	IN PHALMAC_BCN_IE_INFO pBcn_ie_info
267 );
268 
269 HALMAC_RET_STATUS
270 halmac_send_original_h2c_88xx(
271 	IN PHALMAC_ADAPTER pHalmac_adapter,
272 	IN u8 *original_h2c,
273 	IN u16 *seq,
274 	IN u8 ack
275 );
276 
277 HALMAC_RET_STATUS
278 halmac_update_datapack_88xx(
279 	IN PHALMAC_ADAPTER pHalmac_adapter,
280 	IN HALMAC_DATA_TYPE halmac_data_type,
281 	IN PHALMAC_PHY_PARAMETER_INFO para_info
282 );
283 
284 HALMAC_RET_STATUS
285 halmac_run_datapack_88xx(
286 	IN PHALMAC_ADAPTER pHalmac_adapter,
287 	IN HALMAC_DATA_TYPE halmac_data_type
288 );
289 
290 HALMAC_RET_STATUS
291 halmac_cfg_drv_info_88xx(
292 	IN PHALMAC_ADAPTER pHalmac_adapter,
293 	IN HALMAC_DRV_INFO halmac_drv_info
294 );
295 
296 HALMAC_RET_STATUS
297 halmac_send_bt_coex_88xx(
298 	IN PHALMAC_ADAPTER pHalmac_adapter,
299 	IN u8 *pBt_buf,
300 	IN u32 bt_size,
301 	IN u8 ack
302 );
303 
304 HALMAC_RET_STATUS
305 halmac_verify_platform_api_88xx(
306 	IN PHALMAC_ADAPTER pHalmac_adapter
307 );
308 
309 HALMAC_RET_STATUS
310 halmac_timer_2s_88xx(
311 	IN PHALMAC_ADAPTER pHalmac_adapter
312 );
313 
314 HALMAC_RET_STATUS
315 halmac_fill_txdesc_check_sum_88xx(
316 	IN PHALMAC_ADAPTER pHalmac_adapter,
317 	IN u8 *cur_desc
318 );
319 
320 HALMAC_RET_STATUS
321 halmac_dump_fifo_88xx(
322 	IN PHALMAC_ADAPTER pHalmac_adapter,
323 	IN HAL_FIFO_SEL halmac_fifo_sel,
324 	OUT u8 *pFifo_map,
325 	IN u32 halmac_fifo_dump_size
326 );
327 
328 u32
329 halmac_get_fifo_size_88xx(
330 	IN PHALMAC_ADAPTER pHalmac_adapter,
331 	IN HAL_FIFO_SEL halmac_fifo_sel
332 );
333 
334 HALMAC_RET_STATUS
335 halmac_cfg_txbf_88xx(
336 	IN PHALMAC_ADAPTER pHalmac_adapter,
337 	IN u8 userid,
338 	IN HALMAC_BW bw,
339 	IN u8 txbf_en
340 );
341 
342 HALMAC_RET_STATUS
343 halmac_cfg_mumimo_88xx(
344 	IN PHALMAC_ADAPTER pHalmac_adapter,
345 	IN PHALMAC_CFG_MUMIMO_PARA pCfgmu
346 );
347 
348 HALMAC_RET_STATUS
349 halmac_cfg_sounding_88xx(
350 	IN PHALMAC_ADAPTER pHalmac_adapter,
351 	IN HALMAC_SND_ROLE role,
352 	IN HALMAC_DATA_RATE datarate
353 );
354 
355 HALMAC_RET_STATUS
356 halmac_del_sounding_88xx(
357 	IN PHALMAC_ADAPTER pHalmac_adapter,
358 	IN HALMAC_SND_ROLE role
359 );
360 
361 HALMAC_RET_STATUS
362 halmac_su_bfee_entry_init_88xx(
363 	IN PHALMAC_ADAPTER pHalmac_adapter,
364 	IN u8 userid,
365 	IN u16 paid
366 );
367 
368 HALMAC_RET_STATUS
369 halmac_su_bfer_entry_init_88xx(
370 	IN PHALMAC_ADAPTER pHalmac_adapter,
371 	IN PHALMAC_SU_BFER_INIT_PARA pSu_bfer_init
372 );
373 
374 HALMAC_RET_STATUS
375 halmac_mu_bfee_entry_init_88xx(
376 	IN PHALMAC_ADAPTER pHalmac_adapter,
377 	IN PHALMAC_MU_BFEE_INIT_PARA pMu_bfee_init
378 );
379 
380 HALMAC_RET_STATUS
381 halmac_mu_bfer_entry_init_88xx(
382 	IN PHALMAC_ADAPTER pHalmac_adapter,
383 	IN PHALMAC_MU_BFER_INIT_PARA pMu_bfer_init
384 );
385 
386 HALMAC_RET_STATUS
387 halmac_su_bfee_entry_del_88xx(
388 	IN PHALMAC_ADAPTER pHalmac_adapter,
389 	IN u8 userid
390 );
391 
392 HALMAC_RET_STATUS
393 halmac_su_bfer_entry_del_88xx(
394 	IN PHALMAC_ADAPTER pHalmac_adapter,
395 	IN u8 userid
396 );
397 
398 HALMAC_RET_STATUS
399 halmac_mu_bfee_entry_del_88xx(
400 	IN PHALMAC_ADAPTER pHalmac_adapter,
401 	IN u8 userid
402 );
403 
404 HALMAC_RET_STATUS
405 halmac_mu_bfer_entry_del_88xx(
406 	IN PHALMAC_ADAPTER pHalmac_adapter
407 );
408 
409 HALMAC_RET_STATUS
410 halmac_add_ch_info_88xx(
411 	IN PHALMAC_ADAPTER pHalmac_adapter,
412 	IN PHALMAC_CH_INFO pCh_info
413 );
414 
415 HALMAC_RET_STATUS
416 halmac_add_extra_ch_info_88xx(
417 	IN PHALMAC_ADAPTER pHalmac_adapter,
418 	IN PHALMAC_CH_EXTRA_INFO pCh_extra_info
419 );
420 
421 HALMAC_RET_STATUS
422 halmac_ctrl_ch_switch_88xx(
423 	IN PHALMAC_ADAPTER pHalmac_adapter,
424 	IN PHALMAC_CH_SWITCH_OPTION pCs_option
425 );
426 
427 HALMAC_RET_STATUS
428 halmac_clear_ch_info_88xx(
429 	IN PHALMAC_ADAPTER pHalmac_adapter
430 );
431 
432 HALMAC_RET_STATUS
433 halmac_send_general_info_88xx(
434 	IN PHALMAC_ADAPTER pHalmac_adapter,
435 	IN PHALMAC_GENERAL_INFO pGeneral_info
436 );
437 
438 HALMAC_RET_STATUS
439 halmac_start_iqk_88xx(
440 	IN PHALMAC_ADAPTER pHalmac_adapter,
441 	IN u8 clear
442 );
443 
444 HALMAC_RET_STATUS
445 halmac_ctrl_pwr_tracking_88xx(
446 	IN PHALMAC_ADAPTER pHalmac_adapter,
447 	IN PHALMAC_PWR_TRACKING_OPTION pPwr_tracking_opt
448 );
449 
450 HALMAC_RET_STATUS
451 halmac_query_status_88xx(
452 	IN PHALMAC_ADAPTER pHalmac_adapter,
453 	IN HALMAC_FEATURE_ID feature_id,
454 	OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
455 	INOUT u8 *data,
456 	INOUT u32 *size
457 );
458 
459 HALMAC_RET_STATUS
460 halmac_reset_feature_88xx(
461 	IN PHALMAC_ADAPTER pHalmac_adapter,
462 	IN HALMAC_FEATURE_ID feature_id
463 );
464 
465 HALMAC_RET_STATUS
466 halmac_check_fw_status_88xx(
467 	IN PHALMAC_ADAPTER pHalmac_adapter,
468 	OUT u8 *fw_status
469 );
470 
471 HALMAC_RET_STATUS
472 halmac_dump_fw_dmem_88xx(
473 	IN PHALMAC_ADAPTER pHalmac_adapter,
474 	INOUT u8 *dmem,
475 	INOUT u32 *size
476 );
477 
478 HALMAC_RET_STATUS
479 halmac_cfg_max_dl_size_88xx(
480 	IN PHALMAC_ADAPTER pHalmac_adapter,
481 	IN u32 size
482 );
483 
484 
485 HALMAC_RET_STATUS
486 halmac_psd_88xx(
487 	IN PHALMAC_ADAPTER pHalmac_adapter,
488 	IN u16 start_psd,
489 	IN u16 end_psd
490 );
491 
492 HALMAC_RET_STATUS
493 halmac_cfg_la_mode_88xx(
494 	IN PHALMAC_ADAPTER pHalmac_adapter,
495 	IN HALMAC_LA_MODE la_mode
496 );
497 
498 HALMAC_RET_STATUS
499 halmac_get_hw_value_88xx(
500 	IN PHALMAC_ADAPTER pHalmac_adapter,
501 	IN HALMAC_HW_ID hw_id,
502 	OUT VOID *pvalue
503 );
504 
505 HALMAC_RET_STATUS
506 halmac_set_hw_value_88xx(
507 	IN PHALMAC_ADAPTER pHalmac_adapter,
508 	IN HALMAC_HW_ID hw_id,
509 	IN VOID *pvalue
510 );
511 
512 HALMAC_RET_STATUS
513 halmac_cfg_drv_rsvd_pg_num_88xx(
514 	IN PHALMAC_ADAPTER pHalmac_adapter,
515 	IN HALMAC_DRV_RSVD_PG_NUM pg_num
516 );
517 
518 HALMAC_RET_STATUS
519 halmac_get_chip_version_88xx(
520 	IN PHALMAC_ADAPTER pHalmac_adapter,
521 	IN PHALMAC_VER pVersion
522 );
523 
524 HALMAC_RET_STATUS
525 halmac_chk_txdesc_88xx(
526 	IN PHALMAC_ADAPTER pHalmac_adapter,
527 	IN u8 *pHalmac_buf,
528 	IN u32 halmac_size
529 );
530 
531 
532 #endif/* _HALMAC_API_H_ */
533