1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2016 Realtek Corporation. 5 * 6 * Contact Information: 7 * wlanfae <wlanfae@realtek.com> 8 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 9 * Hsinchu 300, Taiwan. 10 * 11 * Larry Finger <Larry.Finger@lwfinger.net> 12 * 13 *****************************************************************************/ 14 #ifndef _HALMAC_API_88XX_H_ 15 #define _HALMAC_API_88XX_H_ 16 17 #include "../halmac_2_platform.h" 18 #include "../halmac_type.h" 19 20 void halmac_init_state_machine_88xx(struct halmac_adapter *halmac_adapter); 21 22 void halmac_init_adapter_para_88xx(struct halmac_adapter *halmac_adapter); 23 24 void halmac_init_adapter_dynamic_para_88xx( 25 struct halmac_adapter *halmac_adapter); 26 27 enum halmac_ret_status 28 halmac_mount_api_88xx(struct halmac_adapter *halmac_adapter); 29 30 enum halmac_ret_status 31 halmac_download_firmware_88xx(struct halmac_adapter *halmac_adapter, 32 u8 *hamacl_fw, u32 halmac_fw_size); 33 34 enum halmac_ret_status 35 halmac_free_download_firmware_88xx(struct halmac_adapter *halmac_adapter, 36 enum halmac_dlfw_mem dlfw_mem, u8 *hamacl_fw, 37 u32 halmac_fw_size); 38 39 enum halmac_ret_status 40 halmac_get_fw_version_88xx(struct halmac_adapter *halmac_adapter, 41 struct halmac_fw_version *fw_version); 42 43 enum halmac_ret_status 44 halmac_cfg_mac_addr_88xx(struct halmac_adapter *halmac_adapter, u8 halmac_port, 45 union halmac_wlan_addr *hal_address); 46 47 enum halmac_ret_status 48 halmac_cfg_bssid_88xx(struct halmac_adapter *halmac_adapter, u8 halmac_port, 49 union halmac_wlan_addr *hal_address); 50 51 enum halmac_ret_status 52 halmac_cfg_multicast_addr_88xx(struct halmac_adapter *halmac_adapter, 53 union halmac_wlan_addr *hal_address); 54 55 enum halmac_ret_status 56 halmac_pre_init_system_cfg_88xx(struct halmac_adapter *halmac_adapter); 57 58 enum halmac_ret_status 59 halmac_init_system_cfg_88xx(struct halmac_adapter *halmac_adapter); 60 61 enum halmac_ret_status 62 halmac_cfg_rx_aggregation_88xx(struct halmac_adapter *halmac_adapter, 63 struct halmac_rxagg_cfg halmac_rxagg_cfg); 64 65 enum halmac_ret_status 66 halmac_init_edca_cfg_88xx(struct halmac_adapter *halmac_adapter); 67 68 enum halmac_ret_status 69 halmac_cfg_operation_mode_88xx(struct halmac_adapter *halmac_adapter, 70 enum halmac_wireless_mode wireless_mode); 71 72 enum halmac_ret_status 73 halmac_cfg_ch_bw_88xx(struct halmac_adapter *halmac_adapter, u8 channel, 74 enum halmac_pri_ch_idx pri_ch_idx, enum halmac_bw bw); 75 76 enum halmac_ret_status halmac_cfg_ch_88xx(struct halmac_adapter *halmac_adapter, 77 u8 channel); 78 79 enum halmac_ret_status 80 halmac_cfg_pri_ch_idx_88xx(struct halmac_adapter *halmac_adapter, 81 enum halmac_pri_ch_idx pri_ch_idx); 82 83 enum halmac_ret_status halmac_cfg_bw_88xx(struct halmac_adapter *halmac_adapter, 84 enum halmac_bw bw); 85 86 enum halmac_ret_status 87 halmac_init_wmac_cfg_88xx(struct halmac_adapter *halmac_adapter); 88 89 enum halmac_ret_status 90 halmac_init_mac_cfg_88xx(struct halmac_adapter *halmac_adapter, 91 enum halmac_trx_mode mode); 92 93 enum halmac_ret_status 94 halmac_dump_efuse_map_88xx(struct halmac_adapter *halmac_adapter, 95 enum halmac_efuse_read_cfg cfg); 96 97 enum halmac_ret_status 98 halmac_dump_efuse_map_bt_88xx(struct halmac_adapter *halmac_adapter, 99 enum halmac_efuse_bank halmac_efuse_bank, 100 u32 bt_efuse_map_size, u8 *bt_efuse_map); 101 102 enum halmac_ret_status 103 halmac_write_efuse_bt_88xx(struct halmac_adapter *halmac_adapter, 104 u32 halmac_offset, u8 halmac_value, 105 enum halmac_efuse_bank halmac_efuse_bank); 106 107 enum halmac_ret_status 108 halmac_pg_efuse_by_map_88xx(struct halmac_adapter *halmac_adapter, 109 struct halmac_pg_efuse_info *pg_efuse_info, 110 enum halmac_efuse_read_cfg cfg); 111 112 enum halmac_ret_status 113 halmac_get_efuse_size_88xx(struct halmac_adapter *halmac_adapter, 114 u32 *halmac_size); 115 116 enum halmac_ret_status 117 halmac_get_efuse_available_size_88xx(struct halmac_adapter *halmac_adapter, 118 u32 *halmac_size); 119 120 enum halmac_ret_status 121 halmac_get_c2h_info_88xx(struct halmac_adapter *halmac_adapter, u8 *halmac_buf, 122 u32 halmac_size); 123 124 enum halmac_ret_status 125 halmac_get_logical_efuse_size_88xx(struct halmac_adapter *halmac_adapter, 126 u32 *halmac_size); 127 128 enum halmac_ret_status 129 halmac_dump_logical_efuse_map_88xx(struct halmac_adapter *halmac_adapter, 130 enum halmac_efuse_read_cfg cfg); 131 132 enum halmac_ret_status 133 halmac_write_logical_efuse_88xx(struct halmac_adapter *halmac_adapter, 134 u32 halmac_offset, u8 halmac_value); 135 136 enum halmac_ret_status 137 halmac_read_logical_efuse_88xx(struct halmac_adapter *halmac_adapter, 138 u32 halmac_offset, u8 *value); 139 140 enum halmac_ret_status 141 halmac_cfg_fwlps_option_88xx(struct halmac_adapter *halmac_adapter, 142 struct halmac_fwlps_option *lps_option); 143 144 enum halmac_ret_status 145 halmac_cfg_fwips_option_88xx(struct halmac_adapter *halmac_adapter, 146 struct halmac_fwips_option *ips_option); 147 148 enum halmac_ret_status 149 halmac_enter_wowlan_88xx(struct halmac_adapter *halmac_adapter, 150 struct halmac_wowlan_option *wowlan_option); 151 152 enum halmac_ret_status 153 halmac_leave_wowlan_88xx(struct halmac_adapter *halmac_adapter); 154 155 enum halmac_ret_status 156 halmac_enter_ps_88xx(struct halmac_adapter *halmac_adapter, 157 enum halmac_ps_state ps_state); 158 159 enum halmac_ret_status 160 halmac_leave_ps_88xx(struct halmac_adapter *halmac_adapter); 161 162 enum halmac_ret_status 163 halmac_h2c_lb_88xx(struct halmac_adapter *halmac_adapter); 164 165 enum halmac_ret_status halmac_debug_88xx(struct halmac_adapter *halmac_adapter); 166 167 enum halmac_ret_status 168 halmac_cfg_parameter_88xx(struct halmac_adapter *halmac_adapter, 169 struct halmac_phy_parameter_info *para_info, 170 u8 full_fifo); 171 172 enum halmac_ret_status 173 halmac_update_packet_88xx(struct halmac_adapter *halmac_adapter, 174 enum halmac_packet_id pkt_id, u8 *pkt, u32 pkt_size); 175 176 enum halmac_ret_status 177 halmac_bcn_ie_filter_88xx(struct halmac_adapter *halmac_adapter, 178 struct halmac_bcn_ie_info *bcn_ie_info); 179 180 enum halmac_ret_status 181 halmac_send_original_h2c_88xx(struct halmac_adapter *halmac_adapter, 182 u8 *original_h2c, u16 *seq, u8 ack); 183 184 enum halmac_ret_status 185 halmac_update_datapack_88xx(struct halmac_adapter *halmac_adapter, 186 enum halmac_data_type halmac_data_type, 187 struct halmac_phy_parameter_info *para_info); 188 189 enum halmac_ret_status 190 halmac_run_datapack_88xx(struct halmac_adapter *halmac_adapter, 191 enum halmac_data_type halmac_data_type); 192 193 enum halmac_ret_status 194 halmac_cfg_drv_info_88xx(struct halmac_adapter *halmac_adapter, 195 enum halmac_drv_info halmac_drv_info); 196 197 enum halmac_ret_status 198 halmac_send_bt_coex_88xx(struct halmac_adapter *halmac_adapter, u8 *bt_buf, 199 u32 bt_size, u8 ack); 200 201 enum halmac_ret_status 202 halmac_verify_platform_api_88xx(struct halmac_adapter *halmac_adapter); 203 204 enum halmac_ret_status 205 halmac_timer_2s_88xx(struct halmac_adapter *halmac_adapter); 206 207 enum halmac_ret_status 208 halmac_fill_txdesc_check_sum_88xx(struct halmac_adapter *halmac_adapter, 209 u8 *cur_desc); 210 211 enum halmac_ret_status 212 halmac_dump_fifo_88xx(struct halmac_adapter *halmac_adapter, 213 enum hal_fifo_sel halmac_fifo_sel, u32 halmac_start_addr, 214 u32 halmac_fifo_dump_size, u8 *fifo_map); 215 216 u32 halmac_get_fifo_size_88xx(struct halmac_adapter *halmac_adapter, 217 enum hal_fifo_sel halmac_fifo_sel); 218 219 enum halmac_ret_status 220 halmac_cfg_txbf_88xx(struct halmac_adapter *halmac_adapter, u8 userid, 221 enum halmac_bw bw, u8 txbf_en); 222 223 enum halmac_ret_status 224 halmac_cfg_mumimo_88xx(struct halmac_adapter *halmac_adapter, 225 struct halmac_cfg_mumimo_para *cfgmu); 226 227 enum halmac_ret_status 228 halmac_cfg_sounding_88xx(struct halmac_adapter *halmac_adapter, 229 enum halmac_snd_role role, 230 enum halmac_data_rate datarate); 231 232 enum halmac_ret_status 233 halmac_del_sounding_88xx(struct halmac_adapter *halmac_adapter, 234 enum halmac_snd_role role); 235 236 enum halmac_ret_status 237 halmac_su_bfee_entry_init_88xx(struct halmac_adapter *halmac_adapter, u8 userid, 238 u16 paid); 239 240 enum halmac_ret_status 241 halmac_su_bfer_entry_init_88xx(struct halmac_adapter *halmac_adapter, 242 struct halmac_su_bfer_init_para *su_bfer_init); 243 244 enum halmac_ret_status 245 halmac_mu_bfee_entry_init_88xx(struct halmac_adapter *halmac_adapter, 246 struct halmac_mu_bfee_init_para *mu_bfee_init); 247 248 enum halmac_ret_status 249 halmac_mu_bfer_entry_init_88xx(struct halmac_adapter *halmac_adapter, 250 struct halmac_mu_bfer_init_para *mu_bfer_init); 251 252 enum halmac_ret_status 253 halmac_su_bfee_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid); 254 255 enum halmac_ret_status 256 halmac_su_bfer_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid); 257 258 enum halmac_ret_status 259 halmac_mu_bfee_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid); 260 261 enum halmac_ret_status 262 halmac_mu_bfer_entry_del_88xx(struct halmac_adapter *halmac_adapter); 263 264 enum halmac_ret_status 265 halmac_add_ch_info_88xx(struct halmac_adapter *halmac_adapter, 266 struct halmac_ch_info *ch_info); 267 268 enum halmac_ret_status 269 halmac_add_extra_ch_info_88xx(struct halmac_adapter *halmac_adapter, 270 struct halmac_ch_extra_info *ch_extra_info); 271 272 enum halmac_ret_status 273 halmac_ctrl_ch_switch_88xx(struct halmac_adapter *halmac_adapter, 274 struct halmac_ch_switch_option *cs_option); 275 276 enum halmac_ret_status halmac_p2pps_88xx(struct halmac_adapter *halmac_adapter, 277 struct halmac_p2pps *p2p_ps); 278 279 enum halmac_ret_status 280 halmac_func_p2pps_88xx(struct halmac_adapter *halmac_adapter, 281 struct halmac_p2pps *p2p_ps); 282 283 enum halmac_ret_status 284 halmac_clear_ch_info_88xx(struct halmac_adapter *halmac_adapter); 285 286 enum halmac_ret_status 287 halmac_send_general_info_88xx(struct halmac_adapter *halmac_adapter, 288 struct halmac_general_info *general_info); 289 290 enum halmac_ret_status 291 halmac_start_iqk_88xx(struct halmac_adapter *halmac_adapter, 292 struct halmac_iqk_para_ *iqk_para); 293 294 enum halmac_ret_status halmac_ctrl_pwr_tracking_88xx( 295 struct halmac_adapter *halmac_adapter, 296 struct halmac_pwr_tracking_option *pwr_tracking_opt); 297 298 enum halmac_ret_status 299 halmac_query_status_88xx(struct halmac_adapter *halmac_adapter, 300 enum halmac_feature_id feature_id, 301 enum halmac_cmd_process_status *process_status, 302 u8 *data, u32 *size); 303 304 enum halmac_ret_status 305 halmac_reset_feature_88xx(struct halmac_adapter *halmac_adapter, 306 enum halmac_feature_id feature_id); 307 308 enum halmac_ret_status 309 halmac_check_fw_status_88xx(struct halmac_adapter *halmac_adapter, 310 bool *fw_status); 311 312 enum halmac_ret_status 313 halmac_dump_fw_dmem_88xx(struct halmac_adapter *halmac_adapter, u8 *dmem, 314 u32 *size); 315 316 enum halmac_ret_status 317 halmac_cfg_max_dl_size_88xx(struct halmac_adapter *halmac_adapter, u32 size); 318 319 enum halmac_ret_status halmac_psd_88xx(struct halmac_adapter *halmac_adapter, 320 u16 start_psd, u16 end_psd); 321 322 enum halmac_ret_status 323 halmac_cfg_la_mode_88xx(struct halmac_adapter *halmac_adapter, 324 enum halmac_la_mode la_mode); 325 326 enum halmac_ret_status halmac_cfg_rx_fifo_expanding_mode_88xx( 327 struct halmac_adapter *halmac_adapter, 328 enum halmac_rx_fifo_expanding_mode rx_fifo_expanding_mode); 329 330 enum halmac_ret_status 331 halmac_config_security_88xx(struct halmac_adapter *halmac_adapter, 332 struct halmac_security_setting *sec_setting); 333 334 u8 halmac_get_used_cam_entry_num_88xx(struct halmac_adapter *halmac_adapter, 335 enum hal_security_type sec_type); 336 337 enum halmac_ret_status 338 halmac_write_cam_88xx(struct halmac_adapter *halmac_adapter, u32 entry_index, 339 struct halmac_cam_entry_info *cam_entry_info); 340 341 enum halmac_ret_status 342 halmac_read_cam_entry_88xx(struct halmac_adapter *halmac_adapter, 343 u32 entry_index, 344 struct halmac_cam_entry_format *content); 345 346 enum halmac_ret_status 347 halmac_clear_cam_entry_88xx(struct halmac_adapter *halmac_adapter, 348 u32 entry_index); 349 350 enum halmac_ret_status 351 halmac_get_hw_value_88xx(struct halmac_adapter *halmac_adapter, 352 enum halmac_hw_id hw_id, void *pvalue); 353 354 enum halmac_ret_status 355 halmac_set_hw_value_88xx(struct halmac_adapter *halmac_adapter, 356 enum halmac_hw_id hw_id, void *pvalue); 357 358 enum halmac_ret_status 359 halmac_cfg_drv_rsvd_pg_num_88xx(struct halmac_adapter *halmac_adapter, 360 enum halmac_drv_rsvd_pg_num pg_num); 361 362 enum halmac_ret_status 363 halmac_get_chip_version_88xx(struct halmac_adapter *halmac_adapter, 364 struct halmac_ver *version); 365 366 enum halmac_ret_status 367 halmac_chk_txdesc_88xx(struct halmac_adapter *halmac_adapter, u8 *halmac_buf, 368 u32 halmac_size); 369 370 enum halmac_ret_status 371 halmac_dl_drv_rsvd_page_88xx(struct halmac_adapter *halmac_adapter, 372 u8 pg_offset, u8 *halmac_buf, u32 halmac_size); 373 374 enum halmac_ret_status 375 halmac_cfg_csi_rate_88xx(struct halmac_adapter *halmac_adapter, u8 rssi, 376 u8 current_rate, u8 fixrate_en, u8 *new_rate); 377 378 enum halmac_ret_status halmac_sdio_cmd53_4byte_88xx( 379 struct halmac_adapter *halmac_adapter, 380 enum halmac_sdio_cmd53_4byte_mode cmd53_4byte_mode); 381 382 enum halmac_ret_status 383 halmac_txfifo_is_empty_88xx(struct halmac_adapter *halmac_adapter, u32 chk_num); 384 385 #endif /* _HALMAC_API_H_ */ 386