halmac_func_88xx.h 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  1. #ifndef _HALMAC_FUNC_88XX_H_
  2. #define _HALMAC_FUNC_88XX_H_
  3. #include "../halmac_type.h"
  4. VOID
  5. halmac_init_offload_feature_state_machine_88xx(
  6. IN PHALMAC_ADAPTER pHalmac_adapter
  7. );
  8. HALMAC_RET_STATUS
  9. halmac_send_h2c_pkt_88xx(
  10. IN PHALMAC_ADAPTER pHalmac_adapter,
  11. IN u8 *pHal_buff,
  12. IN u32 size,
  13. IN u8 ack
  14. );
  15. HALMAC_RET_STATUS
  16. halmac_download_rsvd_page_88xx(
  17. IN PHALMAC_ADAPTER pHalmac_adapter,
  18. IN u8 *pHal_buf,
  19. IN u32 size
  20. );
  21. HALMAC_RET_STATUS
  22. halmac_set_h2c_header_88xx(
  23. IN PHALMAC_ADAPTER pHalmac_adapter,
  24. OUT u8 *pHal_h2c_hdr,
  25. IN u16 *seq,
  26. IN u8 ack
  27. );
  28. HALMAC_RET_STATUS
  29. halmac_set_fw_offload_h2c_header_88xx(
  30. IN PHALMAC_ADAPTER pHalmac_adapter,
  31. OUT u8 *pHal_h2c_hdr,
  32. IN PHALMAC_H2C_HEADER_INFO pH2c_header_info,
  33. OUT u16 *pSeq_num
  34. );
  35. HALMAC_RET_STATUS
  36. halmac_dump_efuse_88xx(
  37. IN PHALMAC_ADAPTER pHalmac_adapter,
  38. IN HALMAC_EFUSE_READ_CFG cfg
  39. );
  40. HALMAC_RET_STATUS
  41. halmac_func_read_efuse_88xx(
  42. IN PHALMAC_ADAPTER pHalmac_adapter,
  43. IN u32 offset,
  44. IN u32 size,
  45. OUT u8 *pEfuse_map
  46. );
  47. HALMAC_RET_STATUS
  48. halmac_func_write_efuse_88xx(
  49. IN PHALMAC_ADAPTER pHalmac_adapter,
  50. IN u32 offset,
  51. IN u8 value
  52. );
  53. HALMAC_RET_STATUS
  54. halmac_func_switch_efuse_bank_88xx(
  55. IN PHALMAC_ADAPTER pHalmac_adapter,
  56. IN HALMAC_EFUSE_BANK efuse_bank
  57. );
  58. HALMAC_RET_STATUS
  59. halmac_read_logical_efuse_map_88xx(
  60. IN PHALMAC_ADAPTER pHalmac_adapter,
  61. IN u8 *pMap
  62. );
  63. HALMAC_RET_STATUS
  64. halmac_func_write_logical_efuse_88xx(
  65. IN PHALMAC_ADAPTER pHalmac_adapter,
  66. IN u32 offset,
  67. IN u8 value
  68. );
  69. HALMAC_RET_STATUS
  70. halmac_func_pg_efuse_by_map_88xx(
  71. IN PHALMAC_ADAPTER pHalmac_adapter,
  72. IN PHALMAC_PG_EFUSE_INFO pPg_efuse_info,
  73. IN HALMAC_EFUSE_READ_CFG cfg
  74. );
  75. HALMAC_RET_STATUS
  76. halmac_eeprom_parser_88xx(
  77. IN PHALMAC_ADAPTER pHalmac_adapter,
  78. IN u8 *pPhysical_efuse_map,
  79. OUT u8 *pLogical_efuse_map
  80. );
  81. HALMAC_RET_STATUS
  82. halmac_read_hw_efuse_88xx(
  83. IN PHALMAC_ADAPTER pHalmac_adapter,
  84. IN u32 offset,
  85. IN u32 size,
  86. OUT u8 *pEfuse_map
  87. );
  88. HALMAC_RET_STATUS
  89. halmac_update_fw_info_88xx(
  90. IN PHALMAC_ADAPTER pHalmac_adapter,
  91. IN u8 *pHamacl_fw,
  92. IN u32 halmac_fw_size
  93. );
  94. HALMAC_RET_STATUS
  95. halmac_dlfw_to_mem_88xx(
  96. IN PHALMAC_ADAPTER pHalmac_adapter,
  97. IN u8 *pRam_code,
  98. IN u32 dest,
  99. IN u32 code_size
  100. );
  101. HALMAC_RET_STATUS
  102. halmac_send_fwpkt_88xx(
  103. IN PHALMAC_ADAPTER pHalmac_adapter,
  104. IN u8 *pRam_code,
  105. IN u32 code_size
  106. );
  107. HALMAC_RET_STATUS
  108. halmac_iddma_dlfw_88xx(
  109. IN PHALMAC_ADAPTER pHalmac_adapter,
  110. IN u32 source,
  111. IN u32 dest,
  112. IN u32 length,
  113. IN u8 first
  114. );
  115. HALMAC_RET_STATUS
  116. halmac_check_fw_chksum_88xx(
  117. IN PHALMAC_ADAPTER pHalmac_adapter,
  118. IN u32 memory_address
  119. );
  120. HALMAC_RET_STATUS
  121. halmac_dlfw_end_flow_88xx(
  122. IN PHALMAC_ADAPTER pHalmac_adapter
  123. );
  124. HALMAC_RET_STATUS
  125. halmac_free_dl_fw_end_flow_88xx(
  126. IN PHALMAC_ADAPTER pHalmac_adapter
  127. );
  128. HALMAC_RET_STATUS
  129. halmac_pwr_seq_parser_88xx(
  130. IN PHALMAC_ADAPTER pHalmac_adapter,
  131. IN u8 cut,
  132. IN u8 fab,
  133. IN u8 intf,
  134. IN PHALMAC_WLAN_PWR_CFG *ppPwr_seq_cfg
  135. );
  136. HALMAC_RET_STATUS
  137. halmac_get_h2c_buff_free_space_88xx(
  138. IN PHALMAC_ADAPTER pHalmac_adapter
  139. );
  140. HALMAC_RET_STATUS
  141. halmac_send_h2c_set_pwr_mode_88xx(
  142. IN PHALMAC_ADAPTER pHalmac_adapter,
  143. IN PHALMAC_FWLPS_OPTION pHal_FwLps_Opt
  144. );
  145. HALMAC_RET_STATUS
  146. halmac_func_send_original_h2c_88xx(
  147. IN PHALMAC_ADAPTER pHalmac_adapter,
  148. IN u8 *original_h2c,
  149. IN u16 *seq,
  150. IN u8 ack
  151. );
  152. HALMAC_RET_STATUS
  153. halmac_media_status_rpt_88xx(
  154. IN PHALMAC_ADAPTER pHalmac_adapter,
  155. IN u8 op_mode,
  156. IN u8 mac_id_ind,
  157. IN u8 mac_id,
  158. IN u8 mac_id_end
  159. );
  160. HALMAC_RET_STATUS
  161. halmac_send_h2c_update_datapack_88xx(
  162. IN PHALMAC_ADAPTER pHalmac_adapter,
  163. IN HALMAC_DATA_TYPE halmac_data_type,
  164. IN PHALMAC_PHY_PARAMETER_INFO para_info
  165. );
  166. HALMAC_RET_STATUS
  167. halmac_send_h2c_run_datapack_88xx(
  168. IN PHALMAC_ADAPTER pHalmac_adapter,
  169. IN HALMAC_DATA_TYPE halmac_data_type
  170. );
  171. HALMAC_RET_STATUS
  172. halmac_send_bt_coex_cmd_88xx(
  173. IN PHALMAC_ADAPTER pHalmac_adapter,
  174. IN u8 *pBt_buf,
  175. IN u32 bt_size,
  176. IN u8 ack
  177. );
  178. HALMAC_RET_STATUS
  179. halmac_func_ctrl_ch_switch_88xx(
  180. IN PHALMAC_ADAPTER pHalmac_adapter,
  181. IN PHALMAC_CH_SWITCH_OPTION pCs_option
  182. );
  183. HALMAC_RET_STATUS
  184. halmac_func_send_general_info_88xx(
  185. IN PHALMAC_ADAPTER pHalmac_adapter,
  186. IN PHALMAC_GENERAL_INFO pGeneral_info
  187. );
  188. HALMAC_RET_STATUS
  189. halmac_send_h2c_ps_tuning_para_88xx(
  190. IN PHALMAC_ADAPTER pHalmac_adapter
  191. );
  192. HALMAC_RET_STATUS
  193. halmac_parse_c2h_packet_88xx(
  194. IN PHALMAC_ADAPTER pHalmac_adapter,
  195. IN u8 *halmac_buf,
  196. IN u32 halmac_size
  197. );
  198. HALMAC_RET_STATUS
  199. halmac_send_h2c_update_packet_88xx(
  200. IN PHALMAC_ADAPTER pHalmac_adapter,
  201. IN HALMAC_PACKET_ID pkt_id,
  202. IN u8 *pkt,
  203. IN u32 pkt_size
  204. );
  205. HALMAC_RET_STATUS
  206. halmac_send_h2c_phy_parameter_88xx(
  207. IN PHALMAC_ADAPTER pHalmac_adapter,
  208. IN PHALMAC_PHY_PARAMETER_INFO para_info,
  209. IN u8 full_fifo
  210. );
  211. HALMAC_RET_STATUS
  212. halmac_dump_physical_efuse_fw_88xx(
  213. IN PHALMAC_ADAPTER pHalmac_adapter,
  214. IN u32 offset,
  215. IN u32 Size,
  216. OUT u8 *pEfuse_map
  217. );
  218. HALMAC_RET_STATUS
  219. halmac_send_h2c_update_bcn_parse_info_88xx(
  220. IN PHALMAC_ADAPTER pHalmac_adapter,
  221. IN PHALMAC_BCN_IE_INFO pBcn_ie_info
  222. );
  223. HALMAC_RET_STATUS
  224. halmac_convert_to_sdio_bus_offset_88xx(
  225. IN PHALMAC_ADAPTER pHalmac_adapter,
  226. INOUT u32 *halmac_offset
  227. );
  228. HALMAC_RET_STATUS
  229. halmac_update_sdio_free_page_88xx(
  230. IN PHALMAC_ADAPTER pHalmac_adapter
  231. );
  232. HALMAC_RET_STATUS
  233. halmac_update_oqt_free_space_88xx(
  234. IN PHALMAC_ADAPTER pHalmac_adapter
  235. );
  236. HALMAC_EFUSE_CMD_CONSTRUCT_STATE
  237. halmac_query_efuse_curr_state_88xx(
  238. IN PHALMAC_ADAPTER pHalmac_adapter
  239. );
  240. HALMAC_RET_STATUS
  241. halmac_transition_efuse_state_88xx(
  242. IN PHALMAC_ADAPTER pHalmac_adapter,
  243. IN HALMAC_EFUSE_CMD_CONSTRUCT_STATE dest_state
  244. );
  245. HALMAC_CFG_PARA_CMD_CONSTRUCT_STATE
  246. halmac_query_cfg_para_curr_state_88xx(
  247. IN PHALMAC_ADAPTER pHalmac_adapter
  248. );
  249. HALMAC_RET_STATUS
  250. halmac_transition_cfg_para_state_88xx(
  251. IN PHALMAC_ADAPTER pHalmac_adapter,
  252. IN HALMAC_CFG_PARA_CMD_CONSTRUCT_STATE dest_state
  253. );
  254. HALMAC_SCAN_CMD_CONSTRUCT_STATE
  255. halmac_query_scan_curr_state_88xx(
  256. IN PHALMAC_ADAPTER pHalmac_adapter
  257. );
  258. HALMAC_RET_STATUS
  259. halmac_transition_scan_state_88xx(
  260. IN PHALMAC_ADAPTER pHalmac_adapter,
  261. IN HALMAC_SCAN_CMD_CONSTRUCT_STATE dest_state
  262. );
  263. HALMAC_RET_STATUS
  264. halmac_query_cfg_para_status_88xx(
  265. IN PHALMAC_ADAPTER pHalmac_adapter,
  266. OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
  267. INOUT u8 *data,
  268. INOUT u32 *size
  269. );
  270. HALMAC_RET_STATUS
  271. halmac_query_dump_physical_efuse_status_88xx(
  272. IN PHALMAC_ADAPTER pHalmac_adapter,
  273. OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
  274. INOUT u8 *data,
  275. INOUT u32 *size
  276. );
  277. HALMAC_RET_STATUS
  278. halmac_query_dump_logical_efuse_status_88xx(
  279. IN PHALMAC_ADAPTER pHalmac_adapter,
  280. OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
  281. INOUT u8 *data,
  282. INOUT u32 *size
  283. );
  284. HALMAC_RET_STATUS
  285. halmac_query_channel_switch_status_88xx(
  286. IN PHALMAC_ADAPTER pHalmac_adapter,
  287. OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
  288. INOUT u8 *data,
  289. INOUT u32 *size
  290. );
  291. HALMAC_RET_STATUS
  292. halmac_query_update_packet_status_88xx(
  293. IN PHALMAC_ADAPTER pHalmac_adapter,
  294. OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
  295. INOUT u8 *data,
  296. INOUT u32 *size
  297. );
  298. HALMAC_RET_STATUS
  299. halmac_query_iqk_status_88xx(
  300. IN PHALMAC_ADAPTER pHalmac_adapter,
  301. OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
  302. INOUT u8 *data,
  303. INOUT u32 *size
  304. );
  305. HALMAC_RET_STATUS
  306. halmac_query_power_tracking_status_88xx(
  307. IN PHALMAC_ADAPTER pHalmac_adapter,
  308. OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
  309. INOUT u8 *data,
  310. INOUT u32 *size
  311. );
  312. HALMAC_RET_STATUS
  313. halmac_query_psd_status_88xx(
  314. IN PHALMAC_ADAPTER pHalmac_adapter,
  315. OUT HALMAC_CMD_PROCESS_STATUS *pProcess_status,
  316. INOUT u8 *data,
  317. INOUT u32 *size
  318. );
  319. HALMAC_RET_STATUS
  320. halmac_verify_io_88xx(
  321. IN PHALMAC_ADAPTER pHalmac_adapter
  322. );
  323. HALMAC_RET_STATUS
  324. halmac_verify_send_rsvd_page_88xx(
  325. IN PHALMAC_ADAPTER pHalmac_adapter
  326. );
  327. VOID
  328. halmac_power_save_cb_88xx(
  329. IN VOID *CbData
  330. );
  331. HALMAC_RET_STATUS
  332. halmac_buffer_read_88xx(
  333. IN PHALMAC_ADAPTER pHalmac_adapter,
  334. IN u32 offset,
  335. IN u32 size,
  336. IN HAL_FIFO_SEL halmac_fifo_sel,
  337. OUT u8 *pFifo_map
  338. );
  339. VOID
  340. halmac_restore_mac_register_88xx(
  341. IN PHALMAC_ADAPTER pHalmac_adapter,
  342. IN PHALMAC_RESTORE_INFO pRestore_info,
  343. IN u32 restore_num
  344. );
  345. VOID
  346. halmac_api_record_id_88xx(
  347. IN PHALMAC_ADAPTER pHalmac_adapter,
  348. IN HALMAC_API_ID api_id
  349. );
  350. HALMAC_RET_STATUS
  351. halmac_set_usb_mode_88xx(
  352. IN PHALMAC_ADAPTER pHalmac_adapter,
  353. IN HALMAC_USB_MODE usb_mode
  354. );
  355. VOID
  356. halmac_enable_bb_rf_88xx(
  357. IN PHALMAC_ADAPTER pHalmac_adapter,
  358. IN u8 enable
  359. );
  360. VOID
  361. halmac_config_sdio_tx_page_threshold_88xx(
  362. IN PHALMAC_ADAPTER pHalmac_adapter,
  363. IN PHALMAC_TX_PAGE_THRESHOLD_INFO pThreshold_info
  364. );
  365. HALMAC_RET_STATUS
  366. halmac_rqpn_parser_88xx(
  367. IN PHALMAC_ADAPTER pHalmac_adapter,
  368. IN HALMAC_TRX_MODE halmac_trx_mode,
  369. IN PHALMAC_RQPN pPwr_seq_cfg
  370. );
  371. HALMAC_RET_STATUS
  372. halmac_check_oqt_88xx(
  373. IN PHALMAC_ADAPTER pHalmac_adapter,
  374. IN u32 tx_agg_num,
  375. IN u8 *pHalmac_buf
  376. );
  377. HALMAC_RET_STATUS
  378. halmac_pg_num_parser_88xx(
  379. IN PHALMAC_ADAPTER pHalmac_adapter,
  380. IN HALMAC_TRX_MODE halmac_trx_mode,
  381. IN PHALMAC_PG_NUM pPg_num_table
  382. );
  383. HALMAC_RET_STATUS
  384. halmac_parse_intf_phy_88xx(
  385. IN PHALMAC_ADAPTER pHalmac_adapter,
  386. IN PHALMAC_INTF_PHY_PARA pIntf_phy_para,
  387. IN HALMAC_INTF_PHY_PLATFORM platform,
  388. IN HAL_INTF_PHY intf_phy
  389. );
  390. HALMAC_RET_STATUS
  391. halmac_dbi_write32_88xx(
  392. IN PHALMAC_ADAPTER pHalmac_adapter,
  393. IN u16 addr,
  394. IN u32 data
  395. );
  396. u32
  397. halmac_dbi_read32_88xx(
  398. IN PHALMAC_ADAPTER pHalmac_adapter,
  399. IN u16 addr
  400. );
  401. HALMAC_RET_STATUS
  402. halmac_dbi_write8_88xx(
  403. IN PHALMAC_ADAPTER pHalmac_adapter,
  404. IN u16 addr,
  405. IN u8 data
  406. );
  407. u8
  408. halmac_dbi_read8_88xx(
  409. IN PHALMAC_ADAPTER pHalmac_adapter,
  410. IN u16 addr
  411. );
  412. u16
  413. halmac_mdio_read_88xx(
  414. IN PHALMAC_ADAPTER pHalmac_adapter,
  415. IN u8 addr,
  416. IN u8 speed
  417. );
  418. HALMAC_RET_STATUS
  419. halmac_mdio_write_88xx(
  420. IN PHALMAC_ADAPTER pHalmac_adapter,
  421. IN u8 addr,
  422. IN u16 data,
  423. IN u8 speed
  424. );
  425. VOID
  426. halmac_config_ampdu_88xx(
  427. IN PHALMAC_ADAPTER pHalmac_adapter,
  428. IN PHALMAC_AMPDU_CONFIG pAmpdu_config
  429. );
  430. HALMAC_RET_STATUS
  431. halmac_usbphy_write_88xx(
  432. IN PHALMAC_ADAPTER pHalmac_adapter,
  433. IN u8 addr,
  434. IN u16 data,
  435. IN u8 speed
  436. );
  437. u16
  438. halmac_usbphy_read_88xx(
  439. IN PHALMAC_ADAPTER pHalmac_adapter,
  440. IN u8 addr,
  441. IN u8 speed
  442. );
  443. #endif /* _HALMAC_FUNC_88XX_H_ */