Lines Matching refs:vif

85 	struct ieee80211_vif *vif;  member
98 struct ieee80211_vif *vif) in iwl_mvm_mac_tsf_id_iter() argument
101 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_tsf_id_iter()
105 if (vif == data->vif) in iwl_mvm_mac_tsf_id_iter()
124 switch (data->vif->type) { in iwl_mvm_mac_tsf_id_iter()
134 if (vif->type != NL80211_IFTYPE_AP || in iwl_mvm_mac_tsf_id_iter()
139 min_bi = min(data->vif->bss_conf.beacon_int, in iwl_mvm_mac_tsf_id_iter()
140 vif->bss_conf.beacon_int); in iwl_mvm_mac_tsf_id_iter()
145 if ((data->vif->bss_conf.beacon_int - in iwl_mvm_mac_tsf_id_iter()
146 vif->bss_conf.beacon_int) % min_bi == 0) { in iwl_mvm_mac_tsf_id_iter()
162 if ((vif->type != NL80211_IFTYPE_AP && in iwl_mvm_mac_tsf_id_iter()
163 vif->type != NL80211_IFTYPE_STATION) || in iwl_mvm_mac_tsf_id_iter()
168 min_bi = min(data->vif->bss_conf.beacon_int, in iwl_mvm_mac_tsf_id_iter()
169 vif->bss_conf.beacon_int); in iwl_mvm_mac_tsf_id_iter()
174 if ((data->vif->bss_conf.beacon_int - in iwl_mvm_mac_tsf_id_iter()
175 vif->bss_conf.beacon_int) % min_bi == 0) { in iwl_mvm_mac_tsf_id_iter()
206 u32 iwl_mvm_mac_get_queues_mask(struct ieee80211_vif *vif) in iwl_mvm_mac_get_queues_mask() argument
210 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) in iwl_mvm_mac_get_queues_mask()
214 if (vif->hw_queue[ac] != IEEE80211_INVAL_HW_QUEUE) in iwl_mvm_mac_get_queues_mask()
215 qmask |= BIT(vif->hw_queue[ac]); in iwl_mvm_mac_get_queues_mask()
218 if (vif->type == NL80211_IFTYPE_AP) in iwl_mvm_mac_get_queues_mask()
219 qmask |= BIT(vif->cab_queue); in iwl_mvm_mac_get_queues_mask()
225 struct ieee80211_vif *vif) in iwl_mvm_iface_hw_queues_iter() argument
230 if (vif == data->exclude_vif) in iwl_mvm_iface_hw_queues_iter()
233 data->used_hw_queues |= iwl_mvm_mac_get_queues_mask(vif); in iwl_mvm_iface_hw_queues_iter()
281 struct ieee80211_vif *vif) in iwl_mvm_mac_iface_iterator() argument
284 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_iface_iterator()
287 if (vif == data->vif) { in iwl_mvm_mac_iface_iterator()
301 iwl_mvm_mac_tsf_id_iter(_data, mac, vif); in iwl_mvm_mac_iface_iterator()
305 struct ieee80211_vif *vif) in iwl_mvm_mac_ctxt_recalc_tsf_id() argument
307 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_recalc_tsf_id()
310 .vif = vif, in iwl_mvm_mac_ctxt_recalc_tsf_id()
328 struct ieee80211_vif *vif) in iwl_mvm_mac_ctxt_allocate_resources() argument
330 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_allocate_resources()
333 .vif = vif, in iwl_mvm_mac_ctxt_allocate_resources()
361 switch (vif->type) { in iwl_mvm_mac_ctxt_allocate_resources()
365 if (!vif->p2p) in iwl_mvm_mac_ctxt_allocate_resources()
376 used_hw_queues = iwl_mvm_get_used_hw_queues(mvm, vif); in iwl_mvm_mac_ctxt_allocate_resources()
420 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { in iwl_mvm_mac_ctxt_allocate_resources()
422 vif->hw_queue[ac] = IEEE80211_INVAL_HW_QUEUE; in iwl_mvm_mac_ctxt_allocate_resources()
439 vif->hw_queue[ac] = queue; in iwl_mvm_mac_ctxt_allocate_resources()
443 if (vif->type == NL80211_IFTYPE_AP) { in iwl_mvm_mac_ctxt_allocate_resources()
453 vif->cab_queue = queue; in iwl_mvm_mac_ctxt_allocate_resources()
455 vif->cab_queue = IEEE80211_INVAL_HW_QUEUE; in iwl_mvm_mac_ctxt_allocate_resources()
468 memset(vif->hw_queue, IEEE80211_INVAL_HW_QUEUE, sizeof(vif->hw_queue)); in iwl_mvm_mac_ctxt_allocate_resources()
469 vif->cab_queue = IEEE80211_INVAL_HW_QUEUE; in iwl_mvm_mac_ctxt_allocate_resources()
473 int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_mac_ctxt_init() argument
476 iwl_mvm_get_wd_timeout(mvm, vif, false, false); in iwl_mvm_mac_ctxt_init()
482 ret = iwl_mvm_mac_ctxt_allocate_resources(mvm, vif); in iwl_mvm_mac_ctxt_init()
486 switch (vif->type) { in iwl_mvm_mac_ctxt_init()
493 iwl_mvm_enable_ac_txq(mvm, vif->cab_queue, vif->cab_queue, in iwl_mvm_mac_ctxt_init()
498 iwl_mvm_enable_ac_txq(mvm, vif->hw_queue[ac], in iwl_mvm_mac_ctxt_init()
499 vif->hw_queue[ac], in iwl_mvm_mac_ctxt_init()
508 void iwl_mvm_mac_ctxt_release(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_mac_ctxt_release() argument
514 switch (vif->type) { in iwl_mvm_mac_ctxt_release()
521 iwl_mvm_disable_txq(mvm, vif->cab_queue, vif->cab_queue, in iwl_mvm_mac_ctxt_release()
526 iwl_mvm_disable_txq(mvm, vif->hw_queue[ac], in iwl_mvm_mac_ctxt_release()
527 vif->hw_queue[ac], in iwl_mvm_mac_ctxt_release()
533 struct ieee80211_vif *vif, in iwl_mvm_ack_rates() argument
538 unsigned long basic = vif->bss_conf.basic_rates; in iwl_mvm_ack_rates()
619 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_set_ht_flags() argument
623 u8 protection_mode = vif->bss_conf.ht_operation_mode & in iwl_mvm_mac_ctxt_set_ht_flags()
642 if (vif->bss_conf.chandef.width > NL80211_CHAN_WIDTH_20) in iwl_mvm_mac_ctxt_set_ht_flags()
653 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_cmd_common() argument
658 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_cmd_common()
660 bool ht_enabled = !!(vif->bss_conf.ht_operation_mode & in iwl_mvm_mac_ctxt_cmd_common()
663 const u8 *bssid = bssid_override ?: vif->bss_conf.bssid; in iwl_mvm_mac_ctxt_cmd_common()
670 switch (vif->type) { in iwl_mvm_mac_ctxt_cmd_common()
672 if (vif->p2p) in iwl_mvm_mac_ctxt_cmd_common()
695 memcpy(cmd->node_addr, vif->addr, ETH_ALEN); in iwl_mvm_mac_ctxt_cmd_common()
703 chanctx = rcu_dereference(vif->chanctx_conf); in iwl_mvm_mac_ctxt_cmd_common()
704 iwl_mvm_ack_rates(mvm, vif, chanctx ? chanctx->def.chan->band in iwl_mvm_mac_ctxt_cmd_common()
713 cpu_to_le32(vif->bss_conf.use_short_preamble ? in iwl_mvm_mac_ctxt_cmd_common()
716 cpu_to_le32(vif->bss_conf.use_short_slot ? in iwl_mvm_mac_ctxt_cmd_common()
733 if (vif->type == NL80211_IFTYPE_AP) in iwl_mvm_mac_ctxt_cmd_common()
737 if (vif->bss_conf.qos) in iwl_mvm_mac_ctxt_cmd_common()
740 if (vif->bss_conf.use_cts_prot) in iwl_mvm_mac_ctxt_cmd_common()
744 vif->bss_conf.use_cts_prot, in iwl_mvm_mac_ctxt_cmd_common()
745 vif->bss_conf.ht_operation_mode); in iwl_mvm_mac_ctxt_cmd_common()
746 if (vif->bss_conf.chandef.width != NL80211_CHAN_WIDTH_20_NOHT) in iwl_mvm_mac_ctxt_cmd_common()
749 iwl_mvm_mac_ctxt_set_ht_flags(mvm, vif, cmd); in iwl_mvm_mac_ctxt_cmd_common()
766 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_cmd_sta() argument
773 WARN_ON(vif->type != NL80211_IFTYPE_STATION); in iwl_mvm_mac_ctxt_cmd_sta()
776 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, bssid_override, action); in iwl_mvm_mac_ctxt_cmd_sta()
778 if (vif->p2p) { in iwl_mvm_mac_ctxt_cmd_sta()
780 &vif->bss_conf.p2p_noa_attr; in iwl_mvm_mac_ctxt_cmd_sta()
790 if (vif->bss_conf.assoc && vif->bss_conf.dtim_period && in iwl_mvm_mac_ctxt_cmd_sta()
809 dtim_offs = vif->bss_conf.sync_dtim_count * in iwl_mvm_mac_ctxt_cmd_sta()
810 vif->bss_conf.beacon_int; in iwl_mvm_mac_ctxt_cmd_sta()
815 cpu_to_le64(vif->bss_conf.sync_tsf + dtim_offs); in iwl_mvm_mac_ctxt_cmd_sta()
817 cpu_to_le32(vif->bss_conf.sync_device_ts + dtim_offs); in iwl_mvm_mac_ctxt_cmd_sta()
834 ctxt_sta->bi = cpu_to_le32(vif->bss_conf.beacon_int); in iwl_mvm_mac_ctxt_cmd_sta()
836 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int)); in iwl_mvm_mac_ctxt_cmd_sta()
837 ctxt_sta->dtim_interval = cpu_to_le32(vif->bss_conf.beacon_int * in iwl_mvm_mac_ctxt_cmd_sta()
838 vif->bss_conf.dtim_period); in iwl_mvm_mac_ctxt_cmd_sta()
840 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int * in iwl_mvm_mac_ctxt_cmd_sta()
841 vif->bss_conf.dtim_period)); in iwl_mvm_mac_ctxt_cmd_sta()
844 ctxt_sta->assoc_id = cpu_to_le32(vif->bss_conf.aid); in iwl_mvm_mac_ctxt_cmd_sta()
846 if (vif->probe_req_reg && vif->bss_conf.assoc && vif->p2p) in iwl_mvm_mac_ctxt_cmd_sta()
853 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_cmd_listener() argument
858 WARN_ON(vif->type != NL80211_IFTYPE_MONITOR); in iwl_mvm_mac_ctxt_cmd_listener()
860 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); in iwl_mvm_mac_ctxt_cmd_listener()
873 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_cmd_ibss() argument
876 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_cmd_ibss()
879 WARN_ON(vif->type != NL80211_IFTYPE_ADHOC); in iwl_mvm_mac_ctxt_cmd_ibss()
881 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); in iwl_mvm_mac_ctxt_cmd_ibss()
887 cmd.ibss.bi = cpu_to_le32(vif->bss_conf.beacon_int); in iwl_mvm_mac_ctxt_cmd_ibss()
889 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int)); in iwl_mvm_mac_ctxt_cmd_ibss()
901 static void iwl_mvm_go_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) in iwl_mvm_go_iterator() argument
904 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_go_iterator()
906 if (vif->type == NL80211_IFTYPE_AP && vif->p2p && in iwl_mvm_go_iterator()
912 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_cmd_p2p_device() argument
918 WARN_ON(vif->type != NL80211_IFTYPE_P2P_DEVICE); in iwl_mvm_mac_ctxt_cmd_p2p_device()
920 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); in iwl_mvm_mac_ctxt_cmd_p2p_device()
969 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_send_beacon() argument
972 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_send_beacon()
1010 if (info->band == IEEE80211_BAND_5GHZ || vif->p2p) { in iwl_mvm_mac_ctxt_send_beacon()
1020 if (vif->type == NL80211_IFTYPE_AP) in iwl_mvm_mac_ctxt_send_beacon()
1038 struct ieee80211_vif *vif) in iwl_mvm_mac_ctxt_beacon_changed() argument
1043 WARN_ON(vif->type != NL80211_IFTYPE_AP && in iwl_mvm_mac_ctxt_beacon_changed()
1044 vif->type != NL80211_IFTYPE_ADHOC); in iwl_mvm_mac_ctxt_beacon_changed()
1046 beacon = ieee80211_beacon_get_template(mvm->hw, vif, NULL); in iwl_mvm_mac_ctxt_beacon_changed()
1050 ret = iwl_mvm_mac_ctxt_send_beacon(mvm, vif, beacon); in iwl_mvm_mac_ctxt_beacon_changed()
1057 struct ieee80211_vif *vif; member
1064 struct ieee80211_vif *vif) in iwl_mvm_mac_ap_iterator() argument
1068 if (vif->type != NL80211_IFTYPE_STATION || !vif->bss_conf.assoc) in iwl_mvm_mac_ap_iterator()
1072 if (vif->p2p && data->beacon_device_ts) in iwl_mvm_mac_ap_iterator()
1075 data->beacon_device_ts = vif->bss_conf.sync_device_ts; in iwl_mvm_mac_ap_iterator()
1076 data->beacon_int = vif->bss_conf.beacon_int; in iwl_mvm_mac_ap_iterator()
1083 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_cmd_fill_ap() argument
1087 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_cmd_fill_ap()
1090 .vif = vif, in iwl_mvm_mac_ctxt_cmd_fill_ap()
1094 ctxt_ap->bi = cpu_to_le32(vif->bss_conf.beacon_int); in iwl_mvm_mac_ctxt_cmd_fill_ap()
1096 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int)); in iwl_mvm_mac_ctxt_cmd_fill_ap()
1097 ctxt_ap->dtim_interval = cpu_to_le32(vif->bss_conf.beacon_int * in iwl_mvm_mac_ctxt_cmd_fill_ap()
1098 vif->bss_conf.dtim_period); in iwl_mvm_mac_ctxt_cmd_fill_ap()
1100 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int * in iwl_mvm_mac_ctxt_cmd_fill_ap()
1101 vif->bss_conf.dtim_period)); in iwl_mvm_mac_ctxt_cmd_fill_ap()
1103 ctxt_ap->mcast_qid = cpu_to_le32(vif->cab_queue); in iwl_mvm_mac_ctxt_cmd_fill_ap()
1140 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_cmd_ap() argument
1143 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_cmd_ap()
1146 WARN_ON(vif->type != NL80211_IFTYPE_AP || vif->p2p); in iwl_mvm_mac_ctxt_cmd_ap()
1149 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); in iwl_mvm_mac_ctxt_cmd_ap()
1165 iwl_mvm_mac_ctxt_cmd_fill_ap(mvm, vif, &cmd.ap, in iwl_mvm_mac_ctxt_cmd_ap()
1172 struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_cmd_go() argument
1176 struct ieee80211_p2p_noa_attr *noa = &vif->bss_conf.p2p_noa_attr; in iwl_mvm_mac_ctxt_cmd_go()
1178 WARN_ON(vif->type != NL80211_IFTYPE_AP || !vif->p2p); in iwl_mvm_mac_ctxt_cmd_go()
1181 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); in iwl_mvm_mac_ctxt_cmd_go()
1191 iwl_mvm_mac_ctxt_cmd_fill_ap(mvm, vif, &cmd.go.ap, in iwl_mvm_mac_ctxt_cmd_go()
1203 static int iwl_mvm_mac_ctx_send(struct iwl_mvm *mvm, struct ieee80211_vif *vif, in iwl_mvm_mac_ctx_send() argument
1207 switch (vif->type) { in iwl_mvm_mac_ctx_send()
1209 return iwl_mvm_mac_ctxt_cmd_sta(mvm, vif, action, in iwl_mvm_mac_ctx_send()
1214 if (!vif->p2p) in iwl_mvm_mac_ctx_send()
1215 return iwl_mvm_mac_ctxt_cmd_ap(mvm, vif, action); in iwl_mvm_mac_ctx_send()
1217 return iwl_mvm_mac_ctxt_cmd_go(mvm, vif, action); in iwl_mvm_mac_ctx_send()
1220 return iwl_mvm_mac_ctxt_cmd_listener(mvm, vif, action); in iwl_mvm_mac_ctx_send()
1222 return iwl_mvm_mac_ctxt_cmd_p2p_device(mvm, vif, action); in iwl_mvm_mac_ctx_send()
1224 return iwl_mvm_mac_ctxt_cmd_ibss(mvm, vif, action); in iwl_mvm_mac_ctx_send()
1232 int iwl_mvm_mac_ctxt_add(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_mac_ctxt_add() argument
1234 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_add()
1238 vif->addr, ieee80211_vif_type_p2p(vif))) in iwl_mvm_mac_ctxt_add()
1241 ret = iwl_mvm_mac_ctx_send(mvm, vif, FW_CTXT_ACTION_ADD, in iwl_mvm_mac_ctxt_add()
1247 iwl_mvm_set_last_nonqos_seq(mvm, vif); in iwl_mvm_mac_ctxt_add()
1253 int iwl_mvm_mac_ctxt_changed(struct iwl_mvm *mvm, struct ieee80211_vif *vif, in iwl_mvm_mac_ctxt_changed() argument
1256 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_changed()
1259 vif->addr, ieee80211_vif_type_p2p(vif))) in iwl_mvm_mac_ctxt_changed()
1262 return iwl_mvm_mac_ctx_send(mvm, vif, FW_CTXT_ACTION_MODIFY, in iwl_mvm_mac_ctxt_changed()
1266 int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_mac_ctxt_remove() argument
1268 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_mac_ctxt_remove()
1273 vif->addr, ieee80211_vif_type_p2p(vif))) in iwl_mvm_mac_ctxt_remove()
1291 if (vif->type == NL80211_IFTYPE_MONITOR) in iwl_mvm_mac_ctxt_remove()
1389 struct ieee80211_vif *vif) in iwl_mvm_beacon_loss_iterator() argument
1392 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); in iwl_mvm_beacon_loss_iterator()
1411 ieee80211_beacon_loss(vif); in iwl_mvm_beacon_loss_iterator()
1426 if (!iwl_fw_dbg_trigger_check_stop(mvm, vif, trigger)) in iwl_mvm_beacon_loss_iterator()