Lines Matching defs:arg
1699 const struct wmi_channel_arg *arg)
1706 if (arg->passive)
1708 if (arg->allow_ibss)
1710 if (arg->allow_ht)
1712 if (arg->allow_vht)
1714 if (arg->ht40plus)
1716 if (arg->chan_radar)
1720 ch->mhz = __cpu_to_le32(arg->freq);
1721 ch->band_center_freq1 = __cpu_to_le32(arg->band_center_freq1);
1722 if (arg->mode == MODE_11AC_VHT80_80) {
1723 ch->band_center_freq2 = __cpu_to_le32(arg->band_center_freq2);
1725 arg->band_center_freq2 - 10);
1728 if (arg->mode == MODE_11AC_VHT160) {
1732 if (arg->freq > arg->band_center_freq1) {
1733 band_center_freq1 = arg->band_center_freq1 + 40;
1734 band_center_freq2 = arg->band_center_freq1 - 40;
1736 band_center_freq1 = arg->band_center_freq1 - 40;
1737 band_center_freq2 = arg->band_center_freq1 + 40;
1746 ch->band_center_freq2 = __cpu_to_le32(arg->band_center_freq1);
1752 ch->min_power = arg->min_power;
1753 ch->max_power = arg->max_power;
1754 ch->reg_power = arg->max_reg_power;
1755 ch->antenna_max = arg->max_antenna_gain;
1756 ch->max_tx_power = arg->max_power;
1759 ch->mode = arg->mode;
2170 struct wmi_scan_ev_arg *arg)
2178 arg->event_type = ev->event_type;
2179 arg->reason = ev->reason;
2180 arg->channel_freq = ev->channel_freq;
2181 arg->scan_req_id = ev->scan_req_id;
2182 arg->scan_id = ev->scan_id;
2183 arg->vdev_id = ev->vdev_id;
2190 struct wmi_scan_ev_arg arg = {};
2199 ret = ath10k_wmi_pull_scan(ar, skb, &arg);
2205 event_type = __le32_to_cpu(arg.event_type);
2206 reason = __le32_to_cpu(arg.reason);
2207 freq = __le32_to_cpu(arg.channel_freq);
2208 req_id = __le32_to_cpu(arg.scan_req_id);
2209 scan_id = __le32_to_cpu(arg.scan_id);
2210 vdev_id = __le32_to_cpu(arg.vdev_id);
2284 struct wmi_mgmt_rx_ev_arg *arg)
2309 arg->channel = ev_hdr->channel;
2310 arg->buf_len = ev_hdr->buf_len;
2311 arg->status = ev_hdr->status;
2312 arg->snr = ev_hdr->snr;
2313 arg->phy_mode = ev_hdr->phy_mode;
2314 arg->rate = ev_hdr->rate;
2316 msdu_len = __le32_to_cpu(arg->buf_len);
2320 if (le32_to_cpu(arg->status) & WMI_RX_STATUS_EXT_INFO) {
2321 len = ALIGN(le32_to_cpu(arg->buf_len), 4);
2323 memcpy(&arg->ext_info, ext_info,
2336 struct wmi_mgmt_rx_ev_arg *arg)
2353 arg->channel = ev_hdr->channel;
2354 arg->buf_len = ev_hdr->buf_len;
2355 arg->status = ev_hdr->status;
2356 arg->snr = ev_hdr->snr;
2357 arg->phy_mode = ev_hdr->phy_mode;
2358 arg->rate = ev_hdr->rate;
2360 msdu_len = __le32_to_cpu(arg->buf_len);
2364 if (le32_to_cpu(arg->status) & WMI_RX_STATUS_EXT_INFO) {
2365 len = ALIGN(le32_to_cpu(arg->buf_len), 4);
2367 memcpy(&arg->ext_info, ext_info,
2445 struct wmi_tlv_mgmt_tx_compl_ev_arg arg;
2449 ret = ath10k_wmi_pull_mgmt_tx_compl(ar, skb, &arg);
2456 param.desc_id = __le32_to_cpu(arg.desc_id);
2457 param.status = __le32_to_cpu(arg.status);
2460 param.ack_rssi = __le32_to_cpu(arg.ack_rssi);
2471 struct wmi_tlv_mgmt_tx_bundle_compl_ev_arg arg;
2476 ret = ath10k_wmi_pull_mgmt_tx_bundle_compl(ar, skb, &arg);
2482 num_reports = __le32_to_cpu(arg.num_reports);
2486 param.desc_id = __le32_to_cpu(arg.desc_ids[i]);
2487 param.status = __le32_to_cpu(arg.desc_ids[i]);
2490 param.ack_rssi = __le32_to_cpu(arg.ack_rssi[i]);
2501 struct wmi_mgmt_rx_ev_arg arg = {};
2513 ret = ath10k_wmi_pull_mgmt_rx(ar, skb, &arg);
2520 channel = __le32_to_cpu(arg.channel);
2521 rx_status = __le32_to_cpu(arg.status);
2522 snr = __le32_to_cpu(arg.snr);
2523 phy_mode = __le32_to_cpu(arg.phy_mode);
2524 rate = __le32_to_cpu(arg.rate);
2543 __le64_to_cpu(arg.ext_info.rx_mac_timestamp);
2571 BUILD_BUG_ON(ARRAY_SIZE(status->chain_signal) != ARRAY_SIZE(arg.rssi));
2575 rssi = __le32_to_cpu(arg.rssi[i]);
2576 ath10k_dbg(ar, ATH10K_DBG_MGMT, "mgmt rssi[%d]:%d\n", i, arg.rssi[i]);
2652 struct wmi_ch_info_ev_arg *arg)
2660 arg->err_code = ev->err_code;
2661 arg->freq = ev->freq;
2662 arg->cmd_flags = ev->cmd_flags;
2663 arg->noise_floor = ev->noise_floor;
2664 arg->rx_clear_count = ev->rx_clear_count;
2665 arg->cycle_count = ev->cycle_count;
2672 struct wmi_ch_info_ev_arg *arg)
2680 arg->err_code = ev->err_code;
2681 arg->freq = ev->freq;
2682 arg->cmd_flags = ev->cmd_flags;
2683 arg->noise_floor = ev->noise_floor;
2684 arg->rx_clear_count = ev->rx_clear_count;
2685 arg->cycle_count = ev->cycle_count;
2686 arg->chan_tx_pwr_range = ev->chan_tx_pwr_range;
2687 arg->chan_tx_pwr_tp = ev->chan_tx_pwr_tp;
2688 arg->rx_frame_count = ev->rx_frame_count;
2774 struct wmi_ch_info_ev_arg arg = {};
2777 ret = ath10k_wmi_pull_ch_info(ar, skb, &arg);
2783 ch_info_param.err_code = __le32_to_cpu(arg.err_code);
2784 ch_info_param.freq = __le32_to_cpu(arg.freq);
2785 ch_info_param.cmd_flags = __le32_to_cpu(arg.cmd_flags);
2786 ch_info_param.noise_floor = __le32_to_cpu(arg.noise_floor);
2787 ch_info_param.rx_clear_count = __le32_to_cpu(arg.rx_clear_count);
2788 ch_info_param.cycle_count = __le32_to_cpu(arg.cycle_count);
2789 ch_info_param.mac_clk_mhz = __le32_to_cpu(arg.mac_clk_mhz);
2821 struct wmi_echo_ev_arg arg = {};
2824 ret = ath10k_wmi_pull_echo_ev(ar, skb, &arg);
2832 le32_to_cpu(arg.value));
2834 if (le32_to_cpu(arg.value) == ATH10K_WMI_BARRIER_ECHO_ID)
3422 struct wmi_vdev_start_ev_arg *arg)
3430 arg->vdev_id = ev->vdev_id;
3431 arg->req_id = ev->req_id;
3432 arg->resp_type = ev->resp_type;
3433 arg->status = ev->status;
3440 struct wmi_vdev_start_ev_arg arg = {};
3448 ret = ath10k_wmi_pull_vdev_start(ar, skb, &arg);
3455 status = __le32_to_cpu(arg.status);
3478 struct wmi_peer_kick_ev_arg *arg)
3486 arg->mac_addr = ev->peer_macaddr.addr;
3493 struct wmi_peer_kick_ev_arg arg = {};
3497 ret = ath10k_wmi_pull_peer_kick(ar, skb, &arg);
3505 arg.mac_addr);
3509 sta = ieee80211_find_sta_by_ifaddr(ar->hw, arg.mac_addr, NULL);
3512 arg.mac_addr);
3663 struct wmi_swba_ev_arg *arg)
3673 arg->vdev_map = ev->vdev_map;
3682 if (WARN_ON_ONCE(i == ARRAY_SIZE(arg->tim_info)))
3691 arg->tim_info[i].tim_len = ev->bcn_info[i].tim_info.tim_len;
3692 arg->tim_info[i].tim_mcast = ev->bcn_info[i].tim_info.tim_mcast;
3693 arg->tim_info[i].tim_bitmap =
3695 arg->tim_info[i].tim_changed =
3697 arg->tim_info[i].tim_num_ps_pending =
3700 arg->noa_info[i] = &ev->bcn_info[i].p2p_noa_info;
3709 struct wmi_swba_ev_arg *arg)
3719 arg->vdev_map = ev->vdev_map;
3728 if (WARN_ON_ONCE(i == ARRAY_SIZE(arg->tim_info)))
3737 arg->tim_info[i].tim_len = ev->bcn_info[i].tim_info.tim_len;
3738 arg->tim_info[i].tim_mcast = ev->bcn_info[i].tim_info.tim_mcast;
3739 arg->tim_info[i].tim_bitmap =
3741 arg->tim_info[i].tim_changed =
3743 arg->tim_info[i].tim_num_ps_pending =
3753 struct wmi_swba_ev_arg *arg)
3763 arg->vdev_map = ev->vdev_map;
3772 if (WARN_ON_ONCE(i == ARRAY_SIZE(arg->tim_info)))
3785 arg->tim_info[i].tim_len = __cpu_to_le32(tim_len);
3787 arg->tim_info[i].tim_len = 0;
3790 arg->tim_info[i].tim_mcast = ev->bcn_info[i].tim_info.tim_mcast;
3791 arg->tim_info[i].tim_bitmap =
3793 arg->tim_info[i].tim_changed =
3795 arg->tim_info[i].tim_num_ps_pending =
3815 struct wmi_swba_ev_arg arg = {};
3825 ret = ath10k_wmi_pull_swba(ar, skb, &arg);
3831 map = __le32_to_cpu(arg.vdev_map);
3847 tim_info = &arg.tim_info[i];
3848 noa_info = arg.noa_info[i];
4300 struct wmi_phyerr_hdr_arg *arg)
4307 arg->num_phyerrs = __le32_to_cpu(ev->num_phyerrs);
4308 arg->tsf_l32 = __le32_to_cpu(ev->tsf_l32);
4309 arg->tsf_u32 = __le32_to_cpu(ev->tsf_u32);
4310 arg->buf_len = skb->len - sizeof(*ev);
4311 arg->phyerrs = ev->phyerrs;
4318 struct wmi_phyerr_hdr_arg *arg)
4326 arg->num_phyerrs = 1;
4328 arg->tsf_l32 = __le32_to_cpu(ev->tsf_l32);
4329 arg->tsf_u32 = __le32_to_cpu(ev->tsf_u32);
4330 arg->buf_len = skb->len;
4331 arg->phyerrs = skb->data;
4339 struct wmi_phyerr_ev_arg *arg)
4350 arg->tsf_timestamp = __le32_to_cpu(phyerr->tsf_timestamp);
4351 arg->freq1 = __le16_to_cpu(phyerr->freq1);
4352 arg->freq2 = __le16_to_cpu(phyerr->freq2);
4353 arg->rssi_combined = phyerr->rssi_combined;
4354 arg->chan_width_mhz = phyerr->chan_width_mhz;
4355 arg->buf_len = __le32_to_cpu(phyerr->buf_len);
4356 arg->buf = phyerr->buf;
4357 arg->hdr_len = sizeof(*phyerr);
4360 arg->nf_chains[i] = __le16_to_cpu(phyerr->nf_chains[i]);
4364 arg->phy_err_code = PHY_ERROR_SPECTRAL_SCAN;
4367 arg->phy_err_code = PHY_ERROR_FALSE_RADAR_EXT;
4370 arg->phy_err_code = PHY_ERROR_RADAR;
4373 arg->phy_err_code = PHY_ERROR_UNKNOWN;
4383 struct wmi_phyerr_ev_arg *arg)
4395 arg->tsf_timestamp = __le32_to_cpu(phyerr->tsf_timestamp);
4396 arg->freq1 = __le16_to_cpu(phyerr->freq1);
4397 arg->freq2 = __le16_to_cpu(phyerr->freq2);
4398 arg->rssi_combined = phyerr->rssi_combined;
4399 arg->chan_width_mhz = phyerr->chan_width_mhz;
4400 arg->buf_len = __le32_to_cpu(phyerr->buf_len);
4401 arg->buf = phyerr->buf;
4402 arg->hdr_len = sizeof(*phyerr);
4405 arg->nf_chains[i] = __le16_to_cpu(phyerr->nf_chains[i]);
4410 arg->phy_err_code = PHY_ERROR_SPECTRAL_SCAN;
4412 arg->phy_err_code = PHY_ERROR_RADAR;
4414 arg->phy_err_code = PHY_ERROR_UNKNOWN;
4490 struct wmi_dfs_status_ev_arg *arg)
4497 arg->status = ev->status;
4531 struct wmi_roam_ev_arg arg = {};
4537 ret = ath10k_wmi_pull_roam_ev(ar, skb, &arg);
4543 vdev_id = __le32_to_cpu(arg.vdev_id);
4544 reason = __le32_to_cpu(arg.reason);
4545 rssi = __le32_to_cpu(arg.rssi);
5419 struct wmi_svc_rdy_ev_arg *arg)
5429 arg->min_tx_power = ev->hw_min_tx_power;
5430 arg->max_tx_power = ev->hw_max_tx_power;
5431 arg->ht_cap = ev->ht_cap_info;
5432 arg->vht_cap = ev->vht_cap_info;
5433 arg->vht_supp_mcs = ev->vht_supp_mcs;
5434 arg->sw_ver0 = ev->sw_version;
5435 arg->sw_ver1 = ev->sw_version_1;
5436 arg->phy_capab = ev->phy_capability;
5437 arg->num_rf_chains = ev->num_rf_chains;
5438 arg->eeprom_rd = ev->hal_reg_capabilities.eeprom_rd;
5439 arg->low_2ghz_chan = ev->hal_reg_capabilities.low_2ghz_chan;
5440 arg->high_2ghz_chan = ev->hal_reg_capabilities.high_2ghz_chan;
5441 arg->low_5ghz_chan = ev->hal_reg_capabilities.low_5ghz_chan;
5442 arg->high_5ghz_chan = ev->hal_reg_capabilities.high_5ghz_chan;
5443 arg->num_mem_reqs = ev->num_mem_reqs;
5444 arg->service_map = ev->wmi_service_bitmap;
5445 arg->service_map_len = sizeof(ev->wmi_service_bitmap);
5447 n = min_t(size_t, __le32_to_cpu(arg->num_mem_reqs),
5448 ARRAY_SIZE(arg->mem_reqs));
5450 arg->mem_reqs[i] = &ev->mem_reqs[i];
5453 __le32_to_cpu(arg->num_mem_reqs) * sizeof(arg->mem_reqs[0]))
5461 struct wmi_svc_rdy_ev_arg *arg)
5471 arg->min_tx_power = ev->hw_min_tx_power;
5472 arg->max_tx_power = ev->hw_max_tx_power;
5473 arg->ht_cap = ev->ht_cap_info;
5474 arg->vht_cap = ev->vht_cap_info;
5475 arg->vht_supp_mcs = ev->vht_supp_mcs;
5476 arg->sw_ver0 = ev->sw_version;
5477 arg->phy_capab = ev->phy_capability;
5478 arg->num_rf_chains = ev->num_rf_chains;
5479 arg->eeprom_rd = ev->hal_reg_capabilities.eeprom_rd;
5480 arg->low_2ghz_chan = ev->hal_reg_capabilities.low_2ghz_chan;
5481 arg->high_2ghz_chan = ev->hal_reg_capabilities.high_2ghz_chan;
5482 arg->low_5ghz_chan = ev->hal_reg_capabilities.low_5ghz_chan;
5483 arg->high_5ghz_chan = ev->hal_reg_capabilities.high_5ghz_chan;
5484 arg->num_mem_reqs = ev->num_mem_reqs;
5485 arg->service_map = ev->wmi_service_bitmap;
5486 arg->service_map_len = sizeof(ev->wmi_service_bitmap);
5494 n = min_t(size_t, __le32_to_cpu(arg->num_mem_reqs),
5495 ARRAY_SIZE(arg->mem_reqs));
5497 arg->mem_reqs[i] = &ev->mem_reqs[i];
5500 __le32_to_cpu(arg->num_mem_reqs) * sizeof(arg->mem_reqs[0]))
5510 struct wmi_svc_rdy_ev_arg arg = {};
5520 ret = ath10k_wmi_pull_svc_rdy(ar, skb, &arg);
5526 ath10k_wmi_map_svc(ar, arg.service_map, ar->wmi.svc_map,
5527 arg.service_map_len);
5529 ar->hw_min_tx_power = __le32_to_cpu(arg.min_tx_power);
5530 ar->hw_max_tx_power = __le32_to_cpu(arg.max_tx_power);
5531 ar->ht_cap_info = __le32_to_cpu(arg.ht_cap);
5532 ar->vht_cap_info = __le32_to_cpu(arg.vht_cap);
5533 ar->vht_supp_mcs = __le32_to_cpu(arg.vht_supp_mcs);
5535 (__le32_to_cpu(arg.sw_ver0) & 0xff000000) >> 24;
5536 ar->fw_version_minor = (__le32_to_cpu(arg.sw_ver0) & 0x00ffffff);
5538 (__le32_to_cpu(arg.sw_ver1) & 0xffff0000) >> 16;
5539 ar->fw_version_build = (__le32_to_cpu(arg.sw_ver1) & 0x0000ffff);
5540 ar->phy_capability = __le32_to_cpu(arg.phy_capab);
5541 ar->num_rf_chains = __le32_to_cpu(arg.num_rf_chains);
5542 ar->hw_eeprom_rd = __le32_to_cpu(arg.eeprom_rd);
5543 ar->low_2ghz_chan = __le32_to_cpu(arg.low_2ghz_chan);
5544 ar->high_2ghz_chan = __le32_to_cpu(arg.high_2ghz_chan);
5545 ar->low_5ghz_chan = __le32_to_cpu(arg.low_5ghz_chan);
5546 ar->high_5ghz_chan = __le32_to_cpu(arg.high_5ghz_chan);
5547 ar->sys_cap_info = __le32_to_cpu(arg.sys_cap_info);
5550 arg.service_map, arg.service_map_len);
5575 num_mem_reqs = __le32_to_cpu(arg.num_mem_reqs);
5601 allocated = ath10k_wmi_is_host_mem_allocated(ar, arg.mem_reqs,
5614 req_id = __le32_to_cpu(arg.mem_reqs[i]->req_id);
5615 num_units = __le32_to_cpu(arg.mem_reqs[i]->num_units);
5616 unit_size = __le32_to_cpu(arg.mem_reqs[i]->unit_size);
5617 num_unit_info = __le32_to_cpu(arg.mem_reqs[i]->num_unit_info);
5638 __le32_to_cpu(arg.mem_reqs[i]->num_units),
5652 __le32_to_cpu(arg.min_tx_power),
5653 __le32_to_cpu(arg.max_tx_power),
5654 __le32_to_cpu(arg.ht_cap),
5655 __le32_to_cpu(arg.vht_cap),
5656 __le32_to_cpu(arg.vht_supp_mcs),
5657 __le32_to_cpu(arg.sw_ver0),
5658 __le32_to_cpu(arg.sw_ver1),
5659 __le32_to_cpu(arg.fw_build),
5660 __le32_to_cpu(arg.phy_capab),
5661 __le32_to_cpu(arg.num_rf_chains),
5662 __le32_to_cpu(arg.eeprom_rd),
5663 __le32_to_cpu(arg.low_2ghz_chan),
5664 __le32_to_cpu(arg.high_2ghz_chan),
5665 __le32_to_cpu(arg.low_5ghz_chan),
5666 __le32_to_cpu(arg.high_5ghz_chan),
5667 __le32_to_cpu(arg.num_mem_reqs));
5681 struct wmi_rdy_ev_arg *arg)
5689 arg->sw_version = ev->sw_version;
5690 arg->abi_version = ev->abi_version;
5691 arg->status = ev->status;
5692 arg->mac_addr = ev->mac_addr.addr;
5698 struct wmi_roam_ev_arg *arg)
5706 arg->vdev_id = ev->vdev_id;
5707 arg->reason = ev->reason;
5714 struct wmi_echo_ev_arg *arg)
5718 arg->value = ev->value;
5725 struct wmi_rdy_ev_arg arg = {};
5728 ret = ath10k_wmi_pull_rdy(ar, skb, &arg);
5736 __le32_to_cpu(arg.sw_version),
5737 __le32_to_cpu(arg.abi_version),
5738 arg.mac_addr,
5739 __le32_to_cpu(arg.status));
5742 ether_addr_copy(ar->mac_addr, arg.mac_addr);
5750 struct wmi_svc_avail_ev_arg arg = {};
5752 ret = ath10k_wmi_pull_svc_avail(ar, skb, &arg);
5759 * Initialization of "arg.service_map_ext_valid" to ZERO is necessary
5762 if (arg.service_map_ext_valid)
5763 ath10k_wmi_map_svc_ext(ar, arg.service_map_ext, ar->wmi.svc_map,
5764 __le32_to_cpu(arg.service_map_ext_len));
6857 int ath10k_wmi_start_scan_verify(const struct wmi_start_scan_arg *arg)
6859 if (arg->ie_len > WLAN_SCAN_PARAMS_MAX_IE_LEN)
6861 if (arg->n_channels > ARRAY_SIZE(arg->channels))
6863 if (arg->n_ssids > WLAN_SCAN_PARAMS_MAX_SSID)
6865 if (arg->n_bssids > WLAN_SCAN_PARAMS_MAX_BSSID)
6872 ath10k_wmi_start_scan_tlvs_len(const struct wmi_start_scan_arg *arg)
6876 if (arg->ie_len) {
6878 len += roundup(arg->ie_len, 4);
6881 if (arg->n_channels) {
6883 len += sizeof(__le32) * arg->n_channels;
6886 if (arg->n_ssids) {
6888 len += sizeof(struct wmi_ssid) * arg->n_ssids;
6891 if (arg->n_bssids) {
6893 len += sizeof(struct wmi_mac_addr) * arg->n_bssids;
6900 const struct wmi_start_scan_arg *arg)
6906 scan_id |= arg->scan_id;
6909 scan_req_id |= arg->scan_req_id;
6913 cmn->vdev_id = __cpu_to_le32(arg->vdev_id);
6914 cmn->scan_priority = __cpu_to_le32(arg->scan_priority);
6915 cmn->notify_scan_events = __cpu_to_le32(arg->notify_scan_events);
6916 cmn->dwell_time_active = __cpu_to_le32(arg->dwell_time_active);
6917 cmn->dwell_time_passive = __cpu_to_le32(arg->dwell_time_passive);
6918 cmn->min_rest_time = __cpu_to_le32(arg->min_rest_time);
6919 cmn->max_rest_time = __cpu_to_le32(arg->max_rest_time);
6920 cmn->repeat_probe_time = __cpu_to_le32(arg->repeat_probe_time);
6921 cmn->probe_spacing_time = __cpu_to_le32(arg->probe_spacing_time);
6922 cmn->idle_time = __cpu_to_le32(arg->idle_time);
6923 cmn->max_scan_time = __cpu_to_le32(arg->max_scan_time);
6924 cmn->probe_delay = __cpu_to_le32(arg->probe_delay);
6925 cmn->scan_ctrl_flags = __cpu_to_le32(arg->scan_ctrl_flags);
6930 const struct wmi_start_scan_arg *arg)
6939 if (arg->n_channels) {
6942 channels->num_chan = __cpu_to_le32(arg->n_channels);
6944 for (i = 0; i < arg->n_channels; i++)
6946 __cpu_to_le16(arg->channels[i]);
6949 ptr += sizeof(__le32) * arg->n_channels;
6952 if (arg->n_ssids) {
6955 ssids->num_ssids = __cpu_to_le32(arg->n_ssids);
6957 for (i = 0; i < arg->n_ssids; i++) {
6959 __cpu_to_le32(arg->ssids[i].len);
6961 arg->ssids[i].ssid,
6962 arg->ssids[i].len);
6966 ptr += sizeof(struct wmi_ssid) * arg->n_ssids;
6969 if (arg->n_bssids) {
6972 bssids->num_bssid = __cpu_to_le32(arg->n_bssids);
6974 for (i = 0; i < arg->n_bssids; i++)
6976 arg->bssids[i].bssid);
6979 ptr += sizeof(struct wmi_mac_addr) * arg->n_bssids;
6982 if (arg->ie_len) {
6985 ie->ie_len = __cpu_to_le32(arg->ie_len);
6986 memcpy(ie->ie_data, arg->ie, arg->ie_len);
6989 ptr += roundup(arg->ie_len, 4);
6995 const struct wmi_start_scan_arg *arg)
7002 ret = ath10k_wmi_start_scan_verify(arg);
7006 len = sizeof(*cmd) + ath10k_wmi_start_scan_tlvs_len(arg);
7013 ath10k_wmi_put_start_scan_common(&cmd->common, arg);
7014 ath10k_wmi_put_start_scan_tlvs(&cmd->tlvs, arg);
7024 const struct wmi_start_scan_arg *arg)
7031 ret = ath10k_wmi_start_scan_verify(arg);
7035 len = sizeof(*cmd) + ath10k_wmi_start_scan_tlvs_len(arg);
7042 ath10k_wmi_put_start_scan_common(&cmd->common, arg);
7043 ath10k_wmi_put_start_scan_tlvs(&cmd->tlvs, arg);
7050 struct wmi_start_scan_arg *arg)
7053 arg->scan_req_id = 1;
7054 arg->scan_priority = WMI_SCAN_PRIORITY_LOW;
7055 arg->dwell_time_active = 50;
7056 arg->dwell_time_passive = 150;
7057 arg->min_rest_time = 50;
7058 arg->max_rest_time = 500;
7059 arg->repeat_probe_time = 0;
7060 arg->probe_spacing_time = 0;
7061 arg->idle_time = 0;
7062 arg->max_scan_time = 20000;
7063 arg->probe_delay = 5;
7064 arg->notify_scan_events = WMI_SCAN_EVENT_STARTED
7070 arg->scan_ctrl_flags |= WMI_SCAN_CHAN_STAT_EVENT;
7071 arg->n_bssids = 1;
7072 arg->bssids[0].bssid = "\xFF\xFF\xFF\xFF\xFF\xFF";
7077 const struct wmi_stop_scan_arg *arg)
7084 if (arg->req_id > 0xFFF)
7086 if (arg->req_type == WMI_SCAN_STOP_ONE && arg->u.scan_id > 0xFFF)
7093 scan_id = arg->u.scan_id;
7096 req_id = arg->req_id;
7100 cmd->req_type = __cpu_to_le32(arg->req_type);
7101 cmd->vdev_id = __cpu_to_le32(arg->u.vdev_id);
7107 arg->req_id, arg->req_type, arg->u.scan_id);
7156 const struct wmi_vdev_start_request_arg *arg,
7164 if (WARN_ON(arg->hidden_ssid && !arg->ssid))
7166 if (WARN_ON(arg->ssid_len > sizeof(cmd->ssid.ssid)))
7178 if (arg->hidden_ssid)
7180 if (arg->pmf_enabled)
7184 cmd->vdev_id = __cpu_to_le32(arg->vdev_id);
7185 cmd->disable_hw_ack = __cpu_to_le32(arg->disable_hw_ack);
7186 cmd->beacon_interval = __cpu_to_le32(arg->bcn_intval);
7187 cmd->dtim_period = __cpu_to_le32(arg->dtim_period);
7189 cmd->bcn_tx_rate = __cpu_to_le32(arg->bcn_tx_rate);
7190 cmd->bcn_tx_power = __cpu_to_le32(arg->bcn_tx_power);
7192 if (arg->ssid) {
7193 cmd->ssid.ssid_len = __cpu_to_le32(arg->ssid_len);
7194 memcpy(cmd->ssid.ssid, arg->ssid, arg->ssid_len);
7197 ath10k_wmi_put_wmi_channel(ar, &cmd->chan, &arg->channel);
7201 cmdname, arg->vdev_id,
7202 flags, arg->channel.freq, arg->channel.mode,
7203 cmd->chan.flags, arg->channel.max_power);
7296 const struct wmi_vdev_install_key_arg *arg)
7301 if (arg->key_cipher == WMI_CIPHER_NONE && arg->key_data != NULL)
7303 if (arg->key_cipher != WMI_CIPHER_NONE && arg->key_data == NULL)
7306 skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd) + arg->key_len);
7311 cmd->vdev_id = __cpu_to_le32(arg->vdev_id);
7312 cmd->key_idx = __cpu_to_le32(arg->key_idx);
7313 cmd->key_flags = __cpu_to_le32(arg->key_flags);
7314 cmd->key_cipher = __cpu_to_le32(arg->key_cipher);
7315 cmd->key_len = __cpu_to_le32(arg->key_len);
7316 cmd->key_txmic_len = __cpu_to_le32(arg->key_txmic_len);
7317 cmd->key_rxmic_len = __cpu_to_le32(arg->key_rxmic_len);
7319 if (arg->macaddr)
7320 ether_addr_copy(cmd->peer_macaddr.addr, arg->macaddr);
7321 if (arg->key_data)
7322 memcpy(cmd->key_data, arg->key_data, arg->key_len);
7326 arg->key_idx, arg->key_cipher, arg->key_len);
7332 const struct wmi_vdev_spectral_conf_arg *arg)
7342 cmd->vdev_id = __cpu_to_le32(arg->vdev_id);
7343 cmd->scan_count = __cpu_to_le32(arg->scan_count);
7344 cmd->scan_period = __cpu_to_le32(arg->scan_period);
7345 cmd->scan_priority = __cpu_to_le32(arg->scan_priority);
7346 cmd->scan_fft_size = __cpu_to_le32(arg->scan_fft_size);
7347 cmd->scan_gc_ena = __cpu_to_le32(arg->scan_gc_ena);
7348 cmd->scan_restart_ena = __cpu_to_le32(arg->scan_restart_ena);
7349 cmd->scan_noise_floor_ref = __cpu_to_le32(arg->scan_noise_floor_ref);
7350 cmd->scan_init_delay = __cpu_to_le32(arg->scan_init_delay);
7351 cmd->scan_nb_tone_thr = __cpu_to_le32(arg->scan_nb_tone_thr);
7352 cmd->scan_str_bin_thr = __cpu_to_le32(arg->scan_str_bin_thr);
7353 cmd->scan_wb_rpt_mode = __cpu_to_le32(arg->scan_wb_rpt_mode);
7354 cmd->scan_rssi_rpt_mode = __cpu_to_le32(arg->scan_rssi_rpt_mode);
7355 cmd->scan_rssi_thr = __cpu_to_le32(arg->scan_rssi_thr);
7356 cmd->scan_pwr_format = __cpu_to_le32(arg->scan_pwr_format);
7357 cmd->scan_rpt_mode = __cpu_to_le32(arg->scan_rpt_mode);
7358 cmd->scan_bin_scale = __cpu_to_le32(arg->scan_bin_scale);
7359 cmd->scan_dbm_adj = __cpu_to_le32(arg->scan_dbm_adj);
7360 cmd->scan_chn_mask = __cpu_to_le32(arg->scan_chn_mask);
7547 const struct wmi_scan_chan_list_arg *arg)
7555 skb = ath10k_wmi_alloc_skb(ar, struct_size(cmd, chan_info, arg->n_channels));
7560 cmd->num_scan_chans = __cpu_to_le32(arg->n_channels);
7562 for (i = 0; i < arg->n_channels; i++) {
7563 ch = &arg->channels[i];
7574 const struct wmi_peer_assoc_complete_arg *arg)
7578 cmd->vdev_id = __cpu_to_le32(arg->vdev_id);
7579 cmd->peer_new_assoc = __cpu_to_le32(arg->peer_reassoc ? 0 : 1);
7580 cmd->peer_associd = __cpu_to_le32(arg->peer_aid);
7581 cmd->peer_flags = __cpu_to_le32(arg->peer_flags);
7582 cmd->peer_caps = __cpu_to_le32(arg->peer_caps);
7583 cmd->peer_listen_intval = __cpu_to_le32(arg->peer_listen_intval);
7584 cmd->peer_ht_caps = __cpu_to_le32(arg->peer_ht_caps);
7585 cmd->peer_max_mpdu = __cpu_to_le32(arg->peer_max_mpdu);
7586 cmd->peer_mpdu_density = __cpu_to_le32(arg->peer_mpdu_density);
7587 cmd->peer_rate_caps = __cpu_to_le32(arg->peer_rate_caps);
7588 cmd->peer_nss = __cpu_to_le32(arg->peer_num_spatial_streams);
7589 cmd->peer_vht_caps = __cpu_to_le32(arg->peer_vht_caps);
7590 cmd->peer_phymode = __cpu_to_le32(arg->peer_phymode);
7592 ether_addr_copy(cmd->peer_macaddr.addr, arg->addr);
7595 __cpu_to_le32(arg->peer_legacy_rates.num_rates);
7596 memcpy(cmd->peer_legacy_rates.rates, arg->peer_legacy_rates.rates,
7597 arg->peer_legacy_rates.num_rates);
7600 __cpu_to_le32(arg->peer_ht_rates.num_rates);
7601 memcpy(cmd->peer_ht_rates.rates, arg->peer_ht_rates.rates,
7602 arg->peer_ht_rates.num_rates);
7605 __cpu_to_le32(arg->peer_vht_rates.rx_max_rate);
7607 __cpu_to_le32(arg->peer_vht_rates.rx_mcs_set);
7609 __cpu_to_le32(arg->peer_vht_rates.tx_max_rate);
7611 __cpu_to_le32(arg->peer_vht_rates.tx_mcs_set);
7616 const struct wmi_peer_assoc_complete_arg *arg)
7620 ath10k_wmi_peer_assoc_fill(ar, buf, arg);
7626 const struct wmi_peer_assoc_complete_arg *arg)
7628 ath10k_wmi_peer_assoc_fill(ar, buf, arg);
7633 const struct wmi_peer_assoc_complete_arg *arg)
7646 ath10k_wmi_peer_assoc_fill(ar, buf, arg);
7652 const struct wmi_peer_assoc_complete_arg *arg)
7656 ath10k_wmi_peer_assoc_fill_10_2(ar, buf, arg);
7658 __cpu_to_le32(arg->peer_bw_rxnss_override);
7662 ath10k_wmi_peer_assoc_check_arg(const struct wmi_peer_assoc_complete_arg *arg)
7664 if (arg->peer_mpdu_density > 16)
7666 if (arg->peer_legacy_rates.num_rates > MAX_SUPPORTED_RATES)
7668 if (arg->peer_ht_rates.num_rates > MAX_SUPPORTED_RATES)
7676 const struct wmi_peer_assoc_complete_arg *arg)
7682 ret = ath10k_wmi_peer_assoc_check_arg(arg);
7690 ath10k_wmi_peer_assoc_fill_main(ar, skb->data, arg);
7694 arg->vdev_id, arg->addr,
7695 arg->peer_reassoc ? "reassociate" : "new");
7701 const struct wmi_peer_assoc_complete_arg *arg)
7707 ret = ath10k_wmi_peer_assoc_check_arg(arg);
7715 ath10k_wmi_peer_assoc_fill_10_1(ar, skb->data, arg);
7719 arg->vdev_id, arg->addr,
7720 arg->peer_reassoc ? "reassociate" : "new");
7726 const struct wmi_peer_assoc_complete_arg *arg)
7732 ret = ath10k_wmi_peer_assoc_check_arg(arg);
7740 ath10k_wmi_peer_assoc_fill_10_2(ar, skb->data, arg);
7744 arg->vdev_id, arg->addr,
7745 arg->peer_reassoc ? "reassociate" : "new");
7751 const struct wmi_peer_assoc_complete_arg *arg)
7757 ret = ath10k_wmi_peer_assoc_check_arg(arg);
7765 ath10k_wmi_peer_assoc_fill_10_4(ar, skb->data, arg);
7769 arg->vdev_id, arg->addr,
7770 arg->peer_reassoc ? "reassociate" : "new");
7844 const struct wmi_wmm_params_arg *arg)
7846 params->cwmin = __cpu_to_le32(arg->cwmin);
7847 params->cwmax = __cpu_to_le32(arg->cwmax);
7848 params->aifs = __cpu_to_le32(arg->aifs);
7849 params->txop = __cpu_to_le32(arg->txop);
7850 params->acm = __cpu_to_le32(arg->acm);
7851 params->no_ack = __cpu_to_le32(arg->no_ack);
7856 const struct wmi_wmm_params_all_arg *arg)
7866 ath10k_wmi_set_wmm_param(&cmd->ac_be, &arg->ac_be);
7867 ath10k_wmi_set_wmm_param(&cmd->ac_bk, &arg->ac_bk);
7868 ath10k_wmi_set_wmm_param(&cmd->ac_vi, &arg->ac_vi);
7869 ath10k_wmi_set_wmm_param(&cmd->ac_vo, &arg->ac_vo);
8921 const struct wmi_tdls_peer_update_cmd_arg *arg,
8945 cmd->vdev_id = __cpu_to_le32(arg->vdev_id);
8946 ether_addr_copy(cmd->peer_macaddr.addr, arg->addr);
8947 cmd->peer_state = __cpu_to_le32(arg->peer_state);
8975 arg->vdev_id, arg->peer_state, cap->peer_chan_len);
8981 const struct ath10k_radar_found_info *arg)
8991 cmd->pri_min = __cpu_to_le32(arg->pri_min);
8992 cmd->pri_max = __cpu_to_le32(arg->pri_max);
8993 cmd->width_min = __cpu_to_le32(arg->width_min);
8994 cmd->width_max = __cpu_to_le32(arg->width_max);
8995 cmd->sidx_min = __cpu_to_le32(arg->sidx_min);
8996 cmd->sidx_max = __cpu_to_le32(arg->sidx_max);
9000 arg->pri_min, arg->pri_max, arg->width_min,
9001 arg->width_max, arg->sidx_min, arg->sidx_max);
9007 const struct wmi_per_peer_per_tid_cfg_arg *arg)
9019 cmd->vdev_id = cpu_to_le32(arg->vdev_id);
9020 ether_addr_copy(cmd->peer_macaddr.addr, arg->peer_macaddr.addr);
9021 cmd->tid = cpu_to_le32(arg->tid);
9022 cmd->ack_policy = cpu_to_le32(arg->ack_policy);
9023 cmd->aggr_control = cpu_to_le32(arg->aggr_control);
9024 cmd->rate_control = cpu_to_le32(arg->rate_ctrl);
9025 cmd->retry_count = cpu_to_le32(arg->retry_count);
9026 cmd->rcode_flags = cpu_to_le32(arg->rcode_flags);
9027 cmd->ext_tid_cfg_bitmap = cpu_to_le32(arg->ext_tid_cfg_bitmap);
9028 cmd->rtscts_ctrl = cpu_to_le32(arg->rtscts_ctrl);
9032 arg->tid, arg->vdev_id, arg->ack_policy, arg->aggr_control,
9033 arg->rate_ctrl, arg->rcode_flags, arg->retry_count,
9034 arg->rtscts_ctrl, arg->ext_tid_cfg_bitmap, arg->peer_macaddr.addr);
9082 const struct wmi_bb_timing_cfg_arg *arg)
9092 cmd->bb_tx_timing = __cpu_to_le32(arg->bb_tx_timing);
9093 cmd->bb_xpa_timing = __cpu_to_le32(arg->bb_xpa_timing);
9097 arg->bb_tx_timing, arg->bb_xpa_timing);