Lines Matching refs:msg_body
293 #define INIT_HAL_MSG(msg_body, type) \ argument
295 memset(&msg_body, 0, sizeof(msg_body)); \
296 msg_body.header.msg_type = type; \
297 msg_body.header.msg_version = WCN36XX_HAL_MSG_VERSION0; \
298 msg_body.header.len = sizeof(msg_body); \
309 #define PREPARE_HAL_BUF(send_buf, msg_body) \ argument
311 memset(send_buf, 0, msg_body.header.len); \
312 memcpy(send_buf, &msg_body, sizeof(msg_body)); \
341 struct wcn36xx_hal_nv_img_download_req_msg msg_body; in wcn36xx_smd_load_nv() local
356 INIT_HAL_MSG(msg_body, WCN36XX_HAL_DOWNLOAD_NV_REQ); in wcn36xx_smd_load_nv()
358 msg_body.header.len += WCN36XX_NV_FRAGMENT_SIZE; in wcn36xx_smd_load_nv()
360 msg_body.frag_number = 0; in wcn36xx_smd_load_nv()
367 msg_body.last_fragment = 0; in wcn36xx_smd_load_nv()
368 msg_body.nv_img_buffer_size = WCN36XX_NV_FRAGMENT_SIZE; in wcn36xx_smd_load_nv()
370 msg_body.last_fragment = 1; in wcn36xx_smd_load_nv()
371 msg_body.nv_img_buffer_size = fw_bytes_left; in wcn36xx_smd_load_nv()
374 msg_body.header.len = sizeof(msg_body) + fw_bytes_left; in wcn36xx_smd_load_nv()
379 memcpy(wcn->hal_buf, &msg_body, sizeof(msg_body)); in wcn36xx_smd_load_nv()
382 memcpy(wcn->hal_buf + sizeof(msg_body), in wcn36xx_smd_load_nv()
384 msg_body.nv_img_buffer_size); in wcn36xx_smd_load_nv()
386 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_load_nv()
396 msg_body.frag_number++; in wcn36xx_smd_load_nv()
399 } while (msg_body.last_fragment != 1); in wcn36xx_smd_load_nv()
448 struct wcn36xx_hal_mac_start_req_msg msg_body, *body; in wcn36xx_smd_start() local
454 INIT_HAL_MSG(msg_body, WCN36XX_HAL_START_REQ); in wcn36xx_smd_start()
456 msg_body.params.type = DRIVER_TYPE_PRODUCTION; in wcn36xx_smd_start()
457 msg_body.params.len = 0; in wcn36xx_smd_start()
459 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_start()
474 msg_body.params.type); in wcn36xx_smd_start()
495 struct wcn36xx_hal_mac_stop_req_msg msg_body; in wcn36xx_smd_stop() local
499 INIT_HAL_MSG(msg_body, WCN36XX_HAL_STOP_REQ); in wcn36xx_smd_stop()
501 msg_body.stop_req_params.reason = HAL_STOP_TYPE_RF_KILL; in wcn36xx_smd_stop()
503 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_stop()
505 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_stop()
522 struct wcn36xx_hal_init_scan_req_msg msg_body; in wcn36xx_smd_init_scan() local
526 INIT_HAL_MSG(msg_body, WCN36XX_HAL_INIT_SCAN_REQ); in wcn36xx_smd_init_scan()
528 msg_body.mode = mode; in wcn36xx_smd_init_scan()
530 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_init_scan()
532 wcn36xx_dbg(WCN36XX_DBG_HAL, "hal init scan mode %d\n", msg_body.mode); in wcn36xx_smd_init_scan()
534 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_init_scan()
551 struct wcn36xx_hal_start_scan_req_msg msg_body; in wcn36xx_smd_start_scan() local
555 INIT_HAL_MSG(msg_body, WCN36XX_HAL_START_SCAN_REQ); in wcn36xx_smd_start_scan()
557 msg_body.scan_channel = scan_channel; in wcn36xx_smd_start_scan()
559 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_start_scan()
562 msg_body.scan_channel); in wcn36xx_smd_start_scan()
564 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_start_scan()
581 struct wcn36xx_hal_end_scan_req_msg msg_body; in wcn36xx_smd_end_scan() local
585 INIT_HAL_MSG(msg_body, WCN36XX_HAL_END_SCAN_REQ); in wcn36xx_smd_end_scan()
587 msg_body.scan_channel = scan_channel; in wcn36xx_smd_end_scan()
589 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_end_scan()
592 msg_body.scan_channel); in wcn36xx_smd_end_scan()
594 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_end_scan()
612 struct wcn36xx_hal_finish_scan_req_msg msg_body; in wcn36xx_smd_finish_scan() local
616 INIT_HAL_MSG(msg_body, WCN36XX_HAL_FINISH_SCAN_REQ); in wcn36xx_smd_finish_scan()
618 msg_body.mode = mode; in wcn36xx_smd_finish_scan()
620 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_finish_scan()
623 msg_body.mode); in wcn36xx_smd_finish_scan()
625 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_finish_scan()
644 struct wcn36xx_hal_start_scan_offload_req_msg *msg_body; in wcn36xx_smd_start_hw_scan() local
651 msg_body = kzalloc(sizeof(*msg_body), GFP_KERNEL); in wcn36xx_smd_start_hw_scan()
652 if (!msg_body) { in wcn36xx_smd_start_hw_scan()
657 INIT_HAL_MSG((*msg_body), WCN36XX_HAL_START_SCAN_OFFLOAD_REQ); in wcn36xx_smd_start_hw_scan()
659 msg_body->scan_type = WCN36XX_HAL_SCAN_TYPE_ACTIVE; in wcn36xx_smd_start_hw_scan()
660 msg_body->min_ch_time = 30; in wcn36xx_smd_start_hw_scan()
661 msg_body->max_ch_time = 100; in wcn36xx_smd_start_hw_scan()
662 msg_body->scan_hidden = 1; in wcn36xx_smd_start_hw_scan()
663 memcpy(msg_body->mac, vif->addr, ETH_ALEN); in wcn36xx_smd_start_hw_scan()
664 msg_body->bss_type = vif_priv->bss_type; in wcn36xx_smd_start_hw_scan()
665 msg_body->p2p_search = vif->p2p; in wcn36xx_smd_start_hw_scan()
667 msg_body->num_ssid = min_t(u8, req->n_ssids, ARRAY_SIZE(msg_body->ssids)); in wcn36xx_smd_start_hw_scan()
668 for (i = 0; i < msg_body->num_ssid; i++) { in wcn36xx_smd_start_hw_scan()
669 msg_body->ssids[i].length = min_t(u8, req->ssids[i].ssid_len, in wcn36xx_smd_start_hw_scan()
670 sizeof(msg_body->ssids[i].ssid)); in wcn36xx_smd_start_hw_scan()
671 memcpy(msg_body->ssids[i].ssid, req->ssids[i].ssid, in wcn36xx_smd_start_hw_scan()
672 msg_body->ssids[i].length); in wcn36xx_smd_start_hw_scan()
675 msg_body->num_channel = min_t(u8, req->n_channels, in wcn36xx_smd_start_hw_scan()
676 sizeof(msg_body->channels)); in wcn36xx_smd_start_hw_scan()
677 for (i = 0; i < msg_body->num_channel; i++) in wcn36xx_smd_start_hw_scan()
678 msg_body->channels[i] = req->channels[i]->hw_value; in wcn36xx_smd_start_hw_scan()
680 msg_body->header.len -= WCN36XX_MAX_SCAN_IE_LEN; in wcn36xx_smd_start_hw_scan()
683 msg_body->ie_len = req->ie_len; in wcn36xx_smd_start_hw_scan()
684 msg_body->header.len += req->ie_len; in wcn36xx_smd_start_hw_scan()
685 memcpy(msg_body->ie, req->ie, req->ie_len); in wcn36xx_smd_start_hw_scan()
688 PREPARE_HAL_BUF(wcn->hal_buf, (*msg_body)); in wcn36xx_smd_start_hw_scan()
692 msg_body->num_channel, msg_body->num_ssid, in wcn36xx_smd_start_hw_scan()
693 msg_body->p2p_search ? "yes" : "no"); in wcn36xx_smd_start_hw_scan()
695 ret = wcn36xx_smd_send_and_wait(wcn, msg_body->header.len); in wcn36xx_smd_start_hw_scan()
707 kfree(msg_body); in wcn36xx_smd_start_hw_scan()
714 struct wcn36xx_hal_stop_scan_offload_req_msg msg_body; in wcn36xx_smd_stop_hw_scan() local
718 INIT_HAL_MSG(msg_body, WCN36XX_HAL_STOP_SCAN_OFFLOAD_REQ); in wcn36xx_smd_stop_hw_scan()
719 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_stop_hw_scan()
723 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_stop_hw_scan()
756 struct wcn36xx_hal_switch_channel_req_msg msg_body; in wcn36xx_smd_switch_channel() local
760 INIT_HAL_MSG(msg_body, WCN36XX_HAL_CH_SWITCH_REQ); in wcn36xx_smd_switch_channel()
762 msg_body.channel_number = (u8)ch; in wcn36xx_smd_switch_channel()
763 msg_body.tx_mgmt_power = 0xbf; in wcn36xx_smd_switch_channel()
764 msg_body.max_tx_power = 0xbf; in wcn36xx_smd_switch_channel()
765 memcpy(msg_body.self_sta_mac_addr, vif->addr, ETH_ALEN); in wcn36xx_smd_switch_channel()
767 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_switch_channel()
769 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_switch_channel()
869 struct wcn36xx_hal_update_scan_params_req_ex msg_body; in wcn36xx_smd_update_scan_params() local
873 INIT_HAL_MSG(msg_body, WCN36XX_HAL_UPDATE_SCAN_PARAM_REQ); in wcn36xx_smd_update_scan_params()
875 msg_body.dot11d_enabled = false; in wcn36xx_smd_update_scan_params()
876 msg_body.dot11d_resolved = true; in wcn36xx_smd_update_scan_params()
878 msg_body.channel_count = channel_count; in wcn36xx_smd_update_scan_params()
879 memcpy(msg_body.channels, channels, channel_count); in wcn36xx_smd_update_scan_params()
880 msg_body.active_min_ch_time = 60; in wcn36xx_smd_update_scan_params()
881 msg_body.active_max_ch_time = 120; in wcn36xx_smd_update_scan_params()
882 msg_body.passive_min_ch_time = 60; in wcn36xx_smd_update_scan_params()
883 msg_body.passive_max_ch_time = 110; in wcn36xx_smd_update_scan_params()
884 msg_body.state = PHY_SINGLE_CHANNEL_CENTERED; in wcn36xx_smd_update_scan_params()
886 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_update_scan_params()
890 msg_body.channel_count); in wcn36xx_smd_update_scan_params()
892 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_update_scan_params()
940 struct wcn36xx_hal_add_sta_self_req msg_body; in wcn36xx_smd_add_sta_self() local
944 INIT_HAL_MSG(msg_body, WCN36XX_HAL_ADD_STA_SELF_REQ); in wcn36xx_smd_add_sta_self()
946 memcpy(&msg_body.self_addr, vif->addr, ETH_ALEN); in wcn36xx_smd_add_sta_self()
948 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_add_sta_self()
952 msg_body.self_addr, msg_body.status); in wcn36xx_smd_add_sta_self()
954 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_add_sta_self()
974 struct wcn36xx_hal_del_sta_self_req_msg msg_body; in wcn36xx_smd_delete_sta_self() local
978 INIT_HAL_MSG(msg_body, WCN36XX_HAL_DEL_STA_SELF_REQ); in wcn36xx_smd_delete_sta_self()
980 memcpy(&msg_body.self_addr, addr, ETH_ALEN); in wcn36xx_smd_delete_sta_self()
982 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_delete_sta_self()
984 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_delete_sta_self()
1002 struct wcn36xx_hal_delete_sta_req_msg msg_body; in wcn36xx_smd_delete_sta() local
1006 INIT_HAL_MSG(msg_body, WCN36XX_HAL_DELETE_STA_REQ); in wcn36xx_smd_delete_sta()
1008 msg_body.sta_index = sta_index; in wcn36xx_smd_delete_sta()
1010 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_delete_sta()
1014 msg_body.sta_index); in wcn36xx_smd_delete_sta()
1016 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_delete_sta()
1049 struct wcn36xx_hal_join_req_msg msg_body; in wcn36xx_smd_join() local
1053 INIT_HAL_MSG(msg_body, WCN36XX_HAL_JOIN_REQ); in wcn36xx_smd_join()
1055 memcpy(&msg_body.bssid, bssid, ETH_ALEN); in wcn36xx_smd_join()
1056 memcpy(&msg_body.self_sta_mac_addr, vif, ETH_ALEN); in wcn36xx_smd_join()
1057 msg_body.channel = ch; in wcn36xx_smd_join()
1060 msg_body.secondary_channel_offset = in wcn36xx_smd_join()
1063 msg_body.secondary_channel_offset = in wcn36xx_smd_join()
1066 msg_body.secondary_channel_offset = in wcn36xx_smd_join()
1069 msg_body.link_state = WCN36XX_HAL_LINK_PREASSOC_STATE; in wcn36xx_smd_join()
1071 msg_body.max_tx_power = 0xbf; in wcn36xx_smd_join()
1072 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_join()
1076 msg_body.bssid, msg_body.self_sta_mac_addr, in wcn36xx_smd_join()
1077 msg_body.channel, msg_body.link_state); in wcn36xx_smd_join()
1079 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_join()
1098 struct wcn36xx_hal_set_link_state_req_msg msg_body; in wcn36xx_smd_set_link_st() local
1102 INIT_HAL_MSG(msg_body, WCN36XX_HAL_SET_LINK_ST_REQ); in wcn36xx_smd_set_link_st()
1104 memcpy(&msg_body.bssid, bssid, ETH_ALEN); in wcn36xx_smd_set_link_st()
1105 memcpy(&msg_body.self_mac_addr, sta_mac, ETH_ALEN); in wcn36xx_smd_set_link_st()
1106 msg_body.state = state; in wcn36xx_smd_set_link_st()
1108 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_set_link_st()
1112 msg_body.bssid, msg_body.self_mac_addr, msg_body.state); in wcn36xx_smd_set_link_st()
1114 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_set_link_st()
1202 struct wcn36xx_hal_config_sta_req_msg_v1 msg_body; in wcn36xx_smd_config_sta_v1() local
1203 struct wcn36xx_hal_config_sta_params_v1 *sta = &msg_body.sta_params; in wcn36xx_smd_config_sta_v1()
1205 INIT_HAL_MSG(msg_body, WCN36XX_HAL_CONFIG_STA_REQ); in wcn36xx_smd_config_sta_v1()
1208 &msg_body.sta_params); in wcn36xx_smd_config_sta_v1()
1210 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_config_sta_v1()
1217 return wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_config_sta_v1()
1267 struct wcn36xx_hal_config_bss_req_msg_v1 *msg_body; in wcn36xx_smd_config_bss_v1() local
1272 msg_body = kzalloc(sizeof(*msg_body), GFP_KERNEL); in wcn36xx_smd_config_bss_v1()
1273 if (!msg_body) in wcn36xx_smd_config_bss_v1()
1276 INIT_HAL_MSG((*msg_body), WCN36XX_HAL_CONFIG_BSS_REQ); in wcn36xx_smd_config_bss_v1()
1278 bss = &msg_body->bss_params; in wcn36xx_smd_config_bss_v1()
1282 memcpy(&msg_body->bss_params.bssid, in wcn36xx_smd_config_bss_v1()
1284 memcpy(&msg_body->bss_params.self_mac_addr, in wcn36xx_smd_config_bss_v1()
1287 msg_body->bss_params.bss_type = orig->bss_params.bss_type; in wcn36xx_smd_config_bss_v1()
1288 msg_body->bss_params.oper_mode = orig->bss_params.oper_mode; in wcn36xx_smd_config_bss_v1()
1289 msg_body->bss_params.nw_type = orig->bss_params.nw_type; in wcn36xx_smd_config_bss_v1()
1291 msg_body->bss_params.short_slot_time_supported = in wcn36xx_smd_config_bss_v1()
1293 msg_body->bss_params.lla_coexist = orig->bss_params.lla_coexist; in wcn36xx_smd_config_bss_v1()
1294 msg_body->bss_params.llb_coexist = orig->bss_params.llb_coexist; in wcn36xx_smd_config_bss_v1()
1295 msg_body->bss_params.llg_coexist = orig->bss_params.llg_coexist; in wcn36xx_smd_config_bss_v1()
1296 msg_body->bss_params.ht20_coexist = orig->bss_params.ht20_coexist; in wcn36xx_smd_config_bss_v1()
1297 msg_body->bss_params.lln_non_gf_coexist = in wcn36xx_smd_config_bss_v1()
1300 msg_body->bss_params.lsig_tx_op_protection_full_support = in wcn36xx_smd_config_bss_v1()
1302 msg_body->bss_params.rifs_mode = orig->bss_params.rifs_mode; in wcn36xx_smd_config_bss_v1()
1303 msg_body->bss_params.beacon_interval = orig->bss_params.beacon_interval; in wcn36xx_smd_config_bss_v1()
1304 msg_body->bss_params.dtim_period = orig->bss_params.dtim_period; in wcn36xx_smd_config_bss_v1()
1305 msg_body->bss_params.tx_channel_width_set = in wcn36xx_smd_config_bss_v1()
1307 msg_body->bss_params.oper_channel = orig->bss_params.oper_channel; in wcn36xx_smd_config_bss_v1()
1308 msg_body->bss_params.ext_channel = orig->bss_params.ext_channel; in wcn36xx_smd_config_bss_v1()
1310 msg_body->bss_params.reserved = orig->bss_params.reserved; in wcn36xx_smd_config_bss_v1()
1312 memcpy(&msg_body->bss_params.ssid, in wcn36xx_smd_config_bss_v1()
1316 msg_body->bss_params.action = orig->bss_params.action; in wcn36xx_smd_config_bss_v1()
1317 msg_body->bss_params.rateset = orig->bss_params.rateset; in wcn36xx_smd_config_bss_v1()
1318 msg_body->bss_params.ht = orig->bss_params.ht; in wcn36xx_smd_config_bss_v1()
1319 msg_body->bss_params.obss_prot_enabled = in wcn36xx_smd_config_bss_v1()
1321 msg_body->bss_params.rmf = orig->bss_params.rmf; in wcn36xx_smd_config_bss_v1()
1322 msg_body->bss_params.ht_oper_mode = orig->bss_params.ht_oper_mode; in wcn36xx_smd_config_bss_v1()
1323 msg_body->bss_params.dual_cts_protection = in wcn36xx_smd_config_bss_v1()
1326 msg_body->bss_params.max_probe_resp_retry_limit = in wcn36xx_smd_config_bss_v1()
1328 msg_body->bss_params.hidden_ssid = orig->bss_params.hidden_ssid; in wcn36xx_smd_config_bss_v1()
1329 msg_body->bss_params.proxy_probe_resp = in wcn36xx_smd_config_bss_v1()
1331 msg_body->bss_params.edca_params_valid = in wcn36xx_smd_config_bss_v1()
1334 memcpy(&msg_body->bss_params.acbe, in wcn36xx_smd_config_bss_v1()
1337 memcpy(&msg_body->bss_params.acbk, in wcn36xx_smd_config_bss_v1()
1340 memcpy(&msg_body->bss_params.acvi, in wcn36xx_smd_config_bss_v1()
1343 memcpy(&msg_body->bss_params.acvo, in wcn36xx_smd_config_bss_v1()
1347 msg_body->bss_params.ext_set_sta_key_param_valid = in wcn36xx_smd_config_bss_v1()
1350 memcpy(&msg_body->bss_params.ext_set_sta_key_param, in wcn36xx_smd_config_bss_v1()
1354 msg_body->bss_params.wcn36xx_hal_persona = in wcn36xx_smd_config_bss_v1()
1356 msg_body->bss_params.spectrum_mgt_enable = in wcn36xx_smd_config_bss_v1()
1358 msg_body->bss_params.tx_mgmt_power = orig->bss_params.tx_mgmt_power; in wcn36xx_smd_config_bss_v1()
1359 msg_body->bss_params.max_tx_power = orig->bss_params.max_tx_power; in wcn36xx_smd_config_bss_v1()
1362 &msg_body->bss_params.sta); in wcn36xx_smd_config_bss_v1()
1364 PREPARE_HAL_BUF(wcn->hal_buf, (*msg_body)); in wcn36xx_smd_config_bss_v1()
1376 ret = wcn36xx_smd_send_and_wait(wcn, msg_body->header.len); in wcn36xx_smd_config_bss_v1()
1377 kfree(msg_body); in wcn36xx_smd_config_bss_v1()
1567 struct wcn36xx_hal_delete_bss_req_msg msg_body; in wcn36xx_smd_delete_bss() local
1576 INIT_HAL_MSG(msg_body, WCN36XX_HAL_DELETE_BSS_REQ); in wcn36xx_smd_delete_bss()
1578 msg_body.bss_index = vif_priv->bss_index; in wcn36xx_smd_delete_bss()
1580 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_delete_bss()
1582 wcn36xx_dbg(WCN36XX_DBG_HAL, "hal delete bss %d\n", msg_body.bss_index); in wcn36xx_smd_delete_bss()
1584 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_delete_bss()
1605 struct wcn36xx_hal_send_beacon_req_msg msg_body; in wcn36xx_smd_send_beacon() local
1609 INIT_HAL_MSG(msg_body, WCN36XX_HAL_SEND_BEACON_REQ); in wcn36xx_smd_send_beacon()
1618 msg_body.beacon_length = skb_beacon->len + pad; in wcn36xx_smd_send_beacon()
1620 msg_body.beacon_length6 = msg_body.beacon_length + 6; in wcn36xx_smd_send_beacon()
1622 if (msg_body.beacon_length > BEACON_TEMPLATE_SIZE) { in wcn36xx_smd_send_beacon()
1624 msg_body.beacon_length); in wcn36xx_smd_send_beacon()
1628 memcpy(msg_body.beacon, skb_beacon->data, skb_beacon->len); in wcn36xx_smd_send_beacon()
1629 memcpy(msg_body.bssid, vif->addr, ETH_ALEN); in wcn36xx_smd_send_beacon()
1640 memmove(&msg_body.beacon[tim_off + 5 + pvm_len + pad], in wcn36xx_smd_send_beacon()
1641 &msg_body.beacon[tim_off + 5 + pvm_len], in wcn36xx_smd_send_beacon()
1643 memset(&msg_body.beacon[tim_off + 5 + pvm_len], 0, pad); in wcn36xx_smd_send_beacon()
1644 msg_body.beacon[tim_off + 1] += pad; in wcn36xx_smd_send_beacon()
1650 msg_body.tim_ie_offset = 256; in wcn36xx_smd_send_beacon()
1652 msg_body.tim_ie_offset = tim_off+4; in wcn36xx_smd_send_beacon()
1653 msg_body.p2p_ie_offset = p2p_off; in wcn36xx_smd_send_beacon()
1654 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_send_beacon()
1658 msg_body.beacon_length); in wcn36xx_smd_send_beacon()
1660 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_send_beacon()
1726 struct wcn36xx_hal_set_sta_key_req_msg msg_body; in wcn36xx_smd_set_stakey() local
1730 INIT_HAL_MSG(msg_body, WCN36XX_HAL_SET_STAKEY_REQ); in wcn36xx_smd_set_stakey()
1732 msg_body.set_sta_key_params.sta_index = sta_index; in wcn36xx_smd_set_stakey()
1733 msg_body.set_sta_key_params.enc_type = enc_type; in wcn36xx_smd_set_stakey()
1738 msg_body.set_sta_key_params.def_wep_idx = keyidx; in wcn36xx_smd_set_stakey()
1739 msg_body.set_sta_key_params.wep_type = 0; in wcn36xx_smd_set_stakey()
1741 msg_body.set_sta_key_params.key[0].id = keyidx; in wcn36xx_smd_set_stakey()
1742 msg_body.set_sta_key_params.key[0].unicast = 1; in wcn36xx_smd_set_stakey()
1743 msg_body.set_sta_key_params.key[0].direction = WCN36XX_HAL_TX_RX; in wcn36xx_smd_set_stakey()
1744 msg_body.set_sta_key_params.key[0].pae_role = 0; in wcn36xx_smd_set_stakey()
1745 msg_body.set_sta_key_params.key[0].length = keylen; in wcn36xx_smd_set_stakey()
1746 memcpy(msg_body.set_sta_key_params.key[0].key, key, keylen); in wcn36xx_smd_set_stakey()
1749 msg_body.set_sta_key_params.single_tid_rc = 1; in wcn36xx_smd_set_stakey()
1751 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_set_stakey()
1753 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_set_stakey()
1775 struct wcn36xx_hal_set_bss_key_req_msg msg_body; in wcn36xx_smd_set_bsskey() local
1779 INIT_HAL_MSG(msg_body, WCN36XX_HAL_SET_BSSKEY_REQ); in wcn36xx_smd_set_bsskey()
1780 msg_body.bss_idx = bssidx; in wcn36xx_smd_set_bsskey()
1781 msg_body.enc_type = enc_type; in wcn36xx_smd_set_bsskey()
1782 msg_body.num_keys = 1; in wcn36xx_smd_set_bsskey()
1783 msg_body.keys[0].id = keyidx; in wcn36xx_smd_set_bsskey()
1784 msg_body.keys[0].unicast = 0; in wcn36xx_smd_set_bsskey()
1785 msg_body.keys[0].direction = WCN36XX_HAL_RX_ONLY; in wcn36xx_smd_set_bsskey()
1786 msg_body.keys[0].pae_role = 0; in wcn36xx_smd_set_bsskey()
1787 msg_body.keys[0].length = keylen; in wcn36xx_smd_set_bsskey()
1788 memcpy(msg_body.keys[0].key, key, keylen); in wcn36xx_smd_set_bsskey()
1790 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_set_bsskey()
1792 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_set_bsskey()
1812 struct wcn36xx_hal_remove_sta_key_req_msg msg_body; in wcn36xx_smd_remove_stakey() local
1816 INIT_HAL_MSG(msg_body, WCN36XX_HAL_RMV_STAKEY_REQ); in wcn36xx_smd_remove_stakey()
1818 msg_body.sta_idx = sta_index; in wcn36xx_smd_remove_stakey()
1819 msg_body.enc_type = enc_type; in wcn36xx_smd_remove_stakey()
1820 msg_body.key_id = keyidx; in wcn36xx_smd_remove_stakey()
1822 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_remove_stakey()
1824 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_remove_stakey()
1844 struct wcn36xx_hal_remove_bss_key_req_msg msg_body; in wcn36xx_smd_remove_bsskey() local
1848 INIT_HAL_MSG(msg_body, WCN36XX_HAL_RMV_BSSKEY_REQ); in wcn36xx_smd_remove_bsskey()
1849 msg_body.bss_idx = bssidx; in wcn36xx_smd_remove_bsskey()
1850 msg_body.enc_type = enc_type; in wcn36xx_smd_remove_bsskey()
1851 msg_body.key_id = keyidx; in wcn36xx_smd_remove_bsskey()
1853 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_remove_bsskey()
1855 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_remove_bsskey()
1872 struct wcn36xx_hal_enter_bmps_req_msg msg_body; in wcn36xx_smd_enter_bmps() local
1877 INIT_HAL_MSG(msg_body, WCN36XX_HAL_ENTER_BMPS_REQ); in wcn36xx_smd_enter_bmps()
1879 msg_body.bss_index = vif_priv->bss_index; in wcn36xx_smd_enter_bmps()
1880 msg_body.tbtt = vif->bss_conf.sync_tsf; in wcn36xx_smd_enter_bmps()
1881 msg_body.dtim_period = vif_priv->dtim_period; in wcn36xx_smd_enter_bmps()
1883 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_enter_bmps()
1885 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_enter_bmps()
1902 struct wcn36xx_hal_exit_bmps_req_msg msg_body; in wcn36xx_smd_exit_bmps() local
1907 INIT_HAL_MSG(msg_body, WCN36XX_HAL_EXIT_BMPS_REQ); in wcn36xx_smd_exit_bmps()
1909 msg_body.bss_index = vif_priv->bss_index; in wcn36xx_smd_exit_bmps()
1911 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_exit_bmps()
1913 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_exit_bmps()
1929 struct wcn36xx_hal_set_power_params_req_msg msg_body; in wcn36xx_smd_set_power_params() local
1933 INIT_HAL_MSG(msg_body, WCN36XX_HAL_SET_POWER_PARAMS_REQ); in wcn36xx_smd_set_power_params()
1939 msg_body.ignore_dtim = 1; in wcn36xx_smd_set_power_params()
1940 msg_body.dtim_period = 2; in wcn36xx_smd_set_power_params()
1942 msg_body.listen_interval = WCN36XX_LISTEN_INTERVAL(wcn); in wcn36xx_smd_set_power_params()
1944 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_set_power_params()
1946 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_set_power_params()
1963 struct wcn36xx_hal_keep_alive_req_msg msg_body; in wcn36xx_smd_keep_alive_req() local
1968 INIT_HAL_MSG(msg_body, WCN36XX_HAL_KEEP_ALIVE_REQ); in wcn36xx_smd_keep_alive_req()
1971 msg_body.bss_index = vif_priv->bss_index; in wcn36xx_smd_keep_alive_req()
1972 msg_body.packet_type = WCN36XX_HAL_KEEP_ALIVE_NULL_PKT; in wcn36xx_smd_keep_alive_req()
1973 msg_body.time_period = WCN36XX_KEEP_ALIVE_TIME_PERIOD; in wcn36xx_smd_keep_alive_req()
1982 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_keep_alive_req()
1984 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_keep_alive_req()
2002 struct wcn36xx_hal_dump_cmd_req_msg msg_body; in wcn36xx_smd_dump_cmd_req() local
2006 INIT_HAL_MSG(msg_body, WCN36XX_HAL_DUMP_COMMAND_REQ); in wcn36xx_smd_dump_cmd_req()
2008 msg_body.arg1 = arg1; in wcn36xx_smd_dump_cmd_req()
2009 msg_body.arg2 = arg2; in wcn36xx_smd_dump_cmd_req()
2010 msg_body.arg3 = arg3; in wcn36xx_smd_dump_cmd_req()
2011 msg_body.arg4 = arg4; in wcn36xx_smd_dump_cmd_req()
2012 msg_body.arg5 = arg5; in wcn36xx_smd_dump_cmd_req()
2014 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_dump_cmd_req()
2016 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_dump_cmd_req()
2076 struct wcn36xx_hal_feat_caps_msg msg_body, *rsp; in wcn36xx_smd_feature_caps_exchange() local
2080 INIT_HAL_MSG(msg_body, WCN36XX_HAL_FEATURE_CAPS_EXCHANGE_REQ); in wcn36xx_smd_feature_caps_exchange()
2082 set_feat_caps(msg_body.feat_caps, STA_POWERSAVE); in wcn36xx_smd_feature_caps_exchange()
2084 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_feature_caps_exchange()
2086 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_feature_caps_exchange()
2112 struct wcn36xx_hal_add_ba_session_req_msg msg_body; in wcn36xx_smd_add_ba_session() local
2116 INIT_HAL_MSG(msg_body, WCN36XX_HAL_ADD_BA_SESSION_REQ); in wcn36xx_smd_add_ba_session()
2118 msg_body.sta_index = sta_index; in wcn36xx_smd_add_ba_session()
2119 memcpy(&msg_body.mac_addr, sta->addr, ETH_ALEN); in wcn36xx_smd_add_ba_session()
2120 msg_body.dialog_token = 0x10; in wcn36xx_smd_add_ba_session()
2121 msg_body.tid = tid; in wcn36xx_smd_add_ba_session()
2124 msg_body.policy = 1; in wcn36xx_smd_add_ba_session()
2125 msg_body.buffer_size = WCN36XX_AGGR_BUFFER_SIZE; in wcn36xx_smd_add_ba_session()
2126 msg_body.timeout = 0; in wcn36xx_smd_add_ba_session()
2128 msg_body.ssn = *ssn; in wcn36xx_smd_add_ba_session()
2129 msg_body.direction = direction; in wcn36xx_smd_add_ba_session()
2131 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_add_ba_session()
2133 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_add_ba_session()
2150 struct wcn36xx_hal_add_ba_req_msg msg_body; in wcn36xx_smd_add_ba() local
2154 INIT_HAL_MSG(msg_body, WCN36XX_HAL_ADD_BA_REQ); in wcn36xx_smd_add_ba()
2156 msg_body.session_id = 0; in wcn36xx_smd_add_ba()
2157 msg_body.win_size = WCN36XX_AGGR_BUFFER_SIZE; in wcn36xx_smd_add_ba()
2159 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_add_ba()
2161 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_add_ba()
2178 struct wcn36xx_hal_del_ba_req_msg msg_body; in wcn36xx_smd_del_ba() local
2182 INIT_HAL_MSG(msg_body, WCN36XX_HAL_DEL_BA_REQ); in wcn36xx_smd_del_ba()
2184 msg_body.sta_index = sta_index; in wcn36xx_smd_del_ba()
2185 msg_body.tid = tid; in wcn36xx_smd_del_ba()
2186 msg_body.direction = 0; in wcn36xx_smd_del_ba()
2187 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_del_ba()
2189 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_del_ba()
2217 struct wcn36xx_hal_trigger_ba_req_msg msg_body; in wcn36xx_smd_trigger_ba() local
2222 INIT_HAL_MSG(msg_body, WCN36XX_HAL_TRIGGER_BA_REQ); in wcn36xx_smd_trigger_ba()
2224 msg_body.session_id = 0; in wcn36xx_smd_trigger_ba()
2225 msg_body.candidate_cnt = 1; in wcn36xx_smd_trigger_ba()
2226 msg_body.header.len += sizeof(*candidate); in wcn36xx_smd_trigger_ba()
2227 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_trigger_ba()
2230 (wcn->hal_buf + sizeof(msg_body)); in wcn36xx_smd_trigger_ba()
2234 ret = wcn36xx_smd_send_and_wait(wcn, msg_body.header.len); in wcn36xx_smd_trigger_ba()
2396 struct wcn36xx_hal_update_cfg_req_msg msg_body, *body; in wcn36xx_smd_update_cfg() local
2401 INIT_HAL_MSG(msg_body, WCN36XX_HAL_UPDATE_CFG_REQ); in wcn36xx_smd_update_cfg()
2403 PREPARE_HAL_BUF(wcn->hal_buf, msg_body); in wcn36xx_smd_update_cfg()
2406 len = msg_body.header.len; in wcn36xx_smd_update_cfg()
2432 struct wcn36xx_hal_rcv_flt_pkt_set_mc_list_req_msg *msg_body = NULL; in wcn36xx_smd_set_mc_list() local
2437 msg_body = (struct wcn36xx_hal_rcv_flt_pkt_set_mc_list_req_msg *) in wcn36xx_smd_set_mc_list()
2439 init_hal_msg(&msg_body->header, WCN36XX_HAL_8023_MULTICAST_LIST_REQ, in wcn36xx_smd_set_mc_list()
2440 sizeof(msg_body->mc_addr_list)); in wcn36xx_smd_set_mc_list()
2444 memcpy(&msg_body->mc_addr_list, fp, in wcn36xx_smd_set_mc_list()
2445 sizeof(msg_body->mc_addr_list)); in wcn36xx_smd_set_mc_list()
2447 msg_body->mc_addr_list.mc_addr_count = 0; in wcn36xx_smd_set_mc_list()
2449 msg_body->mc_addr_list.bss_index = vif_priv->bss_index; in wcn36xx_smd_set_mc_list()
2451 ret = wcn36xx_smd_send_and_wait(wcn, msg_body->header.len); in wcn36xx_smd_set_mc_list()