Searched refs:vif (Results 1 - 200 of 269) sorted by relevance

12

/linux-4.1.27/drivers/net/wireless/ath/ath6kl/
H A Dcfg80211.c146 static bool __ath6kl_cfg80211_sscan_stop(struct ath6kl_vif *vif) __ath6kl_cfg80211_sscan_stop() argument
148 struct ath6kl *ar = vif->ar; __ath6kl_cfg80211_sscan_stop()
150 if (!test_and_clear_bit(SCHED_SCANNING, &vif->flags)) __ath6kl_cfg80211_sscan_stop()
153 del_timer_sync(&vif->sched_scan_timer); __ath6kl_cfg80211_sscan_stop()
158 ath6kl_wmi_enable_sched_scan_cmd(ar->wmi, vif->fw_vif_idx, false); __ath6kl_cfg80211_sscan_stop()
163 static void ath6kl_cfg80211_sscan_disable(struct ath6kl_vif *vif) ath6kl_cfg80211_sscan_disable() argument
165 struct ath6kl *ar = vif->ar; ath6kl_cfg80211_sscan_disable()
168 stopped = __ath6kl_cfg80211_sscan_stop(vif); ath6kl_cfg80211_sscan_disable()
176 static int ath6kl_set_wpa_version(struct ath6kl_vif *vif, ath6kl_set_wpa_version() argument
182 vif->auth_mode = NONE_AUTH; ath6kl_set_wpa_version()
184 vif->auth_mode = WPA2_AUTH; ath6kl_set_wpa_version()
186 vif->auth_mode = WPA_AUTH; ath6kl_set_wpa_version()
195 static int ath6kl_set_auth_type(struct ath6kl_vif *vif, ath6kl_set_auth_type() argument
202 vif->dot11_auth_mode = OPEN_AUTH; ath6kl_set_auth_type()
205 vif->dot11_auth_mode = SHARED_AUTH; ath6kl_set_auth_type()
208 vif->dot11_auth_mode = LEAP_AUTH; ath6kl_set_auth_type()
212 vif->dot11_auth_mode = OPEN_AUTH | SHARED_AUTH; ath6kl_set_auth_type()
223 static int ath6kl_set_cipher(struct ath6kl_vif *vif, u32 cipher, bool ucast) ath6kl_set_cipher() argument
225 u8 *ar_cipher = ucast ? &vif->prwise_crypto : &vif->grp_crypto; ath6kl_set_cipher()
226 u8 *ar_cipher_len = ucast ? &vif->prwise_crypto_len : ath6kl_set_cipher()
227 &vif->grp_crypto_len; ath6kl_set_cipher()
266 static void ath6kl_set_key_mgmt(struct ath6kl_vif *vif, u32 key_mgmt) ath6kl_set_key_mgmt() argument
271 if (vif->auth_mode == WPA_AUTH) ath6kl_set_key_mgmt()
272 vif->auth_mode = WPA_PSK_AUTH; ath6kl_set_key_mgmt()
273 else if (vif->auth_mode == WPA2_AUTH) ath6kl_set_key_mgmt()
274 vif->auth_mode = WPA2_PSK_AUTH; ath6kl_set_key_mgmt()
276 if (vif->auth_mode == WPA_AUTH) ath6kl_set_key_mgmt()
277 vif->auth_mode = WPA_AUTH_CCKM; ath6kl_set_key_mgmt()
278 else if (vif->auth_mode == WPA2_AUTH) ath6kl_set_key_mgmt()
279 vif->auth_mode = WPA2_AUTH_CCKM; ath6kl_set_key_mgmt()
281 vif->auth_mode = NONE_AUTH; ath6kl_set_key_mgmt()
285 static bool ath6kl_cfg80211_ready(struct ath6kl_vif *vif) ath6kl_cfg80211_ready() argument
287 struct ath6kl *ar = vif->ar; ath6kl_cfg80211_ready()
294 if (!test_bit(WLAN_ENABLED, &vif->flags)) { ath6kl_cfg80211_ready()
322 static int ath6kl_set_assoc_req_ies(struct ath6kl_vif *vif, const u8 *ies, ath6kl_set_assoc_req_ies() argument
325 struct ath6kl *ar = vif->ar; ath6kl_set_assoc_req_ies()
362 ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_set_assoc_req_ies()
430 static void ath6kl_cfg80211_sta_bmiss_enhance(struct ath6kl_vif *vif, ath6kl_cfg80211_sta_bmiss_enhance() argument
435 if (WARN_ON(!test_bit(WMI_READY, &vif->ar->flag))) ath6kl_cfg80211_sta_bmiss_enhance()
438 if (vif->nw_type != INFRA_NETWORK) ath6kl_cfg80211_sta_bmiss_enhance()
442 vif->ar->fw_capabilities)) ath6kl_cfg80211_sta_bmiss_enhance()
448 err = ath6kl_wmi_sta_bmiss_enhance_cmd(vif->ar->wmi, ath6kl_cfg80211_sta_bmiss_enhance()
449 vif->fw_vif_idx, enable); ath6kl_cfg80211_sta_bmiss_enhance()
459 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_connect() local
464 ath6kl_cfg80211_sscan_disable(vif); ath6kl_cfg80211_connect()
466 vif->sme_state = SME_CONNECTING; ath6kl_cfg80211_connect()
468 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_connect()
508 status = ath6kl_set_assoc_req_ies(vif, sme->ie, sme->ie_len); ath6kl_cfg80211_connect()
517 if (test_bit(CONNECTED, &vif->flags) && ath6kl_cfg80211_connect()
518 vif->ssid_len == sme->ssid_len && ath6kl_cfg80211_connect()
519 !memcmp(vif->ssid, sme->ssid, vif->ssid_len)) { ath6kl_cfg80211_connect()
520 vif->reconnect_flag = true; ath6kl_cfg80211_connect()
521 status = ath6kl_wmi_reconnect_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_connect()
522 vif->req_bssid, ath6kl_cfg80211_connect()
523 vif->ch_hint); ath6kl_cfg80211_connect()
531 } else if (vif->ssid_len == sme->ssid_len && ath6kl_cfg80211_connect()
532 !memcmp(vif->ssid, sme->ssid, vif->ssid_len)) { ath6kl_cfg80211_connect()
533 ath6kl_disconnect(vif); ath6kl_cfg80211_connect()
536 memset(vif->ssid, 0, sizeof(vif->ssid)); ath6kl_cfg80211_connect()
537 vif->ssid_len = sme->ssid_len; ath6kl_cfg80211_connect()
538 memcpy(vif->ssid, sme->ssid, sme->ssid_len); ath6kl_cfg80211_connect()
541 vif->ch_hint = sme->channel->center_freq; ath6kl_cfg80211_connect()
543 memset(vif->req_bssid, 0, sizeof(vif->req_bssid)); ath6kl_cfg80211_connect()
545 memcpy(vif->req_bssid, sme->bssid, sizeof(vif->req_bssid)); ath6kl_cfg80211_connect()
547 ath6kl_set_wpa_version(vif, sme->crypto.wpa_versions); ath6kl_cfg80211_connect()
549 status = ath6kl_set_auth_type(vif, sme->auth_type); ath6kl_cfg80211_connect()
556 ath6kl_set_cipher(vif, sme->crypto.ciphers_pairwise[0], true); ath6kl_cfg80211_connect()
558 ath6kl_set_cipher(vif, 0, true); ath6kl_cfg80211_connect()
560 ath6kl_set_cipher(vif, sme->crypto.cipher_group, false); ath6kl_cfg80211_connect()
563 ath6kl_set_key_mgmt(vif, sme->crypto.akm_suites[0]); ath6kl_cfg80211_connect()
566 (vif->auth_mode == NONE_AUTH) && ath6kl_cfg80211_connect()
567 (vif->prwise_crypto == WEP_CRYPT)) { ath6kl_cfg80211_connect()
577 key = &vif->keys[sme->key_idx]; ath6kl_cfg80211_connect()
580 key->cipher = vif->prwise_crypto; ath6kl_cfg80211_connect()
581 vif->def_txkey_index = sme->key_idx; ath6kl_cfg80211_connect()
583 ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx, sme->key_idx, ath6kl_cfg80211_connect()
584 vif->prwise_crypto, ath6kl_cfg80211_connect()
593 clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags); ath6kl_cfg80211_connect()
594 if (ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_connect()
602 vif->nw_type = vif->next_mode; ath6kl_cfg80211_connect()
605 ath6kl_cfg80211_sta_bmiss_enhance(vif, true); ath6kl_cfg80211_connect()
607 if (vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT) ath6kl_cfg80211_connect()
615 vif->auth_mode, vif->dot11_auth_mode, vif->prwise_crypto, ath6kl_cfg80211_connect()
616 vif->prwise_crypto_len, vif->grp_crypto, ath6kl_cfg80211_connect()
617 vif->grp_crypto_len, vif->ch_hint); ath6kl_cfg80211_connect()
619 vif->reconnect_flag = 0; ath6kl_cfg80211_connect()
621 if (vif->nw_type == INFRA_NETWORK) { ath6kl_cfg80211_connect()
622 interval = max_t(u16, vif->listen_intvl_t, ath6kl_cfg80211_connect()
624 status = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_connect()
634 status = ath6kl_wmi_connect_cmd(ar->wmi, vif->fw_vif_idx, vif->nw_type, ath6kl_cfg80211_connect()
635 vif->dot11_auth_mode, vif->auth_mode, ath6kl_cfg80211_connect()
636 vif->prwise_crypto, ath6kl_cfg80211_connect()
637 vif->prwise_crypto_len, ath6kl_cfg80211_connect()
638 vif->grp_crypto, vif->grp_crypto_len, ath6kl_cfg80211_connect()
639 vif->ssid_len, vif->ssid, ath6kl_cfg80211_connect()
640 vif->req_bssid, vif->ch_hint, ath6kl_cfg80211_connect()
651 ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, 0, 0, ath6kl_cfg80211_connect()
657 memset(vif->ssid, 0, sizeof(vif->ssid)); ath6kl_cfg80211_connect()
658 vif->ssid_len = 0; ath6kl_cfg80211_connect()
667 ((vif->auth_mode == WPA_PSK_AUTH) || ath6kl_cfg80211_connect()
668 (vif->auth_mode == WPA2_PSK_AUTH))) { ath6kl_cfg80211_connect()
669 mod_timer(&vif->disconnect_timer, ath6kl_cfg80211_connect()
674 set_bit(CONNECT_PEND, &vif->flags); ath6kl_cfg80211_connect()
680 ath6kl_add_bss_if_needed(struct ath6kl_vif *vif, ath6kl_add_bss_if_needed() argument
687 struct ath6kl *ar = vif->ar; ath6kl_add_bss_if_needed()
702 vif->ssid, vif->ssid_len, ath6kl_add_bss_if_needed()
713 ie = kmalloc(2 + vif->ssid_len + beacon_ie_len, GFP_KERNEL); ath6kl_add_bss_if_needed()
717 ie[1] = vif->ssid_len; ath6kl_add_bss_if_needed()
718 memcpy(ie + 2, vif->ssid, vif->ssid_len); ath6kl_add_bss_if_needed()
719 memcpy(ie + 2 + vif->ssid_len, beacon_ie, beacon_ie_len); ath6kl_add_bss_if_needed()
723 ie, 2 + vif->ssid_len + beacon_ie_len, ath6kl_add_bss_if_needed()
736 void ath6kl_cfg80211_connect_event(struct ath6kl_vif *vif, u16 channel, ath6kl_cfg80211_connect_event() argument
744 struct ath6kl *ar = vif->ar; ath6kl_cfg80211_connect_event()
764 vif->assoc_bss_beacon_int = beacon_intvl; ath6kl_cfg80211_connect_event()
765 clear_bit(DTIM_PERIOD_AVAIL, &vif->flags); ath6kl_cfg80211_connect_event()
768 if (vif->wdev.iftype != NL80211_IFTYPE_ADHOC) { ath6kl_cfg80211_connect_event()
776 if (vif->wdev.iftype != NL80211_IFTYPE_STATION && ath6kl_cfg80211_connect_event()
777 vif->wdev.iftype != NL80211_IFTYPE_P2P_CLIENT) { ath6kl_cfg80211_connect_event()
786 bss = ath6kl_add_bss_if_needed(vif, nw_type, bssid, chan, ath6kl_cfg80211_connect_event()
796 cfg80211_ibss_joined(vif->ndev, bssid, chan, GFP_KERNEL); ath6kl_cfg80211_connect_event()
801 if (vif->sme_state == SME_CONNECTING) { ath6kl_cfg80211_connect_event()
803 vif->sme_state = SME_CONNECTED; ath6kl_cfg80211_connect_event()
804 cfg80211_connect_result(vif->ndev, bssid, ath6kl_cfg80211_connect_event()
809 } else if (vif->sme_state == SME_CONNECTED) { ath6kl_cfg80211_connect_event()
811 cfg80211_roamed_bss(vif->ndev, bss, assoc_req_ie, assoc_req_len, ath6kl_cfg80211_connect_event()
820 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_disconnect() local
825 ath6kl_cfg80211_sscan_disable(vif); ath6kl_cfg80211_disconnect()
827 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_disconnect()
840 vif->reconnect_flag = 0; ath6kl_cfg80211_disconnect()
841 ath6kl_disconnect(vif); ath6kl_cfg80211_disconnect()
842 memset(vif->ssid, 0, sizeof(vif->ssid)); ath6kl_cfg80211_disconnect()
843 vif->ssid_len = 0; ath6kl_cfg80211_disconnect()
846 memset(vif->req_bssid, 0, sizeof(vif->req_bssid)); ath6kl_cfg80211_disconnect()
850 vif->sme_state = SME_DISCONNECTED; ath6kl_cfg80211_disconnect()
855 void ath6kl_cfg80211_disconnect_event(struct ath6kl_vif *vif, u8 reason, ath6kl_cfg80211_disconnect_event() argument
859 struct ath6kl *ar = vif->ar; ath6kl_cfg80211_disconnect_event()
861 if (vif->scan_req) { ath6kl_cfg80211_disconnect_event()
862 cfg80211_scan_done(vif->scan_req, true); ath6kl_cfg80211_disconnect_event()
863 vif->scan_req = NULL; ath6kl_cfg80211_disconnect_event()
866 if (vif->nw_type & ADHOC_NETWORK) { ath6kl_cfg80211_disconnect_event()
867 if (vif->wdev.iftype != NL80211_IFTYPE_ADHOC) ath6kl_cfg80211_disconnect_event()
873 if (vif->nw_type & INFRA_NETWORK) { ath6kl_cfg80211_disconnect_event()
874 if (vif->wdev.iftype != NL80211_IFTYPE_STATION && ath6kl_cfg80211_disconnect_event()
875 vif->wdev.iftype != NL80211_IFTYPE_P2P_CLIENT) { ath6kl_cfg80211_disconnect_event()
882 clear_bit(CONNECT_PEND, &vif->flags); ath6kl_cfg80211_disconnect_event()
884 if (vif->sme_state == SME_CONNECTING) { ath6kl_cfg80211_disconnect_event()
885 cfg80211_connect_result(vif->ndev, ath6kl_cfg80211_disconnect_event()
890 } else if (vif->sme_state == SME_CONNECTED) { ath6kl_cfg80211_disconnect_event()
891 cfg80211_disconnected(vif->ndev, proto_reason, ath6kl_cfg80211_disconnect_event()
895 vif->sme_state = SME_DISCONNECTED; ath6kl_cfg80211_disconnect_event()
906 ath6kl_wmi_disconnect_cmd(ar->wmi, vif->fw_vif_idx); ath6kl_cfg80211_disconnect_event()
910 struct ath6kl_vif *vif, ath6kl_set_probed_ssids()
972 ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx, i, ath6kl_set_probed_ssids()
980 ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx, i, ath6kl_set_probed_ssids()
990 struct ath6kl_vif *vif = ath6kl_vif_from_wdev(request->wdev); ath6kl_cfg80211_scan() local
991 struct ath6kl *ar = ath6kl_priv(vif->ndev); ath6kl_cfg80211_scan()
997 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_scan()
1000 ath6kl_cfg80211_sscan_disable(vif); ath6kl_cfg80211_scan()
1003 clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags); ath6kl_cfg80211_scan()
1004 ret = ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_scan()
1012 ret = ath6kl_set_probed_ssids(ar, vif, request->ssids, ath6kl_cfg80211_scan()
1018 ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_scan()
1047 if (test_bit(CONNECTED, &vif->flags)) ath6kl_cfg80211_scan()
1050 vif->scan_req = request; ath6kl_cfg80211_scan()
1052 ret = ath6kl_wmi_beginscan_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_scan()
1061 vif->scan_req = NULL; ath6kl_cfg80211_scan()
1069 void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted) ath6kl_cfg80211_scan_complete_event() argument
1071 struct ath6kl *ar = vif->ar; ath6kl_cfg80211_scan_complete_event()
1077 if (!vif->scan_req) ath6kl_cfg80211_scan_complete_event()
1083 if (vif->scan_req->n_ssids && vif->scan_req->ssids[0].ssid_len) { ath6kl_cfg80211_scan_complete_event()
1084 for (i = 0; i < vif->scan_req->n_ssids; i++) { ath6kl_cfg80211_scan_complete_event()
1085 ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_scan_complete_event()
1092 cfg80211_scan_done(vif->scan_req, aborted); ath6kl_cfg80211_scan_complete_event()
1093 vif->scan_req = NULL; ath6kl_cfg80211_scan_complete_event()
1096 void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq, ath6kl_cfg80211_ch_switch_notify() argument
1103 vif->nw_type, freq, mode); ath6kl_cfg80211_ch_switch_notify()
1106 ieee80211_get_channel(vif->ar->wiphy, freq), ath6kl_cfg80211_ch_switch_notify()
1110 mutex_lock(&vif->wdev.mtx); ath6kl_cfg80211_ch_switch_notify()
1111 cfg80211_ch_switch_notify(vif->ndev, &chandef); ath6kl_cfg80211_ch_switch_notify()
1112 mutex_unlock(&vif->wdev.mtx); ath6kl_cfg80211_ch_switch_notify()
1121 struct ath6kl_vif *vif = netdev_priv(ndev); ath6kl_cfg80211_add_key() local
1127 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_add_key()
1133 return ath6kl_wmi_add_krk_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_add_key()
1144 key = &vif->keys[key_index]; ath6kl_cfg80211_add_key()
1189 if (((vif->auth_mode == WPA_PSK_AUTH) || ath6kl_cfg80211_add_key()
1190 (vif->auth_mode == WPA2_PSK_AUTH)) && ath6kl_cfg80211_add_key()
1192 del_timer(&vif->disconnect_timer); ath6kl_cfg80211_add_key()
1199 if (vif->nw_type == AP_NETWORK && !pairwise && ath6kl_cfg80211_add_key()
1207 if (!test_bit(CONNECTED, &vif->flags)) { ath6kl_cfg80211_add_key()
1218 if (vif->next_mode == AP_NETWORK && key_type == WEP_CRYPT && ath6kl_cfg80211_add_key()
1219 !test_bit(CONNECTED, &vif->flags)) { ath6kl_cfg80211_add_key()
1227 vif->wep_key_list[key_index].key_len = key->key_len; ath6kl_cfg80211_add_key()
1228 memcpy(vif->wep_key_list[key_index].key, key->key, ath6kl_cfg80211_add_key()
1233 return ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx, key_index, ath6kl_cfg80211_add_key()
1245 struct ath6kl_vif *vif = netdev_priv(ndev); ath6kl_cfg80211_del_key() local
1249 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_del_key()
1259 if (!vif->keys[key_index].key_len) { ath6kl_cfg80211_del_key()
1265 vif->keys[key_index].key_len = 0; ath6kl_cfg80211_del_key()
1267 return ath6kl_wmi_deletekey_cmd(ar->wmi, vif->fw_vif_idx, key_index); ath6kl_cfg80211_del_key()
1276 struct ath6kl_vif *vif = netdev_priv(ndev); ath6kl_cfg80211_get_key() local
1282 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_get_key()
1292 key = &vif->keys[key_index]; ath6kl_cfg80211_get_key()
1311 struct ath6kl_vif *vif = netdev_priv(ndev); ath6kl_cfg80211_set_default_key() local
1318 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_set_default_key()
1328 if (!vif->keys[key_index].key_len) { ath6kl_cfg80211_set_default_key()
1334 vif->def_txkey_index = key_index; ath6kl_cfg80211_set_default_key()
1335 key = &vif->keys[vif->def_txkey_index]; ath6kl_cfg80211_set_default_key()
1337 if (vif->prwise_crypto == WEP_CRYPT) ath6kl_cfg80211_set_default_key()
1340 key_type = vif->prwise_crypto; ath6kl_cfg80211_set_default_key()
1342 key_type = vif->grp_crypto; ath6kl_cfg80211_set_default_key()
1344 if (vif->next_mode == AP_NETWORK && !test_bit(CONNECTED, &vif->flags)) ath6kl_cfg80211_set_default_key()
1347 return ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_set_default_key()
1348 vif->def_txkey_index, ath6kl_cfg80211_set_default_key()
1356 void ath6kl_cfg80211_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid, ath6kl_cfg80211_tkip_micerr_event() argument
1362 cfg80211_michael_mic_failure(vif->ndev, vif->bssid, ath6kl_cfg80211_tkip_micerr_event()
1371 struct ath6kl_vif *vif; ath6kl_cfg80211_set_wiphy_params() local
1377 vif = ath6kl_vif_first(ar); ath6kl_cfg80211_set_wiphy_params()
1378 if (!vif) ath6kl_cfg80211_set_wiphy_params()
1381 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_set_wiphy_params()
1401 struct ath6kl_vif *vif; ath6kl_cfg80211_set_txpower() local
1407 vif = ath6kl_vif_first(ar); ath6kl_cfg80211_set_txpower()
1408 if (!vif) ath6kl_cfg80211_set_txpower()
1411 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_set_txpower()
1426 ath6kl_wmi_set_tx_pwr_cmd(ar->wmi, vif->fw_vif_idx, dbm); ath6kl_cfg80211_set_txpower()
1436 struct ath6kl_vif *vif; ath6kl_cfg80211_get_txpower() local
1438 vif = ath6kl_vif_first(ar); ath6kl_cfg80211_get_txpower()
1439 if (!vif) ath6kl_cfg80211_get_txpower()
1442 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_get_txpower()
1445 if (test_bit(CONNECTED, &vif->flags)) { ath6kl_cfg80211_get_txpower()
1448 if (ath6kl_wmi_get_tx_pwr_cmd(ar->wmi, vif->fw_vif_idx) != 0) { ath6kl_cfg80211_get_txpower()
1472 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_set_power_mgmt() local
1477 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_set_power_mgmt()
1488 if (ath6kl_wmi_powermode_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_set_power_mgmt()
1509 ath6kl_err("Reached maximum number of supported vif\n"); ath6kl_cfg80211_add_iface()
1531 struct ath6kl_vif *vif = netdev_priv(wdev->netdev); ath6kl_cfg80211_del_iface() local
1534 list_del(&vif->list); ath6kl_cfg80211_del_iface()
1537 ath6kl_cfg80211_vif_stop(vif, test_bit(WMI_READY, &ar->flag)); ath6kl_cfg80211_del_iface()
1540 ath6kl_cfg80211_vif_cleanup(vif); ath6kl_cfg80211_del_iface()
1551 struct ath6kl_vif *vif = netdev_priv(ndev); ath6kl_cfg80211_change_iface() local
1562 vif->ar->fw_capabilities) && ath6kl_cfg80211_change_iface()
1565 if (vif->ar->vif_max == 1) { ath6kl_cfg80211_change_iface()
1566 if (vif->fw_vif_idx != 0) ath6kl_cfg80211_change_iface()
1572 for (i = vif->ar->max_norm_iface; i < vif->ar->vif_max; i++) { ath6kl_cfg80211_change_iface()
1573 if (i == vif->fw_vif_idx) ath6kl_cfg80211_change_iface()
1577 if (i == vif->ar->vif_max) { ath6kl_cfg80211_change_iface()
1584 ath6kl_cfg80211_sta_bmiss_enhance(vif, false); ath6kl_cfg80211_change_iface()
1590 vif->next_mode = INFRA_NETWORK; ath6kl_cfg80211_change_iface()
1593 vif->next_mode = ADHOC_NETWORK; ath6kl_cfg80211_change_iface()
1597 vif->next_mode = AP_NETWORK; ath6kl_cfg80211_change_iface()
1604 vif->wdev.iftype = type; ath6kl_cfg80211_change_iface()
1614 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_join_ibss() local
1617 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_join_ibss()
1620 vif->ssid_len = ibss_param->ssid_len; ath6kl_cfg80211_join_ibss()
1621 memcpy(vif->ssid, ibss_param->ssid, vif->ssid_len); ath6kl_cfg80211_join_ibss()
1624 vif->ch_hint = ibss_param->chandef.chan->center_freq; ath6kl_cfg80211_join_ibss()
1636 memset(vif->req_bssid, 0, sizeof(vif->req_bssid)); ath6kl_cfg80211_join_ibss()
1638 memcpy(vif->req_bssid, ibss_param->bssid, ath6kl_cfg80211_join_ibss()
1639 sizeof(vif->req_bssid)); ath6kl_cfg80211_join_ibss()
1641 ath6kl_set_wpa_version(vif, 0); ath6kl_cfg80211_join_ibss()
1643 status = ath6kl_set_auth_type(vif, NL80211_AUTHTYPE_OPEN_SYSTEM); ath6kl_cfg80211_join_ibss()
1648 ath6kl_set_cipher(vif, WLAN_CIPHER_SUITE_WEP40, true); ath6kl_cfg80211_join_ibss()
1649 ath6kl_set_cipher(vif, WLAN_CIPHER_SUITE_WEP40, false); ath6kl_cfg80211_join_ibss()
1651 ath6kl_set_cipher(vif, 0, true); ath6kl_cfg80211_join_ibss()
1652 ath6kl_set_cipher(vif, 0, false); ath6kl_cfg80211_join_ibss()
1655 vif->nw_type = vif->next_mode; ath6kl_cfg80211_join_ibss()
1662 vif->auth_mode, vif->dot11_auth_mode, vif->prwise_crypto, ath6kl_cfg80211_join_ibss()
1663 vif->prwise_crypto_len, vif->grp_crypto, ath6kl_cfg80211_join_ibss()
1664 vif->grp_crypto_len, vif->ch_hint); ath6kl_cfg80211_join_ibss()
1666 status = ath6kl_wmi_connect_cmd(ar->wmi, vif->fw_vif_idx, vif->nw_type, ath6kl_cfg80211_join_ibss()
1667 vif->dot11_auth_mode, vif->auth_mode, ath6kl_cfg80211_join_ibss()
1668 vif->prwise_crypto, ath6kl_cfg80211_join_ibss()
1669 vif->prwise_crypto_len, ath6kl_cfg80211_join_ibss()
1670 vif->grp_crypto, vif->grp_crypto_len, ath6kl_cfg80211_join_ibss()
1671 vif->ssid_len, vif->ssid, ath6kl_cfg80211_join_ibss()
1672 vif->req_bssid, vif->ch_hint, ath6kl_cfg80211_join_ibss()
1674 set_bit(CONNECT_PEND, &vif->flags); ath6kl_cfg80211_join_ibss()
1682 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_leave_ibss() local
1684 if (!ath6kl_cfg80211_ready(vif)) ath6kl_cfg80211_leave_ibss()
1687 ath6kl_disconnect(vif); ath6kl_cfg80211_leave_ibss()
1688 memset(vif->ssid, 0, sizeof(vif->ssid)); ath6kl_cfg80211_leave_ibss()
1689 vif->ssid_len = 0; ath6kl_cfg80211_leave_ibss()
1768 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_get_station() local
1775 if (memcmp(mac, vif->bssid, ETH_ALEN) != 0) ath6kl_get_station()
1781 set_bit(STATS_UPDATE_PEND, &vif->flags); ath6kl_get_station()
1783 ret = ath6kl_wmi_get_stats_cmd(ar->wmi, vif->fw_vif_idx); ath6kl_get_station()
1792 &vif->flags), ath6kl_get_station()
1802 if (vif->target_stats.rx_byte) { ath6kl_get_station()
1803 sinfo->rx_bytes = vif->target_stats.rx_byte; ath6kl_get_station()
1805 sinfo->rx_packets = vif->target_stats.rx_pkt; ath6kl_get_station()
1809 if (vif->target_stats.tx_byte) { ath6kl_get_station()
1810 sinfo->tx_bytes = vif->target_stats.tx_byte; ath6kl_get_station()
1812 sinfo->tx_packets = vif->target_stats.tx_pkt; ath6kl_get_station()
1816 sinfo->signal = vif->target_stats.cs_rssi; ath6kl_get_station()
1819 rate = vif->target_stats.tx_ucast_rate; ath6kl_get_station()
1852 if (test_bit(CONNECTED, &vif->flags) && ath6kl_get_station()
1853 test_bit(DTIM_PERIOD_AVAIL, &vif->flags) && ath6kl_get_station()
1854 vif->nw_type == INFRA_NETWORK) { ath6kl_get_station()
1857 sinfo->bss_param.dtim_period = vif->assoc_bss_dtim_period; ath6kl_get_station()
1858 sinfo->bss_param.beacon_interval = vif->assoc_bss_beacon_int; ath6kl_get_station()
1868 struct ath6kl_vif *vif = netdev_priv(netdev); ath6kl_set_pmksa() local
1870 return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx, pmksa->bssid, ath6kl_set_pmksa()
1878 struct ath6kl_vif *vif = netdev_priv(netdev); ath6kl_del_pmksa() local
1880 return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx, pmksa->bssid, ath6kl_del_pmksa()
1887 struct ath6kl_vif *vif = netdev_priv(netdev); ath6kl_flush_pmksa() local
1889 if (test_bit(CONNECTED, &vif->flags)) ath6kl_flush_pmksa()
1890 return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_flush_pmksa()
1891 vif->bssid, NULL, false); ath6kl_flush_pmksa()
1895 static int ath6kl_wow_usr(struct ath6kl *ar, struct ath6kl_vif *vif, ath6kl_wow_usr() argument
1924 vif->fw_vif_idx, WOW_LIST_ID, ath6kl_wow_usr()
1950 static int ath6kl_wow_ap(struct ath6kl *ar, struct ath6kl_vif *vif) ath6kl_wow_ap() argument
1984 vif->fw_vif_idx, WOW_LIST_ID, ath6kl_wow_ap()
1994 vif->fw_vif_idx, WOW_LIST_ID, ath6kl_wow_ap()
2007 vif->fw_vif_idx, WOW_LIST_ID, ath6kl_wow_ap()
2017 vif->fw_vif_idx, WOW_LIST_ID, ath6kl_wow_ap()
2028 static int ath6kl_wow_sta(struct ath6kl *ar, struct ath6kl_vif *vif) ath6kl_wow_sta() argument
2030 struct net_device *ndev = vif->ndev; ath6kl_wow_sta()
2040 vif->fw_vif_idx, WOW_LIST_ID, ath6kl_wow_sta()
2055 vif->fw_vif_idx, WOW_LIST_ID, ath6kl_wow_sta()
2067 static int is_hsleep_mode_procsed(struct ath6kl_vif *vif) is_hsleep_mode_procsed() argument
2069 return test_bit(HOST_SLEEP_MODE_CMD_PROCESSED, &vif->flags); is_hsleep_mode_procsed()
2077 static int ath6kl_cfg80211_host_sleep(struct ath6kl *ar, struct ath6kl_vif *vif) ath6kl_cfg80211_host_sleep() argument
2081 clear_bit(HOST_SLEEP_MODE_CMD_PROCESSED, &vif->flags); ath6kl_cfg80211_host_sleep()
2083 ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_host_sleep()
2089 is_hsleep_mode_procsed(vif), ath6kl_cfg80211_host_sleep()
2116 static int ath6kl_wow_suspend_vif(struct ath6kl_vif *vif, ath6kl_wow_suspend_vif() argument
2119 struct ath6kl *ar = vif->ar; ath6kl_wow_suspend_vif()
2127 if (!test_bit(NETDEV_MCAST_ALL_ON, &vif->flags) && ath6kl_wow_suspend_vif()
2130 ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, ath6kl_wow_suspend_vif()
2131 vif->fw_vif_idx, false); ath6kl_wow_suspend_vif()
2138 ath6kl_wmi_del_wow_pattern_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wow_suspend_vif()
2147 ret = ath6kl_wow_usr(ar, vif, wow, filter); ath6kl_wow_suspend_vif()
2148 else if (vif->nw_type == AP_NETWORK) ath6kl_wow_suspend_vif()
2149 ret = ath6kl_wow_ap(ar, vif); ath6kl_wow_suspend_vif()
2151 ret = ath6kl_wow_sta(ar, vif); ath6kl_wow_suspend_vif()
2156 netif_stop_queue(vif->ndev); ath6kl_wow_suspend_vif()
2158 if (vif->nw_type != AP_NETWORK) { ath6kl_wow_suspend_vif()
2159 ret = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wow_suspend_vif()
2170 ret = ath6kl_wmi_bmisstime_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wow_suspend_vif()
2175 ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wow_suspend_vif()
2183 in_dev = __in_dev_get_rtnl(vif->ndev); ath6kl_wow_suspend_vif()
2202 ret = ath6kl_wmi_set_ip_cmd(ar->wmi, vif->fw_vif_idx, ips[0], ips[1]); ath6kl_wow_suspend_vif()
2213 struct ath6kl_vif *first_vif, *vif; ath6kl_wow_suspend() local
2218 /* enter / leave wow suspend on first vif always */ ath6kl_wow_suspend()
2227 /* install filters for each connected vif */ ath6kl_wow_suspend()
2229 list_for_each_entry(vif, &ar->vif_list, list) { ath6kl_wow_suspend()
2230 if (!test_bit(CONNECTED, &vif->flags) || ath6kl_wow_suspend()
2231 !ath6kl_cfg80211_ready(vif)) ath6kl_wow_suspend()
2235 ret = ath6kl_wow_suspend_vif(vif, wow, &filter); ath6kl_wow_suspend()
2258 static int ath6kl_wow_resume_vif(struct ath6kl_vif *vif) ath6kl_wow_resume_vif() argument
2260 struct ath6kl *ar = vif->ar; ath6kl_wow_resume_vif()
2263 if (vif->nw_type != AP_NETWORK) { ath6kl_wow_resume_vif()
2264 ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wow_resume_vif()
2269 ret = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wow_resume_vif()
2270 vif->listen_intvl_t, 0); ath6kl_wow_resume_vif()
2274 ret = ath6kl_wmi_bmisstime_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wow_resume_vif()
2275 vif->bmiss_time_t, 0); ath6kl_wow_resume_vif()
2280 if (!test_bit(NETDEV_MCAST_ALL_OFF, &vif->flags) && ath6kl_wow_resume_vif()
2283 ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, ath6kl_wow_resume_vif()
2284 vif->fw_vif_idx, true); ath6kl_wow_resume_vif()
2289 netif_wake_queue(vif->ndev); ath6kl_wow_resume_vif()
2296 struct ath6kl_vif *vif; ath6kl_wow_resume() local
2299 vif = ath6kl_vif_first(ar); ath6kl_wow_resume()
2300 if (WARN_ON(unlikely(!vif)) || ath6kl_wow_resume()
2301 !ath6kl_cfg80211_ready(vif)) ath6kl_wow_resume()
2306 ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wow_resume()
2315 list_for_each_entry(vif, &ar->vif_list, list) { ath6kl_wow_resume()
2316 if (!test_bit(CONNECTED, &vif->flags) || ath6kl_wow_resume()
2317 !ath6kl_cfg80211_ready(vif)) ath6kl_wow_resume()
2319 ret = ath6kl_wow_resume_vif(vif); ath6kl_wow_resume()
2338 struct ath6kl_vif *vif; ath6kl_cfg80211_deepsleep_suspend() local
2341 vif = ath6kl_vif_first(ar); ath6kl_cfg80211_deepsleep_suspend()
2342 if (!vif) ath6kl_cfg80211_deepsleep_suspend()
2360 ret = ath6kl_wmi_set_wow_mode_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_deepsleep_suspend()
2369 ret = ath6kl_cfg80211_host_sleep(ar, vif); ath6kl_cfg80211_deepsleep_suspend()
2378 struct ath6kl_vif *vif; ath6kl_cfg80211_deepsleep_resume() local
2381 vif = ath6kl_vif_first(ar); ath6kl_cfg80211_deepsleep_resume()
2383 if (!vif) ath6kl_cfg80211_deepsleep_resume()
2393 ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_deepsleep_resume()
2401 ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_deepsleep_resume()
2413 struct ath6kl_vif *vif; ath6kl_cfg80211_suspend() local
2476 list_for_each_entry(vif, &ar->vif_list, list) ath6kl_cfg80211_suspend()
2477 ath6kl_cfg80211_scan_complete_event(vif, true); ath6kl_cfg80211_suspend()
2586 static int ath6kl_set_htcap(struct ath6kl_vif *vif, enum ieee80211_band band, ath6kl_set_htcap() argument
2589 struct ath6kl_htcap *htcap = &vif->htcap[band]; ath6kl_set_htcap()
2603 return ath6kl_wmi_set_htcap_cmd(vif->ar->wmi, vif->fw_vif_idx, ath6kl_set_htcap()
2607 static int ath6kl_restore_htcap(struct ath6kl_vif *vif) ath6kl_restore_htcap() argument
2609 struct wiphy *wiphy = vif->ar->wiphy; ath6kl_restore_htcap()
2616 ret = ath6kl_set_htcap(vif, band, ath6kl_restore_htcap()
2632 static int ath6kl_set_ap_probe_resp_ies(struct ath6kl_vif *vif, ath6kl_set_ap_probe_resp_ies() argument
2635 struct ath6kl *ar = vif->ar; ath6kl_set_ap_probe_resp_ies()
2662 ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_set_ap_probe_resp_ies()
2668 static int ath6kl_set_ies(struct ath6kl_vif *vif, ath6kl_set_ies() argument
2671 struct ath6kl *ar = vif->ar; ath6kl_set_ies()
2675 res = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_set_ies()
2683 res = ath6kl_set_ap_probe_resp_ies(vif, info->proberesp_ies, ath6kl_set_ies()
2689 res = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_set_ies()
2755 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_start_ap() local
2768 if (!ath6kl_cfg80211_ready(vif)) ath6kl_start_ap()
2771 if (vif->next_mode != AP_NETWORK) ath6kl_start_ap()
2774 res = ath6kl_set_ies(vif, &info->beacon); ath6kl_start_ap()
2778 ret = ath6kl_wmi_ap_set_beacon_intvl_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_start_ap()
2784 ret = ath6kl_wmi_ap_set_dtim_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_start_ap()
2801 memcpy(vif->ssid, info->ssid, info->ssid_len); ath6kl_start_ap()
2802 vif->ssid_len = info->ssid_len; ath6kl_start_ap()
2806 res = ath6kl_wmi_ap_hidden_ssid(ar->wmi, vif->fw_vif_idx, hidden); ath6kl_start_ap()
2810 ret = ath6kl_set_auth_type(vif, info->auth_type); ath6kl_start_ap()
2834 vif->auth_mode = p.auth_mode; ath6kl_start_ap()
2855 ath6kl_set_cipher(vif, 0, true); ath6kl_start_ap()
2857 ath6kl_set_cipher(vif, info->crypto.ciphers_pairwise[0], true); ath6kl_start_ap()
2878 ath6kl_set_cipher(vif, info->crypto.cipher_group, false); ath6kl_start_ap()
2881 vif->nw_type = vif->next_mode; ath6kl_start_ap()
2883 p.ssid_len = vif->ssid_len; ath6kl_start_ap()
2884 memcpy(p.ssid, vif->ssid, vif->ssid_len); ath6kl_start_ap()
2885 p.dot11_auth_mode = vif->dot11_auth_mode; ath6kl_start_ap()
2889 res = ath6kl_wmi_ap_set_apsd(ar->wmi, vif->fw_vif_idx, true); ath6kl_start_ap()
2893 if (vif->wdev.iftype == NL80211_IFTYPE_P2P_GO) { ath6kl_start_ap()
2911 res = ath6kl_wmi_set_inact_period(ar->wmi, vif->fw_vif_idx, ath6kl_start_ap()
2917 if (ath6kl_set_htcap(vif, info->chandef.chan->band, ath6kl_start_ap()
2931 res = ath6kl_wmi_set_ie_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_start_ap()
2935 vif->rsn_capab = rsn_capab; ath6kl_start_ap()
2940 memcpy(&vif->profile, &p, sizeof(p)); ath6kl_start_ap()
2941 res = ath6kl_wmi_ap_profile_commit(ar->wmi, vif->fw_vif_idx, &p); ath6kl_start_ap()
2951 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_change_beacon() local
2953 if (!ath6kl_cfg80211_ready(vif)) ath6kl_change_beacon()
2956 if (vif->next_mode != AP_NETWORK) ath6kl_change_beacon()
2959 return ath6kl_set_ies(vif, beacon); ath6kl_change_beacon()
2965 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_stop_ap() local
2967 if (vif->nw_type != AP_NETWORK) ath6kl_stop_ap()
2969 if (!test_bit(CONNECTED, &vif->flags)) ath6kl_stop_ap()
2972 ath6kl_wmi_disconnect_cmd(ar->wmi, vif->fw_vif_idx); ath6kl_stop_ap()
2973 clear_bit(CONNECTED, &vif->flags); ath6kl_stop_ap()
2976 return ath6kl_restore_htcap(vif); ath6kl_stop_ap()
2985 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_del_station() local
2988 return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx, WMI_AP_DEAUTH, ath6kl_del_station()
2997 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_change_station() local
3000 if (vif->nw_type != AP_NETWORK) ath6kl_change_station()
3009 return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx, ath6kl_change_station()
3011 return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx, ath6kl_change_station()
3021 struct ath6kl_vif *vif = ath6kl_vif_from_wdev(wdev); ath6kl_remain_on_channel() local
3022 struct ath6kl *ar = ath6kl_priv(vif->ndev); ath6kl_remain_on_channel()
3027 id = ++vif->last_roc_id; ath6kl_remain_on_channel()
3030 id = ++vif->last_roc_id; ath6kl_remain_on_channel()
3034 return ath6kl_wmi_remain_on_chnl_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_remain_on_channel()
3042 struct ath6kl_vif *vif = ath6kl_vif_from_wdev(wdev); ath6kl_cancel_remain_on_channel() local
3043 struct ath6kl *ar = ath6kl_priv(vif->ndev); ath6kl_cancel_remain_on_channel()
3045 if (cookie != vif->last_roc_id) ath6kl_cancel_remain_on_channel()
3047 vif->last_cancel_roc_id = cookie; ath6kl_cancel_remain_on_channel()
3049 return ath6kl_wmi_cancel_remain_on_chnl_cmd(ar->wmi, vif->fw_vif_idx); ath6kl_cancel_remain_on_channel()
3052 static int ath6kl_send_go_probe_resp(struct ath6kl_vif *vif, ath6kl_send_go_probe_resp() argument
3056 struct ath6kl *ar = vif->ar; ath6kl_send_go_probe_resp()
3083 ret = ath6kl_wmi_send_probe_response_cmd(ar->wmi, vif->fw_vif_idx, freq, ath6kl_send_go_probe_resp()
3089 static bool ath6kl_mgmt_powersave_ap(struct ath6kl_vif *vif, ath6kl_mgmt_powersave_ap() argument
3103 struct ath6kl *ar = vif->ar; ath6kl_mgmt_powersave_ap()
3109 conn = ath6kl_find_sta(vif, mgmt->da); ath6kl_mgmt_powersave_ap()
3141 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_mgmt_powersave_ap()
3177 struct ath6kl_vif *vif = ath6kl_vif_from_wdev(wdev); ath6kl_mgmt_tx() local
3178 struct ath6kl *ar = ath6kl_priv(vif->ndev); ath6kl_mgmt_tx()
3191 freq = vif->ch_hint; ath6kl_mgmt_tx()
3200 if (vif->nw_type == AP_NETWORK && test_bit(CONNECTED, &vif->flags) && ath6kl_mgmt_tx()
3208 return ath6kl_send_go_probe_resp(vif, buf, len, freq); ath6kl_mgmt_tx()
3211 id = vif->send_action_id++; ath6kl_mgmt_tx()
3217 id = vif->send_action_id++; ath6kl_mgmt_tx()
3223 if (vif->nw_type == AP_NETWORK) { ath6kl_mgmt_tx()
3224 queued = ath6kl_mgmt_powersave_ap(vif, id, freq, wait, buf, len, ath6kl_mgmt_tx()
3230 return ath6kl_wmi_send_mgmt_cmd(ar->wmi, vif->fw_vif_idx, id, freq, ath6kl_mgmt_tx()
3238 struct ath6kl_vif *vif = ath6kl_vif_from_wdev(wdev); ath6kl_mgmt_frame_register() local
3248 vif->probe_req_report = reg; ath6kl_mgmt_frame_register()
3257 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_sscan_start() local
3273 if (vif->sme_state != SME_DISCONNECTED) ath6kl_cfg80211_sscan_start()
3276 ath6kl_cfg80211_scan_complete_event(vif, true); ath6kl_cfg80211_sscan_start()
3278 ret = ath6kl_set_probed_ssids(ar, vif, request->ssids, ath6kl_cfg80211_sscan_start()
3286 ret = ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_sscan_start()
3291 ret = ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_sscan_start()
3306 ret = ath6kl_wmi_set_rssi_filter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_sscan_start()
3317 ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_sscan_start()
3319 vif->bg_scan_period, 0, 0, 0, 3, 0, 0, 0); ath6kl_cfg80211_sscan_start()
3322 ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_sscan_start()
3331 ret = ath6kl_wmi_enable_sched_scan_cmd(ar->wmi, vif->fw_vif_idx, true); ath6kl_cfg80211_sscan_start()
3335 set_bit(SCHED_SCANNING, &vif->flags); ath6kl_cfg80211_sscan_start()
3343 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_sscan_stop() local
3346 stopped = __ath6kl_cfg80211_sscan_stop(vif); ath6kl_cfg80211_sscan_stop()
3360 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_set_bitrate() local
3362 return ath6kl_wmi_set_bitrate_mask(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_set_bitrate()
3371 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_cfg80211_set_txe_config() local
3373 if (vif->nw_type != INFRA_NETWORK || ath6kl_cfg80211_set_txe_config()
3377 if (vif->sme_state != SME_CONNECTED) ath6kl_cfg80211_set_txe_config()
3381 vif->txe_intvl = intvl; ath6kl_cfg80211_set_txe_config()
3383 return ath6kl_wmi_set_txe_notify(ar->wmi, vif->fw_vif_idx, ath6kl_cfg80211_set_txe_config()
3456 void ath6kl_cfg80211_stop(struct ath6kl_vif *vif) ath6kl_cfg80211_stop() argument
3458 ath6kl_cfg80211_sscan_disable(vif); ath6kl_cfg80211_stop()
3460 switch (vif->sme_state) { ath6kl_cfg80211_stop()
3464 cfg80211_connect_result(vif->ndev, vif->bssid, NULL, 0, ath6kl_cfg80211_stop()
3470 cfg80211_disconnected(vif->ndev, 0, NULL, 0, GFP_KERNEL); ath6kl_cfg80211_stop()
3474 if (vif->ar->state != ATH6KL_STATE_RECOVERY && ath6kl_cfg80211_stop()
3475 (test_bit(CONNECTED, &vif->flags) || ath6kl_cfg80211_stop()
3476 test_bit(CONNECT_PEND, &vif->flags))) ath6kl_cfg80211_stop()
3477 ath6kl_wmi_disconnect_cmd(vif->ar->wmi, vif->fw_vif_idx); ath6kl_cfg80211_stop()
3479 vif->sme_state = SME_DISCONNECTED; ath6kl_cfg80211_stop()
3480 clear_bit(CONNECTED, &vif->flags); ath6kl_cfg80211_stop()
3481 clear_bit(CONNECT_PEND, &vif->flags); ath6kl_cfg80211_stop()
3484 netif_stop_queue(vif->ndev); ath6kl_cfg80211_stop()
3485 netif_carrier_off(vif->ndev); ath6kl_cfg80211_stop()
3488 if (vif->ar->state != ATH6KL_STATE_RECOVERY && ath6kl_cfg80211_stop()
3489 ath6kl_wmi_scanparams_cmd(vif->ar->wmi, vif->fw_vif_idx, 0xFFFF, ath6kl_cfg80211_stop()
3493 ath6kl_cfg80211_scan_complete_event(vif, true); ath6kl_cfg80211_stop()
3498 struct ath6kl_vif *vif; ath6kl_cfg80211_stop_all() local
3500 vif = ath6kl_vif_first(ar); ath6kl_cfg80211_stop_all()
3501 if (!vif && ar->state != ATH6KL_STATE_RECOVERY) { ath6kl_cfg80211_stop_all()
3515 list_for_each_entry(vif, &ar->vif_list, list) ath6kl_cfg80211_stop_all()
3516 ath6kl_cfg80211_stop(vif); ath6kl_cfg80211_stop_all()
3563 static int ath6kl_cfg80211_vif_init(struct ath6kl_vif *vif) ath6kl_cfg80211_vif_init() argument
3565 vif->aggr_cntxt = aggr_init(vif); ath6kl_cfg80211_vif_init()
3566 if (!vif->aggr_cntxt) { ath6kl_cfg80211_vif_init()
3571 setup_timer(&vif->disconnect_timer, disconnect_timer_handler, ath6kl_cfg80211_vif_init()
3572 (unsigned long) vif->ndev); ath6kl_cfg80211_vif_init()
3573 setup_timer(&vif->sched_scan_timer, ath6kl_wmi_sscan_timer, ath6kl_cfg80211_vif_init()
3574 (unsigned long) vif); ath6kl_cfg80211_vif_init()
3576 set_bit(WMM_ENABLED, &vif->flags); ath6kl_cfg80211_vif_init()
3577 spin_lock_init(&vif->if_lock); ath6kl_cfg80211_vif_init()
3579 INIT_LIST_HEAD(&vif->mc_filter); ath6kl_cfg80211_vif_init()
3584 void ath6kl_cfg80211_vif_stop(struct ath6kl_vif *vif, bool wmi_ready) ath6kl_cfg80211_vif_stop() argument
3589 netif_stop_queue(vif->ndev); ath6kl_cfg80211_vif_stop()
3591 clear_bit(WLAN_ENABLED, &vif->flags); ath6kl_cfg80211_vif_stop()
3594 discon_issued = test_bit(CONNECTED, &vif->flags) || ath6kl_cfg80211_vif_stop()
3595 test_bit(CONNECT_PEND, &vif->flags); ath6kl_cfg80211_vif_stop()
3596 ath6kl_disconnect(vif); ath6kl_cfg80211_vif_stop()
3597 del_timer(&vif->disconnect_timer); ath6kl_cfg80211_vif_stop()
3600 ath6kl_disconnect_event(vif, DISCONNECT_CMD, ath6kl_cfg80211_vif_stop()
3601 (vif->nw_type & AP_NETWORK) ? ath6kl_cfg80211_vif_stop()
3602 bcast_mac : vif->bssid, ath6kl_cfg80211_vif_stop()
3606 if (vif->scan_req) { ath6kl_cfg80211_vif_stop()
3607 cfg80211_scan_done(vif->scan_req, true); ath6kl_cfg80211_vif_stop()
3608 vif->scan_req = NULL; ath6kl_cfg80211_vif_stop()
3612 ath6kl_cfg80211_sta_bmiss_enhance(vif, false); ath6kl_cfg80211_vif_stop()
3615 void ath6kl_cfg80211_vif_cleanup(struct ath6kl_vif *vif) ath6kl_cfg80211_vif_cleanup() argument
3617 struct ath6kl *ar = vif->ar; ath6kl_cfg80211_vif_cleanup()
3620 aggr_module_destroy(vif->aggr_cntxt); ath6kl_cfg80211_vif_cleanup()
3622 ar->avail_idx_map |= BIT(vif->fw_vif_idx); ath6kl_cfg80211_vif_cleanup()
3624 if (vif->nw_type == ADHOC_NETWORK) ath6kl_cfg80211_vif_cleanup()
3627 list_for_each_entry_safe(mc_filter, tmp, &vif->mc_filter, list) { ath6kl_cfg80211_vif_cleanup()
3632 unregister_netdevice(vif->ndev); ath6kl_cfg80211_vif_cleanup()
3643 struct ath6kl_vif *vif; ath6kl_interface_add() local
3645 ndev = alloc_netdev(sizeof(*vif), name, name_assign_type, ether_setup); ath6kl_interface_add()
3649 vif = netdev_priv(ndev); ath6kl_interface_add()
3650 ndev->ieee80211_ptr = &vif->wdev; ath6kl_interface_add()
3651 vif->wdev.wiphy = ar->wiphy; ath6kl_interface_add()
3652 vif->ar = ar; ath6kl_interface_add()
3653 vif->ndev = ndev; ath6kl_interface_add()
3654 SET_NETDEV_DEV(ndev, wiphy_dev(vif->wdev.wiphy)); ath6kl_interface_add()
3655 vif->wdev.netdev = ndev; ath6kl_interface_add()
3656 vif->wdev.iftype = type; ath6kl_interface_add()
3657 vif->fw_vif_idx = fw_vif_idx; ath6kl_interface_add()
3658 vif->nw_type = nw_type; ath6kl_interface_add()
3659 vif->next_mode = nw_type; ath6kl_interface_add()
3660 vif->listen_intvl_t = ATH6KL_DEFAULT_LISTEN_INTVAL; ath6kl_interface_add()
3661 vif->bmiss_time_t = ATH6KL_DEFAULT_BMISS_TIME; ath6kl_interface_add()
3662 vif->bg_scan_period = 0; ath6kl_interface_add()
3663 vif->htcap[IEEE80211_BAND_2GHZ].ht_enable = true; ath6kl_interface_add()
3664 vif->htcap[IEEE80211_BAND_5GHZ].ht_enable = true; ath6kl_interface_add()
3677 ath6kl_init_control_info(vif); ath6kl_interface_add()
3679 if (ath6kl_cfg80211_vif_init(vif)) ath6kl_interface_add()
3686 vif->sme_state = SME_DISCONNECTED; ath6kl_interface_add()
3687 set_bit(WLAN_ENABLED, &vif->flags); ath6kl_interface_add()
3694 list_add_tail(&vif->list, &ar->vif_list); ath6kl_interface_add()
3697 return &vif->wdev; ath6kl_interface_add()
3700 aggr_module_destroy(vif->aggr_cntxt); ath6kl_interface_add()
909 ath6kl_set_probed_ssids(struct ath6kl *ar, struct ath6kl_vif *vif, struct cfg80211_ssid *ssids, int n_ssids, struct cfg80211_match_set *match_set, int n_match_ssid) ath6kl_set_probed_ssids() argument
H A Dmain.c26 struct ath6kl_sta *ath6kl_find_sta(struct ath6kl_vif *vif, u8 *node_addr) ath6kl_find_sta() argument
28 struct ath6kl *ar = vif->ar; ath6kl_find_sta()
35 max_conn = (vif->nw_type == AP_NETWORK) ? AP_MAX_NUM_STA : 0; ath6kl_find_sta()
61 static void ath6kl_add_new_sta(struct ath6kl_vif *vif, u8 *mac, u16 aid, ath6kl_add_new_sta() argument
65 struct ath6kl *ar = vif->ar; ath6kl_add_new_sta()
83 aggr_conn_init(vif, vif->aggr_cntxt, sta->aggr_conn); ath6kl_add_new_sta()
351 static void ath6kl_install_static_wep_keys(struct ath6kl_vif *vif) ath6kl_install_static_wep_keys() argument
357 if (vif->wep_key_list[index].key_len) { ath6kl_install_static_wep_keys()
359 if (index == vif->def_txkey_index) ath6kl_install_static_wep_keys()
362 ath6kl_wmi_addkey_cmd(vif->ar->wmi, vif->fw_vif_idx, ath6kl_install_static_wep_keys()
366 vif->wep_key_list[index].key_len, ath6kl_install_static_wep_keys()
368 vif->wep_key_list[index].key, ath6kl_install_static_wep_keys()
375 void ath6kl_connect_ap_mode_bss(struct ath6kl_vif *vif, u16 channel) ath6kl_connect_ap_mode_bss() argument
377 struct ath6kl *ar = vif->ar; ath6kl_connect_ap_mode_bss()
386 switch (vif->auth_mode) { ath6kl_connect_ap_mode_bss()
388 if (vif->prwise_crypto == WEP_CRYPT) ath6kl_connect_ap_mode_bss()
389 ath6kl_install_static_wep_keys(vif); ath6kl_connect_ap_mode_bss()
403 ar->wmi, vif->fw_vif_idx, ik->key_index, ik->key_type, ath6kl_connect_ap_mode_bss()
416 ath6kl_cfg80211_ch_switch_notify(vif, channel, WMI_11G_HT20); ath6kl_connect_ap_mode_bss()
418 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, NONE_BSS_FILTER, 0); ath6kl_connect_ap_mode_bss()
419 set_bit(CONNECTED, &vif->flags); ath6kl_connect_ap_mode_bss()
420 netif_carrier_on(vif->ndev); ath6kl_connect_ap_mode_bss()
423 void ath6kl_connect_ap_mode_sta(struct ath6kl_vif *vif, u16 aid, u8 *mac_addr, ath6kl_connect_ap_mode_sta() argument
480 ath6kl_add_new_sta(vif, mac_addr, aid, wpa_ie, ath6kl_connect_ap_mode_sta()
492 cfg80211_new_sta(vif->ndev, mac_addr, &sinfo, GFP_KERNEL); ath6kl_connect_ap_mode_sta()
494 netif_wake_queue(vif->ndev); ath6kl_connect_ap_mode_sta()
500 struct ath6kl_vif *vif = netdev_priv(dev); disconnect_timer_handler() local
502 ath6kl_init_profile_info(vif); disconnect_timer_handler()
503 ath6kl_disconnect(vif); disconnect_timer_handler()
506 void ath6kl_disconnect(struct ath6kl_vif *vif) ath6kl_disconnect() argument
508 if (test_bit(CONNECTED, &vif->flags) || ath6kl_disconnect()
509 test_bit(CONNECT_PEND, &vif->flags)) { ath6kl_disconnect()
510 ath6kl_wmi_disconnect_cmd(vif->ar->wmi, vif->fw_vif_idx); ath6kl_disconnect()
516 clear_bit(CONNECT_PEND, &vif->flags); ath6kl_disconnect()
552 void ath6kl_scan_complete_evt(struct ath6kl_vif *vif, int status) ath6kl_scan_complete_evt() argument
554 struct ath6kl *ar = vif->ar; ath6kl_scan_complete_evt()
560 ath6kl_cfg80211_scan_complete_event(vif, aborted); ath6kl_scan_complete_evt()
563 clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags); ath6kl_scan_complete_evt()
564 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_scan_complete_evt()
571 static int ath6kl_commit_ch_switch(struct ath6kl_vif *vif, u16 channel) ath6kl_commit_ch_switch() argument
573 struct ath6kl *ar = vif->ar; ath6kl_commit_ch_switch()
575 vif->profile.ch = cpu_to_le16(channel); ath6kl_commit_ch_switch()
577 switch (vif->nw_type) { ath6kl_commit_ch_switch()
583 if (vif->rsn_capab && ath6kl_commit_ch_switch()
586 ath6kl_wmi_set_ie_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_commit_ch_switch()
588 (const u8 *) &vif->rsn_capab, ath6kl_commit_ch_switch()
589 sizeof(vif->rsn_capab)); ath6kl_commit_ch_switch()
591 return ath6kl_wmi_ap_profile_commit(ar->wmi, vif->fw_vif_idx, ath6kl_commit_ch_switch()
592 &vif->profile); ath6kl_commit_ch_switch()
594 ath6kl_err("won't switch channels nw_type=%d\n", vif->nw_type); ath6kl_commit_ch_switch()
601 struct ath6kl_vif *vif; ath6kl_check_ch_switch() local
608 list_for_each_entry(vif, &ar->vif_list, list) { ath6kl_check_ch_switch()
609 if (ar->want_ch_switch & (1 << vif->fw_vif_idx)) ath6kl_check_ch_switch()
610 res = ath6kl_commit_ch_switch(vif, channel); ath6kl_check_ch_switch()
613 ar->want_ch_switch &= ~(1 << vif->fw_vif_idx); ath6kl_check_ch_switch()
617 vif->nw_type, res); ath6kl_check_ch_switch()
622 void ath6kl_connect_event(struct ath6kl_vif *vif, u16 channel, u8 *bssid, ath6kl_connect_event() argument
628 struct ath6kl *ar = vif->ar; ath6kl_connect_event()
630 ath6kl_cfg80211_connect_event(vif, channel, bssid, ath6kl_connect_event()
636 memcpy(vif->bssid, bssid, sizeof(vif->bssid)); ath6kl_connect_event()
637 vif->bss_ch = channel; ath6kl_connect_event()
639 if ((vif->nw_type == INFRA_NETWORK)) { ath6kl_connect_event()
640 ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_connect_event()
641 vif->listen_intvl_t, 0); ath6kl_connect_event()
645 netif_wake_queue(vif->ndev); ath6kl_connect_event()
648 spin_lock_bh(&vif->if_lock); ath6kl_connect_event()
649 set_bit(CONNECTED, &vif->flags); ath6kl_connect_event()
650 clear_bit(CONNECT_PEND, &vif->flags); ath6kl_connect_event()
651 netif_carrier_on(vif->ndev); ath6kl_connect_event()
652 spin_unlock_bh(&vif->if_lock); ath6kl_connect_event()
654 aggr_reset_state(vif->aggr_cntxt->aggr_conn); ath6kl_connect_event()
655 vif->reconnect_flag = 0; ath6kl_connect_event()
657 if ((vif->nw_type == ADHOC_NETWORK) && ar->ibss_ps_enable) { ath6kl_connect_event()
664 set_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags); ath6kl_connect_event()
665 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_connect_event()
670 void ath6kl_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid, bool ismcast) ath6kl_tkip_micerr_event() argument
673 struct ath6kl *ar = vif->ar; ath6kl_tkip_micerr_event()
680 if (vif->nw_type == AP_NETWORK) { ath6kl_tkip_micerr_event()
689 cfg80211_michael_mic_failure(vif->ndev, sta->mac, ath6kl_tkip_micerr_event()
693 ath6kl_cfg80211_tkip_micerr_event(vif, keyid, ismcast); ath6kl_tkip_micerr_event()
697 static void ath6kl_update_target_stats(struct ath6kl_vif *vif, u8 *ptr, u32 len) ath6kl_update_target_stats() argument
701 struct ath6kl *ar = vif->ar; ath6kl_update_target_stats()
702 struct target_stats *stats = &vif->target_stats; ath6kl_update_target_stats()
805 if (test_bit(STATS_UPDATE_PEND, &vif->flags)) { ath6kl_update_target_stats()
806 clear_bit(STATS_UPDATE_PEND, &vif->flags); ath6kl_update_target_stats()
816 void ath6kl_tgt_stats_event(struct ath6kl_vif *vif, u8 *ptr, u32 len) ath6kl_tgt_stats_event() argument
819 struct ath6kl *ar = vif->ar; ath6kl_tgt_stats_event()
824 if (vif->nw_type == AP_NETWORK) { ath6kl_tgt_stats_event()
843 ath6kl_update_target_stats(vif, ptr, len); ath6kl_tgt_stats_event()
862 void ath6kl_pspoll_event(struct ath6kl_vif *vif, u8 aid) ath6kl_pspoll_event() argument
867 struct ath6kl *ar = vif->ar; ath6kl_pspoll_event()
895 ath6kl_wmi_send_mgmt_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_pspoll_event()
906 ath6kl_data_tx(skb, vif->ndev); ath6kl_pspoll_event()
915 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, conn->aid, 0); ath6kl_pspoll_event()
918 void ath6kl_dtimexpiry_event(struct ath6kl_vif *vif) ath6kl_dtimexpiry_event() argument
922 struct ath6kl *ar = vif->ar; ath6kl_dtimexpiry_event()
944 set_bit(DTIM_EXPIRED, &vif->flags); ath6kl_dtimexpiry_event()
950 ath6kl_data_tx(skb, vif->ndev); ath6kl_dtimexpiry_event()
956 clear_bit(DTIM_EXPIRED, &vif->flags); ath6kl_dtimexpiry_event()
959 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, MCAST_AID, 0); ath6kl_dtimexpiry_event()
962 void ath6kl_disconnect_event(struct ath6kl_vif *vif, u8 reason, u8 *bssid, ath6kl_disconnect_event() argument
966 struct ath6kl *ar = vif->ar; ath6kl_disconnect_event()
968 if (vif->nw_type == AP_NETWORK) { ath6kl_disconnect_event()
969 /* disconnect due to other STA vif switching channels */ ath6kl_disconnect_event()
972 ar->want_ch_switch |= 1 << vif->fw_vif_idx; ath6kl_disconnect_event()
973 /* bail back to this channel if STA vif fails connect */ ath6kl_disconnect_event()
974 ar->last_ch = le16_to_cpu(vif->profile.ch); ath6kl_disconnect_event()
979 cfg80211_conn_failed(vif->ndev, bssid, ath6kl_disconnect_event()
986 cfg80211_conn_failed(vif->ndev, bssid, ath6kl_disconnect_event()
1002 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_disconnect_event()
1008 cfg80211_del_sta(vif->ndev, bssid, GFP_KERNEL); ath6kl_disconnect_event()
1011 if (memcmp(vif->ndev->dev_addr, bssid, ETH_ALEN) == 0) { ath6kl_disconnect_event()
1012 memset(vif->wep_key_list, 0, sizeof(vif->wep_key_list)); ath6kl_disconnect_event()
1013 clear_bit(CONNECTED, &vif->flags); ath6kl_disconnect_event()
1018 ath6kl_cfg80211_disconnect_event(vif, reason, bssid, ath6kl_disconnect_event()
1022 aggr_reset_state(vif->aggr_cntxt->aggr_conn); ath6kl_disconnect_event()
1024 del_timer(&vif->disconnect_timer); ath6kl_disconnect_event()
1035 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_disconnect_event()
1038 set_bit(CONNECT_PEND, &vif->flags); ath6kl_disconnect_event()
1042 (vif->reconnect_flag == 1))) { ath6kl_disconnect_event()
1043 set_bit(CONNECTED, &vif->flags); ath6kl_disconnect_event()
1052 spin_lock_bh(&vif->if_lock); ath6kl_disconnect_event()
1053 clear_bit(CONNECTED, &vif->flags); ath6kl_disconnect_event()
1054 netif_carrier_off(vif->ndev); ath6kl_disconnect_event()
1055 spin_unlock_bh(&vif->if_lock); ath6kl_disconnect_event()
1057 if ((reason != CSERV_DISCONNECT) || (vif->reconnect_flag != 1)) ath6kl_disconnect_event()
1058 vif->reconnect_flag = 0; ath6kl_disconnect_event()
1063 netif_stop_queue(vif->ndev); ath6kl_disconnect_event()
1064 memset(vif->bssid, 0, sizeof(vif->bssid)); ath6kl_disconnect_event()
1065 vif->bss_ch = 0; ath6kl_disconnect_event()
1072 struct ath6kl_vif *vif; ath6kl_vif_first() local
1080 vif = list_first_entry(&ar->vif_list, struct ath6kl_vif, list); ath6kl_vif_first()
1084 return vif; ath6kl_vif_first()
1089 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_open() local
1091 set_bit(WLAN_ENABLED, &vif->flags); ath6kl_open()
1093 if (test_bit(CONNECTED, &vif->flags)) { ath6kl_open()
1105 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_close() local
1109 ath6kl_cfg80211_stop(vif); ath6kl_close()
1111 clear_bit(WLAN_ENABLED, &vif->flags); ath6kl_close()
1118 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_get_stats() local
1120 return &vif->net_stats; ath6kl_get_stats()
1126 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_set_features() local
1127 struct ath6kl *ar = vif->ar; ath6kl_set_features()
1134 vif->fw_vif_idx, ath6kl_set_features()
1144 vif->fw_vif_idx, ath6kl_set_features()
1157 struct ath6kl_vif *vif = netdev_priv(ndev); ath6kl_set_multicast_list() local
1166 if (!test_bit(WMI_READY, &vif->ar->flag) || ath6kl_set_multicast_list()
1167 !test_bit(WLAN_ENABLED, &vif->flags)) ath6kl_set_multicast_list()
1176 set_bit(NETDEV_MCAST_ALL_ON, &vif->flags); ath6kl_set_multicast_list()
1178 clear_bit(NETDEV_MCAST_ALL_ON, &vif->flags); ath6kl_set_multicast_list()
1181 vif->ar->fw_capabilities)) { ath6kl_set_multicast_list()
1182 mc_all_on = mc_all_on || (vif->ar->state == ATH6KL_STATE_ON); ath6kl_set_multicast_list()
1187 set_bit(NETDEV_MCAST_ALL_OFF, &vif->flags); ath6kl_set_multicast_list()
1189 clear_bit(NETDEV_MCAST_ALL_OFF, &vif->flags); ath6kl_set_multicast_list()
1196 ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, vif->fw_vif_idx, ath6kl_set_multicast_list()
1204 if (test_bit(NETDEV_MCAST_ALL_ON, &vif->flags)) ath6kl_set_multicast_list()
1208 list_for_each_entry_safe(mc_filter, tmp, &vif->mc_filter, list) { ath6kl_set_multicast_list()
1226 ret = ath6kl_wmi_add_del_mcast_filter_cmd(vif->ar->wmi,
1227 vif->fw_vif_idx, mc_filter->hw_addr,
1244 list_for_each_entry(mc_filter, &vif->mc_filter, list) { netdev_for_each_mc_addr()
1266 ret = ath6kl_wmi_add_del_mcast_filter_cmd(vif->ar->wmi, netdev_for_each_mc_addr()
1267 vif->fw_vif_idx, mc_filter->hw_addr, netdev_for_each_mc_addr()
1281 list_splice_tail(&mc_filter_new, &vif->mc_filter);
H A Dcfg80211.h31 void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq,
33 void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted);
35 void ath6kl_cfg80211_connect_event(struct ath6kl_vif *vif, u16 channel,
42 void ath6kl_cfg80211_disconnect_event(struct ath6kl_vif *vif, u8 reason,
46 void ath6kl_cfg80211_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid,
55 void ath6kl_cfg80211_vif_cleanup(struct ath6kl_vif *vif);
57 void ath6kl_cfg80211_stop(struct ath6kl_vif *vif);
H A Dtxrx.c103 struct ath6kl_vif *vif, ath6kl_process_uapsdq()
107 struct ath6kl *ar = vif->ar; ath6kl_process_uapsdq()
132 if (test_bit(WMM_ENABLED, &vif->flags)) { ath6kl_process_uapsdq()
167 vif->fw_vif_idx, ath6kl_process_uapsdq()
176 struct ath6kl_vif *vif, ath6kl_process_psq()
181 struct ath6kl *ar = vif->ar; ath6kl_process_psq()
204 vif->fw_vif_idx, ath6kl_process_psq()
209 static bool ath6kl_powersave_ap(struct ath6kl_vif *vif, struct sk_buff *skb, ath6kl_powersave_ap() argument
215 struct ath6kl *ar = vif->ar; ath6kl_powersave_ap()
233 if (!test_bit(DTIM_EXPIRED, &vif->flags)) { ath6kl_powersave_ap()
249 vif->fw_vif_idx, ath6kl_powersave_ap()
265 conn = ath6kl_find_sta(vif, datap->h_dest); ath6kl_powersave_ap()
275 vif, skb, flags); ath6kl_powersave_ap()
278 vif, skb, flags); ath6kl_powersave_ap()
361 struct ath6kl_vif *vif = netdev_priv(dev); ath6kl_data_tx() local
378 if (!test_bit(CONNECTED, &vif->flags)) ath6kl_data_tx()
388 if (vif->nw_type == AP_NETWORK) { ath6kl_data_tx()
389 if (ath6kl_powersave_ap(vif, skb, &flags)) ath6kl_data_tx()
408 vif->net_stats.tx_dropped++; ath6kl_data_tx()
435 meta, vif->fw_vif_idx); ath6kl_data_tx()
443 if ((vif->nw_type == ADHOC_NETWORK) && ath6kl_data_tx()
444 ar->ibss_ps_enable && test_bit(CONNECTED, &vif->flags)) ath6kl_data_tx()
449 vif->fw_vif_idx, skb, ath6kl_data_tx()
450 0, test_bit(WMM_ENABLED, &vif->flags), &ac); ath6kl_data_tx()
523 vif->net_stats.tx_dropped++; ath6kl_data_tx()
524 vif->net_stats.tx_aborted_errors++; ath6kl_data_tx()
595 struct ath6kl_vif *vif; ath6kl_tx_queue_full() local
631 list_for_each_entry(vif, &ar->vif_list, list) { ath6kl_tx_queue_full()
632 if (vif->nw_type == ADHOC_NETWORK || ath6kl_tx_queue_full()
636 set_bit(NETQ_STOPPED, &vif->flags); ath6kl_tx_queue_full()
637 netif_stop_queue(vif->ndev); ath6kl_tx_queue_full()
648 static void ath6kl_tx_clear_node_map(struct ath6kl_vif *vif, ath6kl_tx_clear_node_map() argument
651 struct ath6kl *ar = vif->ar; ath6kl_tx_clear_node_map()
654 if (vif->nw_type != ADHOC_NETWORK) ath6kl_tx_clear_node_map()
699 struct ath6kl_vif *vif; ath6kl_tx_complete() local
759 vif = ath6kl_get_vif_by_index(ar, if_idx); ath6kl_tx_complete()
760 if (!vif) { ath6kl_tx_complete()
770 vif->net_stats.tx_errors++; ath6kl_tx_complete()
786 vif->net_stats.tx_packets++; ath6kl_tx_complete()
787 vif->net_stats.tx_bytes += skb->len; ath6kl_tx_complete()
790 ath6kl_tx_clear_node_map(vif, eid, map_no); ath6kl_tx_complete()
794 if (test_bit(NETQ_STOPPED, &vif->flags)) ath6kl_tx_complete()
795 clear_bit(NETQ_STOPPED, &vif->flags); ath6kl_tx_complete()
804 list_for_each_entry(vif, &ar->vif_list, list) { ath6kl_tx_complete()
805 if (test_bit(CONNECTED, &vif->flags) && ath6kl_tx_complete()
806 !flushing[vif->fw_vif_idx]) { ath6kl_tx_complete()
808 netif_wake_queue(vif->ndev); ath6kl_tx_complete()
1237 static void ath6kl_uapsd_trigger_frame_rx(struct ath6kl_vif *vif, ath6kl_uapsd_trigger_frame_rx() argument
1240 struct ath6kl *ar = vif->ar; ath6kl_uapsd_trigger_frame_rx()
1287 ath6kl_data_tx(skb, vif->ndev); ath6kl_uapsd_trigger_frame_rx()
1299 vif->fw_vif_idx, ath6kl_uapsd_trigger_frame_rx()
1322 struct ath6kl_vif *vif; ath6kl_rx() local
1356 vif = ath6kl_get_vif_by_index(ar, if_idx); ath6kl_rx()
1357 if (!vif) { ath6kl_rx()
1366 spin_lock_bh(&vif->if_lock); ath6kl_rx()
1368 vif->net_stats.rx_packets++; ath6kl_rx()
1369 vif->net_stats.rx_bytes += packet->act_len; ath6kl_rx()
1371 spin_unlock_bh(&vif->if_lock); ath6kl_rx()
1373 skb->dev = vif->ndev; ath6kl_rx()
1378 ath6kl_deliver_frames_to_nw_stack(vif->ndev, skb); ath6kl_rx()
1394 if (vif->nw_type != AP_NETWORK && ath6kl_rx()
1398 vif->net_stats.rx_errors++; ath6kl_rx()
1399 vif->net_stats.rx_length_errors++; ath6kl_rx()
1405 if (vif->nw_type == AP_NETWORK) { ath6kl_rx()
1428 conn = ath6kl_find_sta(vif, datap->h_source); ath6kl_rx()
1453 ath6kl_uapsd_trigger_frame_rx(vif, conn); ath6kl_rx()
1471 idx = vif->fw_vif_idx; ath6kl_rx()
1488 ath6kl_data_tx(skbuff, vif->ndev); ath6kl_rx()
1495 ath6kl_data_tx(skbuff, vif->ndev); ath6kl_rx()
1503 vif->fw_vif_idx, ath6kl_rx()
1507 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_rx()
1564 if (!(vif->ndev->flags & IFF_UP)) { ath6kl_rx()
1569 if (vif->nw_type == AP_NETWORK) { ath6kl_rx()
1584 conn = ath6kl_find_sta(vif, datap->h_dest); ath6kl_rx()
1595 ath6kl_data_tx(skb1, vif->ndev); ath6kl_rx()
1606 if (vif->nw_type == AP_NETWORK) { ath6kl_rx()
1607 conn = ath6kl_find_sta(vif, datap->h_source); ath6kl_rx()
1612 aggr_conn = vif->aggr_cntxt->aggr_conn; ath6kl_rx()
1621 vif->net_stats.multicast++; ath6kl_rx()
1624 ath6kl_deliver_frames_to_nw_stack(vif->ndev, skb); ath6kl_rx()
1702 void aggr_recv_addba_req_evt(struct ath6kl_vif *vif, u8 tid_mux, u16 seq_no, aggr_recv_addba_req_evt() argument
1712 if (vif->nw_type == AP_NETWORK) { aggr_recv_addba_req_evt()
1714 sta = ath6kl_find_sta_by_aid(vif->ar, aid); aggr_recv_addba_req_evt()
1718 aggr_conn = vif->aggr_cntxt->aggr_conn; aggr_recv_addba_req_evt()
1752 void aggr_conn_init(struct ath6kl_vif *vif, struct aggr_info *aggr_info, aggr_conn_init() argument
1759 aggr_conn->dev = vif->ndev; aggr_conn_init()
1776 struct aggr_info *aggr_init(struct ath6kl_vif *vif) aggr_init() argument
1793 aggr_conn_init(vif, p_aggr, p_aggr->aggr_conn); aggr_init()
1801 void aggr_recv_delba_req_evt(struct ath6kl_vif *vif, u8 tid_mux) aggr_recv_delba_req_evt() argument
1808 if (vif->nw_type == AP_NETWORK) { aggr_recv_delba_req_evt()
1810 sta = ath6kl_find_sta_by_aid(vif->ar, aid); aggr_recv_delba_req_evt()
1814 aggr_conn = vif->aggr_cntxt->aggr_conn; aggr_recv_delba_req_evt()
102 ath6kl_process_uapsdq(struct ath6kl_sta *conn, struct ath6kl_vif *vif, struct sk_buff *skb, u32 *flags) ath6kl_process_uapsdq() argument
175 ath6kl_process_psq(struct ath6kl_sta *conn, struct ath6kl_vif *vif, struct sk_buff *skb, u32 *flags) ath6kl_process_psq() argument
H A Dcore.h577 * Driver's maximum limit, note that some firmwares support only one vif
582 /* vif flags info */
604 /* Lock to protect vif specific net_stats and flags */
910 void ath6kl_init_profile_info(struct ath6kl_vif *vif);
917 struct aggr_info *aggr_init(struct ath6kl_vif *vif);
918 void aggr_conn_init(struct ath6kl_vif *vif, struct aggr_info *aggr_info,
929 struct ath6kl_sta *ath6kl_find_sta(struct ath6kl_vif *vif, u8 *node_addr);
936 void ath6kl_connect_event(struct ath6kl_vif *vif, u16 channel,
941 void ath6kl_connect_ap_mode_bss(struct ath6kl_vif *vif, u16 channel);
942 void ath6kl_connect_ap_mode_sta(struct ath6kl_vif *vif, u16 aid, u8 *mac_addr,
945 void ath6kl_disconnect_event(struct ath6kl_vif *vif, u8 reason,
948 void ath6kl_tkip_micerr_event(struct ath6kl_vif *vif, u8 keyid, bool ismcast);
950 void ath6kl_scan_complete_evt(struct ath6kl_vif *vif, int status);
951 void ath6kl_tgt_stats_event(struct ath6kl_vif *vif, u8 *ptr, u32 len);
955 void ath6kl_pspoll_event(struct ath6kl_vif *vif, u8 aid);
957 void ath6kl_dtimexpiry_event(struct ath6kl_vif *vif);
958 void ath6kl_disconnect(struct ath6kl_vif *vif);
959 void aggr_recv_delba_req_evt(struct ath6kl_vif *vif, u8 tid);
960 void aggr_recv_addba_req_evt(struct ath6kl_vif *vif, u8 tid, u16 seq_no,
964 void ath6kl_init_control_info(struct ath6kl_vif *vif);
966 void ath6kl_cfg80211_vif_stop(struct ath6kl_vif *vif, bool wmi_ready);
H A Dinit.c233 void ath6kl_init_profile_info(struct ath6kl_vif *vif) ath6kl_init_profile_info() argument
235 vif->ssid_len = 0; ath6kl_init_profile_info()
236 memset(vif->ssid, 0, sizeof(vif->ssid)); ath6kl_init_profile_info()
238 vif->dot11_auth_mode = OPEN_AUTH; ath6kl_init_profile_info()
239 vif->auth_mode = NONE_AUTH; ath6kl_init_profile_info()
240 vif->prwise_crypto = NONE_CRYPT; ath6kl_init_profile_info()
241 vif->prwise_crypto_len = 0; ath6kl_init_profile_info()
242 vif->grp_crypto = NONE_CRYPT; ath6kl_init_profile_info()
243 vif->grp_crypto_len = 0; ath6kl_init_profile_info()
244 memset(vif->wep_key_list, 0, sizeof(vif->wep_key_list)); ath6kl_init_profile_info()
245 memset(vif->req_bssid, 0, sizeof(vif->req_bssid)); ath6kl_init_profile_info()
246 memset(vif->bssid, 0, sizeof(vif->bssid)); ath6kl_init_profile_info()
247 vif->bss_ch = 0; ath6kl_init_profile_info()
403 void ath6kl_init_control_info(struct ath6kl_vif *vif) ath6kl_init_control_info() argument
405 ath6kl_init_profile_info(vif); ath6kl_init_control_info()
406 vif->def_txkey_index = 0; ath6kl_init_control_info()
407 memset(vif->wep_key_list, 0, sizeof(vif->wep_key_list)); ath6kl_init_control_info()
408 vif->ch_hint = 0; ath6kl_init_control_info()
563 * vif[0] - AP/STA/IBSS ath6kl_configure_target()
564 * vif[1] - "P2P dev"/"P2P GO"/"P2P Client" ath6kl_configure_target()
565 * vif[2] - "P2P dev"/"P2P GO"/"P2P Client" ath6kl_configure_target()
1109 "found vif max ie %d\n", ar->vif_max); ath6kl_fetch_fw_apin()
1864 struct ath6kl_vif *vif, *tmp_vif; ath6kl_stop_txrx() local
1878 list_for_each_entry_safe(vif, tmp_vif, &ar->vif_list, list) { ath6kl_stop_txrx()
1879 list_del(&vif->list); ath6kl_stop_txrx()
1881 ath6kl_cfg80211_vif_stop(vif, test_bit(WMI_READY, &ar->flag)); ath6kl_stop_txrx()
1883 ath6kl_cfg80211_vif_cleanup(vif); ath6kl_stop_txrx()
H A Dwmi.c138 struct ath6kl_vif *vif, *found = NULL; ath6kl_get_vif_by_index() local
145 list_for_each_entry(vif, &ar->vif_list, list) { ath6kl_get_vif_by_index()
146 if (vif->fw_vif_idx == if_idx) { ath6kl_get_vif_by_index()
147 found = vif; ath6kl_get_vif_by_index()
504 int len, struct ath6kl_vif *vif) ath6kl_wmi_remain_on_chnl_event_rx()
528 id = vif->last_roc_id; ath6kl_wmi_remain_on_chnl_event_rx()
529 cfg80211_ready_on_channel(&vif->wdev, id, chan, ath6kl_wmi_remain_on_chnl_event_rx()
537 struct ath6kl_vif *vif) ath6kl_wmi_cancel_remain_on_chnl_event_rx()
562 if (vif->last_cancel_roc_id && ath6kl_wmi_cancel_remain_on_chnl_event_rx()
563 vif->last_cancel_roc_id + 1 == vif->last_roc_id) ath6kl_wmi_cancel_remain_on_chnl_event_rx()
564 id = vif->last_cancel_roc_id; /* event for cancel command */ ath6kl_wmi_cancel_remain_on_chnl_event_rx()
566 id = vif->last_roc_id; /* timeout on uncanceled r-o-c */ ath6kl_wmi_cancel_remain_on_chnl_event_rx()
567 vif->last_cancel_roc_id = 0; ath6kl_wmi_cancel_remain_on_chnl_event_rx()
568 cfg80211_remain_on_channel_expired(&vif->wdev, id, chan, GFP_ATOMIC); ath6kl_wmi_cancel_remain_on_chnl_event_rx()
574 struct ath6kl_vif *vif) ath6kl_wmi_tx_status_event_rx()
587 cfg80211_mgmt_tx_status(&vif->wdev, id, ath6kl_wmi_tx_status_event_rx()
600 struct ath6kl_vif *vif) ath6kl_wmi_rx_probe_req_event_rx()
619 dlen, freq, vif->probe_req_report); ath6kl_wmi_rx_probe_req_event_rx()
621 if (vif->probe_req_report || vif->nw_type == AP_NETWORK) ath6kl_wmi_rx_probe_req_event_rx()
622 cfg80211_rx_mgmt(&vif->wdev, freq, 0, ev->data, dlen, 0); ath6kl_wmi_rx_probe_req_event_rx()
643 struct ath6kl_vif *vif) ath6kl_wmi_rx_action_event_rx()
661 cfg80211_rx_mgmt(&vif->wdev, freq, 0, ev->data, dlen, 0); ath6kl_wmi_rx_action_event_rx()
857 struct ath6kl_vif *vif) ath6kl_wmi_connect_event_rx()
867 if (vif->nw_type == AP_NETWORK) { ath6kl_wmi_connect_event_rx()
869 struct net_device *dev = vif->ndev; ath6kl_wmi_connect_event_rx()
876 vif, le16_to_cpu(ev->u.ap_bss.ch)); ath6kl_wmi_connect_event_rx()
888 vif, ev->u.ap_sta.aid, ev->u.ap_sta.mac_addr, ath6kl_wmi_connect_event_rx()
934 ath6kl_connect_event(vif, le16_to_cpu(ev->u.sta.ch), ath6kl_wmi_connect_event_rx()
1023 struct ath6kl_vif *vif) ath6kl_wmi_disconnect_event_rx()
1040 ath6kl_disconnect_event(vif, ev->disconn_reason, ath6kl_wmi_disconnect_event_rx()
1067 struct ath6kl_vif *vif) ath6kl_wmi_tkip_micerr_event_rx()
1076 ath6kl_tkip_micerr_event(vif, ev->key_id, ev->is_mcast); ath6kl_wmi_tkip_micerr_event_rx()
1083 struct ath6kl_vif *vif = (struct ath6kl_vif *) ptr; ath6kl_wmi_sscan_timer() local
1085 cfg80211_sched_scan_results(vif->ar->wiphy); ath6kl_wmi_sscan_timer()
1089 struct ath6kl_vif *vif) ath6kl_wmi_bssinfo_event_rx()
1115 test_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags)) { ath6kl_wmi_bssinfo_event_rx()
1116 clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags); ath6kl_wmi_bssinfo_event_rx()
1117 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_wmi_bssinfo_event_rx()
1129 test_bit(CONNECTED, &vif->flags) && ath6kl_wmi_bssinfo_event_rx()
1130 memcmp(bih->bssid, vif->bssid, ETH_ALEN) == 0) { ath6kl_wmi_bssinfo_event_rx()
1135 vif->assoc_bss_dtim_period = tim[3]; ath6kl_wmi_bssinfo_event_rx()
1136 set_bit(DTIM_PERIOD_AVAIL, &vif->flags); ath6kl_wmi_bssinfo_event_rx()
1162 if (test_bit(SCHED_SCANNING, &vif->flags) && ath6kl_wmi_bssinfo_event_rx()
1163 !timer_pending(&vif->sched_scan_timer)) { ath6kl_wmi_bssinfo_event_rx()
1164 mod_timer(&vif->sched_scan_timer, jiffies + ath6kl_wmi_bssinfo_event_rx()
1279 struct ath6kl_vif *vif) ath6kl_wmi_scan_complete_rx()
1285 ath6kl_scan_complete_evt(vif, a_sle32_to_cpu(ev->status)); ath6kl_wmi_scan_complete_rx()
1292 int len, struct ath6kl_vif *vif) ath6kl_wmi_neighbor_report_event_rx()
1311 cfg80211_pmksa_candidate_notify(vif->ndev, i, ath6kl_wmi_neighbor_report_event_rx()
1353 struct ath6kl_vif *vif) ath6kl_wmi_stats_event_rx()
1355 ath6kl_tgt_stats_event(vif, datap, len); ath6kl_wmi_stats_event_rx()
1510 struct ath6kl_vif *vif) ath6kl_wmi_cac_event_rx()
1530 ath6kl_wmi_delete_pstream_cmd(wmi, vif->fw_vif_idx, ath6kl_wmi_cac_event_rx()
1546 ath6kl_wmi_delete_pstream_cmd(wmi, vif->fw_vif_idx, ath6kl_wmi_cac_event_rx()
1579 struct ath6kl_vif *vif) ath6kl_wmi_txe_notify_event_rx()
1587 if (vif->sme_state != SME_CONNECTED) ath6kl_wmi_txe_notify_event_rx()
1595 vif->bssid, rate, pkts, vif->txe_intvl); ath6kl_wmi_txe_notify_event_rx()
1597 cfg80211_cqm_txe_notify(vif->ndev, vif->bssid, pkts, ath6kl_wmi_txe_notify_event_rx()
1598 rate, vif->txe_intvl, GFP_KERNEL); ath6kl_wmi_txe_notify_event_rx()
2087 ath6kl_dbg(ATH6KL_DBG_WMI, "%s scheduled scan on vif %d\n", ath6kl_wmi_enable_sched_scan_cmd()
2905 struct ath6kl_vif *vif) ath6kl_wmi_host_sleep_mode_cmd_prcd_evt_rx()
2909 set_bit(HOST_SLEEP_MODE_CMD_PROCESSED, &vif->flags); ath6kl_wmi_host_sleep_mode_cmd_prcd_evt_rx()
3357 struct ath6kl_vif *vif) ath6kl_wmi_addba_req_event_rx()
3361 aggr_recv_addba_req_evt(vif, cmd->tid, ath6kl_wmi_addba_req_event_rx()
3368 struct ath6kl_vif *vif) ath6kl_wmi_delba_req_event_rx()
3372 aggr_recv_delba_req_evt(vif, cmd->tid); ath6kl_wmi_delba_req_event_rx()
3478 struct ath6kl_vif *vif) ath6kl_wmi_pspoll_event_rx()
3487 ath6kl_pspoll_event(vif, le16_to_cpu(ev->aid)); ath6kl_wmi_pspoll_event_rx()
3493 struct ath6kl_vif *vif) ath6kl_wmi_dtimexpiry_event_rx()
3495 ath6kl_dtimexpiry_event(vif); ath6kl_wmi_dtimexpiry_event_rx()
3885 struct ath6kl_vif *vif; ath6kl_wmi_proc_events_vif() local
3887 vif = ath6kl_get_vif_by_index(wmi->parent_dev, if_idx); ath6kl_wmi_proc_events_vif()
3888 if (!vif) { ath6kl_wmi_proc_events_vif()
3890 "Wmi event for unavailable vif, vif_index:%d\n", ath6kl_wmi_proc_events_vif()
3898 return ath6kl_wmi_connect_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3901 return ath6kl_wmi_disconnect_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3904 return ath6kl_wmi_tkip_micerr_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3907 return ath6kl_wmi_bssinfo_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3911 vif); ath6kl_wmi_proc_events_vif()
3914 return ath6kl_wmi_scan_complete_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3917 return ath6kl_wmi_stats_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3920 return ath6kl_wmi_cac_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3923 return ath6kl_wmi_pspoll_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3926 return ath6kl_wmi_dtimexpiry_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3929 return ath6kl_wmi_addba_req_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3932 return ath6kl_wmi_delba_req_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3936 return ath6kl_wmi_host_sleep_mode_cmd_prcd_evt_rx(wmi, vif); ath6kl_wmi_proc_events_vif()
3939 return ath6kl_wmi_remain_on_chnl_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3944 len, vif); ath6kl_wmi_proc_events_vif()
3947 return ath6kl_wmi_tx_status_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3950 return ath6kl_wmi_rx_probe_req_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3953 return ath6kl_wmi_rx_action_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
3956 return ath6kl_wmi_txe_notify_event_rx(wmi, datap, len, vif); ath6kl_wmi_proc_events_vif()
503 ath6kl_wmi_remain_on_chnl_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_remain_on_chnl_event_rx() argument
535 ath6kl_wmi_cancel_remain_on_chnl_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_cancel_remain_on_chnl_event_rx() argument
573 ath6kl_wmi_tx_status_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_tx_status_event_rx() argument
599 ath6kl_wmi_rx_probe_req_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_rx_probe_req_event_rx() argument
642 ath6kl_wmi_rx_action_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_rx_action_event_rx() argument
856 ath6kl_wmi_connect_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_connect_event_rx() argument
1022 ath6kl_wmi_disconnect_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_disconnect_event_rx() argument
1066 ath6kl_wmi_tkip_micerr_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_tkip_micerr_event_rx() argument
1088 ath6kl_wmi_bssinfo_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_bssinfo_event_rx() argument
1278 ath6kl_wmi_scan_complete_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_scan_complete_rx() argument
1291 ath6kl_wmi_neighbor_report_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_neighbor_report_event_rx() argument
1352 ath6kl_wmi_stats_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_stats_event_rx() argument
1509 ath6kl_wmi_cac_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_cac_event_rx() argument
1578 ath6kl_wmi_txe_notify_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_txe_notify_event_rx() argument
2904 ath6kl_wmi_host_sleep_mode_cmd_prcd_evt_rx(struct wmi *wmi, struct ath6kl_vif *vif) ath6kl_wmi_host_sleep_mode_cmd_prcd_evt_rx() argument
3356 ath6kl_wmi_addba_req_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_addba_req_event_rx() argument
3367 ath6kl_wmi_delba_req_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_delba_req_event_rx() argument
3477 ath6kl_wmi_pspoll_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_pspoll_event_rx() argument
3492 ath6kl_wmi_dtimexpiry_event_rx(struct wmi *wmi, u8 *datap, int len, struct ath6kl_vif *vif) ath6kl_wmi_dtimexpiry_event_rx() argument
H A Ddebug.c542 struct ath6kl_vif *vif; read_file_tgt_stats() local
550 vif = ath6kl_vif_first(ar); read_file_tgt_stats()
551 if (!vif) read_file_tgt_stats()
554 tgt_stats = &vif->target_stats; read_file_tgt_stats()
565 set_bit(STATS_UPDATE_PEND, &vif->flags); read_file_tgt_stats()
575 &vif->flags), WMI_TIMEOUT); read_file_tgt_stats()
1386 struct ath6kl_vif *vif; ath6kl_create_qos_write() local
1394 vif = ath6kl_vif_first(ar); ath6kl_create_qos_write()
1395 if (!vif) ath6kl_create_qos_write()
1547 ath6kl_wmi_create_pstream_cmd(ar->wmi, vif->fw_vif_idx, &pstream); ath6kl_create_qos_write()
1564 struct ath6kl_vif *vif; ath6kl_delete_qos_write() local
1571 vif = ath6kl_vif_first(ar); ath6kl_delete_qos_write()
1572 if (!vif) ath6kl_delete_qos_write()
1593 ath6kl_wmi_delete_pstream_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_delete_qos_write()
1611 struct ath6kl_vif *vif; ath6kl_bgscan_int_write() local
1616 vif = ath6kl_vif_first(ar); ath6kl_bgscan_int_write()
1617 if (!vif) ath6kl_bgscan_int_write()
1631 vif->bg_scan_period = bgscan_int; ath6kl_bgscan_int_write()
1651 struct ath6kl_vif *vif; ath6kl_listen_int_write() local
1656 vif = ath6kl_vif_first(ar); ath6kl_listen_int_write()
1657 if (!vif) ath6kl_listen_int_write()
1671 vif->listen_intvl_t = listen_interval; ath6kl_listen_int_write()
1672 ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ath6kl_listen_int_write()
1673 vif->listen_intvl_t, 0); ath6kl_listen_int_write()
1683 struct ath6kl_vif *vif; ath6kl_listen_int_read() local
1687 vif = ath6kl_vif_first(ar); ath6kl_listen_int_read()
1688 if (!vif) ath6kl_listen_int_read()
1691 len = scnprintf(buf, sizeof(buf), "%u\n", vif->listen_intvl_t); ath6kl_listen_int_read()
/linux-4.1.27/drivers/net/xen-netback/
H A Dinterface.c66 int xenvif_schedulable(struct xenvif *vif) xenvif_schedulable() argument
68 return netif_running(vif->dev) && xenvif_schedulable()
69 test_bit(VIF_STATUS_CONNECTED, &vif->status) && xenvif_schedulable()
70 !vif->disabled; xenvif_schedulable()
89 /* This vif is rogue, we pretend we've there is nothing to do xenvif_poll()
90 * for this vif to deschedule it from NAPI. But this interface xenvif_poll()
93 if (unlikely(queue->vif->disabled)) { xenvif_poll()
127 struct net_device *dev = queue->vif->dev; xenvif_queue_stopped()
134 struct net_device *dev = queue->vif->dev; xenvif_wake_queue()
141 struct xenvif *vif = netdev_priv(dev); xenvif_start_xmit() local
143 unsigned int num_queues = vif->num_queues; xenvif_start_xmit()
157 index, vif->dev->name); xenvif_start_xmit()
160 queue = &vif->queues[index]; xenvif_start_xmit()
165 !xenvif_schedulable(vif)) xenvif_start_xmit()
169 cb->expires = jiffies + vif->drain_timeout; xenvif_start_xmit()
177 vif->dev->stats.tx_dropped++; xenvif_start_xmit()
184 struct xenvif *vif = netdev_priv(dev); xenvif_get_stats() local
186 unsigned int num_queues = vif->num_queues; xenvif_get_stats()
193 if (vif->queues == NULL) xenvif_get_stats()
198 queue = &vif->queues[index]; xenvif_get_stats()
206 vif->dev->stats.rx_bytes = rx_bytes; xenvif_get_stats()
207 vif->dev->stats.rx_packets = rx_packets; xenvif_get_stats()
208 vif->dev->stats.tx_bytes = tx_bytes; xenvif_get_stats()
209 vif->dev->stats.tx_packets = tx_packets; xenvif_get_stats()
211 return &vif->dev->stats; xenvif_get_stats()
214 static void xenvif_up(struct xenvif *vif) xenvif_up() argument
217 unsigned int num_queues = vif->num_queues; xenvif_up()
221 queue = &vif->queues[queue_index]; xenvif_up()
230 static void xenvif_down(struct xenvif *vif) xenvif_down() argument
233 unsigned int num_queues = vif->num_queues; xenvif_down()
237 queue = &vif->queues[queue_index]; xenvif_down()
248 struct xenvif *vif = netdev_priv(dev); xenvif_open() local
249 if (test_bit(VIF_STATUS_CONNECTED, &vif->status)) xenvif_open()
250 xenvif_up(vif); xenvif_open()
257 struct xenvif *vif = netdev_priv(dev); xenvif_close() local
258 if (test_bit(VIF_STATUS_CONNECTED, &vif->status)) xenvif_close()
259 xenvif_down(vif); xenvif_close()
266 struct xenvif *vif = netdev_priv(dev); xenvif_change_mtu() local
267 int max = vif->can_sg ? 65535 - VLAN_ETH_HLEN : ETH_DATA_LEN; xenvif_change_mtu()
278 struct xenvif *vif = netdev_priv(dev); xenvif_fix_features() local
280 if (!vif->can_sg) xenvif_fix_features()
282 if (~(vif->gso_mask | vif->gso_prefix_mask) & GSO_BIT(TCPV4)) xenvif_fix_features()
284 if (~(vif->gso_mask | vif->gso_prefix_mask) & GSO_BIT(TCPV6)) xenvif_fix_features()
286 if (!vif->ip_csum) xenvif_fix_features()
288 if (!vif->ipv6_csum) xenvif_fix_features()
339 struct xenvif *vif = netdev_priv(dev); xenvif_get_ethtool_stats() local
340 unsigned int num_queues = vif->num_queues; xenvif_get_ethtool_stats()
347 void *vif_stats = &vif->queues[queue_index].stats; xenvif_get_ethtool_stats()
391 struct xenvif *vif; xenvif_alloc() local
394 snprintf(name, IFNAMSIZ - 1, "vif%u.%u", domid, handle); xenvif_alloc()
408 vif = netdev_priv(dev); xenvif_alloc()
410 vif->domid = domid; xenvif_alloc()
411 vif->handle = handle; xenvif_alloc()
412 vif->can_sg = 1; xenvif_alloc()
413 vif->ip_csum = 1; xenvif_alloc()
414 vif->dev = dev; xenvif_alloc()
415 vif->disabled = false; xenvif_alloc()
416 vif->drain_timeout = msecs_to_jiffies(rx_drain_timeout_msecs); xenvif_alloc()
417 vif->stall_timeout = msecs_to_jiffies(rx_stall_timeout_msecs); xenvif_alloc()
420 vif->queues = NULL; xenvif_alloc()
421 vif->num_queues = 0; xenvif_alloc()
423 spin_lock_init(&vif->lock); xenvif_alloc()
456 return vif; xenvif_alloc()
489 netdev_err(queue->vif->dev, "Could not reserve mmap_pages\n"); xenvif_init_queue()
504 void xenvif_carrier_on(struct xenvif *vif) xenvif_carrier_on() argument
507 if (!vif->can_sg && vif->dev->mtu > ETH_DATA_LEN) xenvif_carrier_on()
508 dev_set_mtu(vif->dev, ETH_DATA_LEN); xenvif_carrier_on()
509 netdev_update_features(vif->dev); xenvif_carrier_on()
510 set_bit(VIF_STATUS_CONNECTED, &vif->status); xenvif_carrier_on()
511 if (netif_running(vif->dev)) xenvif_carrier_on()
512 xenvif_up(vif); xenvif_carrier_on()
535 netif_napi_add(queue->vif->dev, &queue->napi, xenvif_poll, xenvif_connect()
541 queue->vif->domid, tx_evtchn, xenvif_interrupt, 0, xenvif_connect()
552 queue->vif->domid, tx_evtchn, xenvif_tx_interrupt, 0, xenvif_connect()
562 queue->vif->domid, rx_evtchn, xenvif_rx_interrupt, 0, xenvif_connect()
609 void xenvif_carrier_off(struct xenvif *vif) xenvif_carrier_off() argument
611 struct net_device *dev = vif->dev; xenvif_carrier_off()
614 if (test_and_clear_bit(VIF_STATUS_CONNECTED, &vif->status)) { xenvif_carrier_off()
617 xenvif_down(vif); xenvif_carrier_off()
622 void xenvif_disconnect(struct xenvif *vif) xenvif_disconnect() argument
625 unsigned int num_queues = vif->num_queues; xenvif_disconnect()
628 xenvif_carrier_off(vif); xenvif_disconnect()
631 queue = &vif->queues[queue_index]; xenvif_disconnect()
669 void xenvif_free(struct xenvif *vif) xenvif_free() argument
672 unsigned int num_queues = vif->num_queues; xenvif_free()
675 unregister_netdev(vif->dev); xenvif_free()
678 queue = &vif->queues[queue_index]; xenvif_free()
682 vfree(vif->queues); xenvif_free()
683 vif->queues = NULL; xenvif_free()
684 vif->num_queues = 0; xenvif_free()
686 free_netdev(vif->dev); xenvif_free()
H A Dxenbus.c27 struct xenvif *vif; member in struct:backend_info
46 static void xen_unregister_watchers(struct xenvif *vif);
119 dev_queue = netdev_get_tx_queue(queue->vif->dev, queue->id); xenvif_read_io_ring()
188 static void xenvif_debugfs_addif(struct xenvif *vif) xenvif_debugfs_addif() argument
196 vif->xenvif_dbg_root = debugfs_create_dir(vif->dev->name, xenvif_debugfs_addif()
198 if (!IS_ERR_OR_NULL(vif->xenvif_dbg_root)) { xenvif_debugfs_addif()
199 for (i = 0; i < vif->num_queues; ++i) { xenvif_debugfs_addif()
205 vif->xenvif_dbg_root, xenvif_debugfs_addif()
206 &vif->queues[i], xenvif_debugfs_addif()
213 netdev_warn(vif->dev, xenvif_debugfs_addif()
214 "Creation of vif debugfs dir returned %ld!\n", xenvif_debugfs_addif()
215 PTR_ERR(vif->xenvif_dbg_root)); xenvif_debugfs_addif()
218 static void xenvif_debugfs_delif(struct xenvif *vif) xenvif_debugfs_delif() argument
223 if (!IS_ERR_OR_NULL(vif->xenvif_dbg_root)) xenvif_debugfs_delif()
224 debugfs_remove_recursive(vif->xenvif_dbg_root); xenvif_debugfs_delif()
225 vif->xenvif_dbg_root = NULL; xenvif_debugfs_delif()
236 if (be->vif) { netback_remove()
238 xen_unregister_watchers(be->vif); netback_remove()
240 xenvif_free(be->vif); netback_remove()
241 be->vif = NULL; netback_remove()
388 * and vif variables to the environment, for the benefit of the vif-* hotplug
402 if (!be->vif) netback_uevent()
405 return add_uevent_var(env, "vif=%s", be->vif->dev->name); netback_uevent()
414 struct xenvif *vif; backend_create_xenvif() local
416 if (be->vif != NULL) backend_create_xenvif()
425 vif = xenvif_alloc(&dev->dev, dev->otherend_id, handle); backend_create_xenvif()
426 if (IS_ERR(vif)) { backend_create_xenvif()
427 err = PTR_ERR(vif); backend_create_xenvif()
431 be->vif = vif; backend_create_xenvif()
439 if (be->vif) { backend_disconnect()
440 xen_unregister_watchers(be->vif); backend_disconnect()
442 xenvif_debugfs_delif(be->vif); backend_disconnect()
444 xenvif_disconnect(be->vif); backend_disconnect()
450 if (be->vif) backend_connect()
659 struct xenvif *vif = container_of(watch, struct xenvif, credit_watch); xen_net_rate_changed() local
660 struct xenbus_device *dev = xenvif_to_xenbus_device(vif); xen_net_rate_changed()
666 for (queue_index = 0; queue_index < vif->num_queues; queue_index++) { xen_net_rate_changed()
667 struct xenvif_queue *queue = &vif->queues[queue_index]; xen_net_rate_changed()
678 static int xen_register_watchers(struct xenbus_device *dev, struct xenvif *vif) xen_register_watchers() argument
684 if (vif->credit_watch.node) xen_register_watchers()
691 vif->credit_watch.node = node; xen_register_watchers()
692 vif->credit_watch.callback = xen_net_rate_changed; xen_register_watchers()
693 err = register_xenbus_watch(&vif->credit_watch); xen_register_watchers()
695 pr_err("Failed to set watcher %s\n", vif->credit_watch.node); xen_register_watchers()
697 vif->credit_watch.node = NULL; xen_register_watchers()
698 vif->credit_watch.callback = NULL; xen_register_watchers()
703 static void xen_unregister_watchers(struct xenvif *vif) xen_unregister_watchers() argument
705 if (vif->credit_watch.node) { xen_unregister_watchers()
706 unregister_xenbus_watch(&vif->credit_watch); xen_unregister_watchers()
707 kfree(vif->credit_watch.node); xen_unregister_watchers()
708 vif->credit_watch.node = NULL; xen_unregister_watchers()
769 err = xen_net_read_mac(dev, be->vif->fe_dev_addr); connect()
776 xen_unregister_watchers(be->vif); connect()
777 xen_register_watchers(dev, be->vif); connect()
781 be->vif->queues = vzalloc(requested_num_queues * connect()
783 be->vif->num_queues = requested_num_queues; connect()
784 be->vif->stalled_queues = requested_num_queues; connect()
787 queue = &be->vif->queues[queue_index]; connect()
788 queue->vif = be->vif; connect()
791 be->vif->dev->name, queue->id); connect()
801 be->vif->num_queues = queue_index; connect()
816 be->vif->num_queues = queue_index; connect()
822 xenvif_debugfs_addif(be->vif); connect()
829 netif_set_real_num_tx_queues(be->vif->dev, requested_num_queues); connect()
830 netif_set_real_num_rx_queues(be->vif->dev, requested_num_queues); connect()
833 xenvif_carrier_on(be->vif); connect()
842 netif_tx_wake_all_queues(be->vif->dev); connect()
847 if (be->vif->num_queues > 0) connect()
848 xenvif_disconnect(be->vif); /* Clean up existing queues */ connect()
849 vfree(be->vif->queues); connect()
850 be->vif->queues = NULL; connect()
851 be->vif->num_queues = 0; connect()
859 unsigned int num_queues = queue->vif->num_queues; connect_rings()
938 struct xenvif *vif = be->vif; read_xenbus_vif_flags() local
965 be->vif->drain_timeout = msecs_to_jiffies(30); read_xenbus_vif_flags()
966 be->vif->stall_timeout = 0; read_xenbus_vif_flags()
972 vif->can_sg = !!val; read_xenbus_vif_flags()
974 vif->gso_mask = 0; read_xenbus_vif_flags()
975 vif->gso_prefix_mask = 0; read_xenbus_vif_flags()
981 vif->gso_mask |= GSO_BIT(TCPV4); read_xenbus_vif_flags()
987 vif->gso_prefix_mask |= GSO_BIT(TCPV4); read_xenbus_vif_flags()
993 vif->gso_mask |= GSO_BIT(TCPV6); read_xenbus_vif_flags()
999 vif->gso_prefix_mask |= GSO_BIT(TCPV6); read_xenbus_vif_flags()
1001 if (vif->gso_mask & vif->gso_prefix_mask) { read_xenbus_vif_flags()
1012 vif->ip_csum = !val; read_xenbus_vif_flags()
1017 vif->ipv6_csum = !!val; read_xenbus_vif_flags()
1023 { "vif" },
H A Dnetback.c122 #define callback_param(vif, pending_idx) \
123 (vif->pending_tx_info[pending_idx].callback_struct)
184 netif_tx_stop_queue(netdev_get_tx_queue(queue->vif->dev, queue->id)); xenvif_rx_queue_tail()
209 netif_tx_wake_queue(netdev_get_tx_queue(queue->vif->dev, queue->id)); xenvif_rx_queue_maybe_wake()
321 copy_gop->dest.domid = queue->vif->domid; xenvif_gop_frag_copy()
346 if (*head && ((1 << gso_type) & queue->vif->gso_mask)) xenvif_gop_frag_copy()
370 struct xenvif *vif = netdev_priv(skb->dev); xenvif_gop_skb() local
391 if ((1 << gso_type) & vif->gso_prefix_mask) { xenvif_gop_skb()
403 if ((1 << gso_type) & vif->gso_mask) { xenvif_gop_skb()
446 static int xenvif_check_gop(struct xenvif *vif, int nr_meta_slots, xenvif_check_gop() argument
456 netdev_dbg(vif->dev, xenvif_check_gop()
458 copy_op->status, vif->domid); xenvif_check_gop()
541 queue->vif->gso_prefix_mask) { xenvif_rx_action()
559 status = xenvif_check_gop(queue->vif, xenvif_rx_action()
581 queue->vif->gso_mask) { xenvif_rx_action()
670 static void xenvif_fatal_tx_err(struct xenvif *vif) xenvif_fatal_tx_err() argument
672 netdev_err(vif->dev, "fatal error; disabling device\n"); xenvif_fatal_tx_err()
673 vif->disabled = true; xenvif_fatal_tx_err()
674 /* Disable the vif from queue 0's kthread */ xenvif_fatal_tx_err()
675 if (vif->queues) xenvif_fatal_tx_err()
676 xenvif_kick_thread(&vif->queues[0]); xenvif_fatal_tx_err()
696 netdev_err(queue->vif->dev, xenvif_count_requests()
699 xenvif_fatal_tx_err(queue->vif); xenvif_count_requests()
707 netdev_err(queue->vif->dev, xenvif_count_requests()
710 xenvif_fatal_tx_err(queue->vif); xenvif_count_requests()
723 netdev_dbg(queue->vif->dev, xenvif_count_requests()
746 netdev_dbg(queue->vif->dev, xenvif_count_requests()
756 netdev_err(queue->vif->dev, "Cross page boundary, txp->offset: %x, size: %u\n", xenvif_count_requests()
758 xenvif_fatal_tx_err(queue->vif); xenvif_count_requests()
792 txp->gref, queue->vif->domid); xenvif_tx_create_map_op()
852 netdev_err(queue->vif->dev, xenvif_get_requests()
881 netdev_err(queue->vif->dev, xenvif_grant_handle_set()
894 netdev_err(queue->vif->dev, xenvif_grant_handle_reset()
926 netdev_dbg(queue->vif->dev, xenvif_tx_check_gop()
970 netdev_dbg(queue->vif->dev, xenvif_tx_check_gop()
1074 netdev_err(queue->vif->dev, "Missing extra info\n"); xenvif_get_extras()
1075 xenvif_fatal_tx_err(queue->vif); xenvif_get_extras()
1084 netdev_err(queue->vif->dev, xenvif_get_extras()
1086 xenvif_fatal_tx_err(queue->vif); xenvif_get_extras()
1097 static int xenvif_set_skb_gso(struct xenvif *vif, xenvif_set_skb_gso() argument
1102 netdev_err(vif->dev, "GSO size must not be zero.\n"); xenvif_set_skb_gso()
1103 xenvif_fatal_tx_err(vif); xenvif_set_skb_gso()
1115 netdev_err(vif->dev, "Bad GSO type %d.\n", gso->u.gso.type); xenvif_set_skb_gso()
1116 xenvif_fatal_tx_err(vif); xenvif_set_skb_gso()
1199 netdev_err(queue->vif->dev, xenvif_tx_build_gops()
1204 xenvif_fatal_tx_err(queue->vif); xenvif_tx_build_gops()
1242 netdev_dbg(queue->vif->dev, xenvif_tx_build_gops()
1250 netdev_err(queue->vif->dev, xenvif_tx_build_gops()
1254 xenvif_fatal_tx_err(queue->vif); xenvif_tx_build_gops()
1267 netdev_dbg(queue->vif->dev, xenvif_tx_build_gops()
1277 if (xenvif_set_skb_gso(queue->vif, skb, gso)) { xenvif_tx_build_gops()
1288 queue->tx_copy_ops[*copy_ops].source.domid = queue->vif->domid; xenvif_tx_build_gops()
1462 netdev_err(queue->vif->dev, xenvif_tx_submit()
1470 skb->dev = queue->vif->dev; xenvif_tx_submit()
1475 netdev_dbg(queue->vif->dev, xenvif_tx_submit()
1601 netdev_err(queue->vif->dev, "Unmap fail: nr_ops %tx ret %d\n", xenvif_tx_dealloc_action()
1605 netdev_err(queue->vif->dev, xenvif_tx_dealloc_action()
1738 netdev_err(queue->vif->dev, xenvif_idx_unmap()
1765 xenbus_unmap_ring_vfree(xenvif_to_xenbus_device(queue->vif), xenvif_unmap_frontend_rings()
1768 xenbus_unmap_ring_vfree(xenvif_to_xenbus_device(queue->vif), xenvif_unmap_frontend_rings()
1782 err = xenbus_map_ring_valloc(xenvif_to_xenbus_device(queue->vif), xenvif_map_frontend_rings()
1790 err = xenbus_map_ring_valloc(xenvif_to_xenbus_device(queue->vif), xenvif_map_frontend_rings()
1807 struct xenvif *vif = queue->vif; xenvif_queue_carrier_off() local
1812 spin_lock(&vif->lock); xenvif_queue_carrier_off()
1813 if (vif->stalled_queues++ == 0) { xenvif_queue_carrier_off()
1814 netdev_info(vif->dev, "Guest Rx stalled"); xenvif_queue_carrier_off()
1815 netif_carrier_off(vif->dev); xenvif_queue_carrier_off()
1817 spin_unlock(&vif->lock); xenvif_queue_carrier_off()
1822 struct xenvif *vif = queue->vif; xenvif_queue_carrier_on() local
1828 spin_lock(&vif->lock); xenvif_queue_carrier_on()
1829 if (--vif->stalled_queues == 0) { xenvif_queue_carrier_on()
1830 netdev_info(vif->dev, "Guest Rx ready"); xenvif_queue_carrier_on()
1831 netif_carrier_on(vif->dev); xenvif_queue_carrier_on()
1833 spin_unlock(&vif->lock); xenvif_queue_carrier_on()
1846 queue->last_rx_time + queue->vif->stall_timeout); xenvif_rx_queue_stalled()
1864 || (queue->vif->stall_timeout && xenvif_have_rx_work()
1868 || queue->vif->disabled; xenvif_have_rx_work()
1917 struct xenvif *vif = queue->vif; xenvif_kthread_guest_rx() local
1919 if (!vif->stall_timeout) xenvif_kthread_guest_rx()
1935 if (unlikely(vif->disabled && queue->id == 0)) { xenvif_kthread_guest_rx()
1936 xenvif_carrier_off(vif); xenvif_kthread_guest_rx()
1947 if (vif->stall_timeout) { xenvif_kthread_guest_rx()
2052 MODULE_ALIAS("xen-backend:vif");
H A Dcommon.h132 struct xenvif *vif; /* Parent VIF */ member in struct:xenvif_queue
209 /* This bit marks that the vif is connected */
260 static inline struct xenbus_device *xenvif_to_xenbus_device(struct xenvif *vif) xenvif_to_xenbus_device() argument
262 return to_xenbus_device(vif->dev->dev.parent); xenvif_to_xenbus_device()
277 void xenvif_disconnect(struct xenvif *vif);
278 void xenvif_free(struct xenvif *vif);
283 int xenvif_schedulable(struct xenvif *vif);
298 void xenvif_carrier_off(struct xenvif *vif);
314 void xenvif_carrier_on(struct xenvif *vif);
/linux-4.1.27/drivers/net/wireless/iwlwifi/mvm/
H A Dmac-ctxt.c83 struct ieee80211_vif *vif; member in struct:iwl_mvm_mac_iface_iterator_data
96 struct ieee80211_vif *vif) iwl_mvm_mac_tsf_id_iter()
99 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_tsf_id_iter()
103 if (vif == data->vif) iwl_mvm_mac_tsf_id_iter()
122 switch (data->vif->type) { iwl_mvm_mac_tsf_id_iter()
132 if (vif->type != NL80211_IFTYPE_AP || iwl_mvm_mac_tsf_id_iter()
137 min_bi = min(data->vif->bss_conf.beacon_int, iwl_mvm_mac_tsf_id_iter()
138 vif->bss_conf.beacon_int); iwl_mvm_mac_tsf_id_iter()
143 if ((data->vif->bss_conf.beacon_int - iwl_mvm_mac_tsf_id_iter()
144 vif->bss_conf.beacon_int) % min_bi == 0) { iwl_mvm_mac_tsf_id_iter()
160 if ((vif->type != NL80211_IFTYPE_AP && iwl_mvm_mac_tsf_id_iter()
161 vif->type != NL80211_IFTYPE_STATION) || iwl_mvm_mac_tsf_id_iter()
166 min_bi = min(data->vif->bss_conf.beacon_int, iwl_mvm_mac_tsf_id_iter()
167 vif->bss_conf.beacon_int); iwl_mvm_mac_tsf_id_iter()
172 if ((data->vif->bss_conf.beacon_int - iwl_mvm_mac_tsf_id_iter()
173 vif->bss_conf.beacon_int) % min_bi == 0) { iwl_mvm_mac_tsf_id_iter()
202 * Get the mask of the queues used by the vif
204 u32 iwl_mvm_mac_get_queues_mask(struct ieee80211_vif *vif) iwl_mvm_mac_get_queues_mask() argument
208 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) iwl_mvm_mac_get_queues_mask()
212 if (vif->hw_queue[ac] != IEEE80211_INVAL_HW_QUEUE) iwl_mvm_mac_get_queues_mask()
213 qmask |= BIT(vif->hw_queue[ac]); iwl_mvm_mac_get_queues_mask()
216 if (vif->type == NL80211_IFTYPE_AP) iwl_mvm_mac_get_queues_mask()
217 qmask |= BIT(vif->cab_queue); iwl_mvm_mac_get_queues_mask()
223 struct ieee80211_vif *vif) iwl_mvm_iface_hw_queues_iter()
227 /* exclude the given vif */ iwl_mvm_iface_hw_queues_iter()
228 if (vif == data->exclude_vif) iwl_mvm_iface_hw_queues_iter()
231 data->used_hw_queues |= iwl_mvm_mac_get_queues_mask(vif); iwl_mvm_iface_hw_queues_iter()
279 struct ieee80211_vif *vif) iwl_mvm_mac_iface_iterator()
282 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_iface_iterator()
285 if (vif == data->vif) { iwl_mvm_mac_iface_iterator()
299 iwl_mvm_mac_tsf_id_iter(_data, mac, vif); iwl_mvm_mac_iface_iterator()
303 struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_recalc_tsf_id()
305 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_recalc_tsf_id()
308 .vif = vif, iwl_mvm_mac_ctxt_recalc_tsf_id()
326 struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_allocate_resources()
328 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_allocate_resources()
331 .vif = vif, iwl_mvm_mac_ctxt_allocate_resources()
358 /* Currently, MAC ID 0 should be used only for the managed/IBSS vif */ iwl_mvm_mac_ctxt_allocate_resources()
359 switch (vif->type) { iwl_mvm_mac_ctxt_allocate_resources()
363 if (!vif->p2p) iwl_mvm_mac_ctxt_allocate_resources()
374 used_hw_queues = iwl_mvm_get_used_hw_queues(mvm, vif); iwl_mvm_mac_ctxt_allocate_resources()
379 * the vif being added already. iwl_mvm_mac_ctxt_allocate_resources()
418 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { iwl_mvm_mac_ctxt_allocate_resources()
420 vif->hw_queue[ac] = IEEE80211_INVAL_HW_QUEUE; iwl_mvm_mac_ctxt_allocate_resources()
437 vif->hw_queue[ac] = queue; iwl_mvm_mac_ctxt_allocate_resources()
441 if (vif->type == NL80211_IFTYPE_AP) { iwl_mvm_mac_ctxt_allocate_resources()
451 vif->cab_queue = queue; iwl_mvm_mac_ctxt_allocate_resources()
453 vif->cab_queue = IEEE80211_INVAL_HW_QUEUE; iwl_mvm_mac_ctxt_allocate_resources()
466 memset(vif->hw_queue, IEEE80211_INVAL_HW_QUEUE, sizeof(vif->hw_queue)); iwl_mvm_mac_ctxt_allocate_resources()
467 vif->cab_queue = IEEE80211_INVAL_HW_QUEUE; iwl_mvm_mac_ctxt_allocate_resources()
471 int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_init() argument
474 iwl_mvm_get_wd_timeout(mvm, vif, false, false); iwl_mvm_mac_ctxt_init()
480 ret = iwl_mvm_mac_ctxt_allocate_resources(mvm, vif); iwl_mvm_mac_ctxt_init()
484 switch (vif->type) { iwl_mvm_mac_ctxt_init()
490 iwl_mvm_enable_ac_txq(mvm, vif->cab_queue, iwl_mvm_mac_ctxt_init()
495 iwl_mvm_enable_ac_txq(mvm, vif->hw_queue[ac], iwl_mvm_mac_ctxt_init()
504 void iwl_mvm_mac_ctxt_release(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_release() argument
510 switch (vif->type) { iwl_mvm_mac_ctxt_release()
515 iwl_mvm_disable_txq(mvm, vif->cab_queue, 0); iwl_mvm_mac_ctxt_release()
519 iwl_mvm_disable_txq(mvm, vif->hw_queue[ac], 0); iwl_mvm_mac_ctxt_release()
524 struct ieee80211_vif *vif, iwl_mvm_ack_rates()
529 unsigned long basic = vif->bss_conf.basic_rates; iwl_mvm_ack_rates()
610 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_set_ht_flags()
614 u8 protection_mode = vif->bss_conf.ht_operation_mode & iwl_mvm_mac_ctxt_set_ht_flags()
633 if (vif->bss_conf.chandef.width > NL80211_CHAN_WIDTH_20) iwl_mvm_mac_ctxt_set_ht_flags()
644 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_cmd_common()
649 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_cmd_common()
651 bool ht_enabled = !!(vif->bss_conf.ht_operation_mode & iwl_mvm_mac_ctxt_cmd_common()
654 const u8 *bssid = bssid_override ?: vif->bss_conf.bssid; iwl_mvm_mac_ctxt_cmd_common()
661 switch (vif->type) { iwl_mvm_mac_ctxt_cmd_common()
663 if (vif->p2p) iwl_mvm_mac_ctxt_cmd_common()
686 memcpy(cmd->node_addr, vif->addr, ETH_ALEN); iwl_mvm_mac_ctxt_cmd_common()
694 chanctx = rcu_dereference(vif->chanctx_conf); iwl_mvm_mac_ctxt_cmd_common()
695 iwl_mvm_ack_rates(mvm, vif, chanctx ? chanctx->def.chan->band iwl_mvm_mac_ctxt_cmd_common()
704 cpu_to_le32(vif->bss_conf.use_short_preamble ? iwl_mvm_mac_ctxt_cmd_common()
707 cpu_to_le32(vif->bss_conf.use_short_slot ? iwl_mvm_mac_ctxt_cmd_common()
724 if (vif->type == NL80211_IFTYPE_AP) iwl_mvm_mac_ctxt_cmd_common()
728 if (vif->bss_conf.qos) iwl_mvm_mac_ctxt_cmd_common()
731 if (vif->bss_conf.use_cts_prot) iwl_mvm_mac_ctxt_cmd_common()
735 vif->bss_conf.use_cts_prot, iwl_mvm_mac_ctxt_cmd_common()
736 vif->bss_conf.ht_operation_mode); iwl_mvm_mac_ctxt_cmd_common()
737 if (vif->bss_conf.chandef.width != NL80211_CHAN_WIDTH_20_NOHT) iwl_mvm_mac_ctxt_cmd_common()
740 iwl_mvm_mac_ctxt_set_ht_flags(mvm, vif, cmd); iwl_mvm_mac_ctxt_cmd_common()
757 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_cmd_sta()
764 WARN_ON(vif->type != NL80211_IFTYPE_STATION); iwl_mvm_mac_ctxt_cmd_sta()
767 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, bssid_override, action); iwl_mvm_mac_ctxt_cmd_sta()
769 if (vif->p2p) { iwl_mvm_mac_ctxt_cmd_sta()
771 &vif->bss_conf.p2p_noa_attr; iwl_mvm_mac_ctxt_cmd_sta()
781 if (vif->bss_conf.assoc && vif->bss_conf.dtim_period && iwl_mvm_mac_ctxt_cmd_sta()
800 dtim_offs = vif->bss_conf.sync_dtim_count * iwl_mvm_mac_ctxt_cmd_sta()
801 vif->bss_conf.beacon_int; iwl_mvm_mac_ctxt_cmd_sta()
806 cpu_to_le64(vif->bss_conf.sync_tsf + dtim_offs); iwl_mvm_mac_ctxt_cmd_sta()
808 cpu_to_le32(vif->bss_conf.sync_device_ts + dtim_offs); iwl_mvm_mac_ctxt_cmd_sta()
825 ctxt_sta->bi = cpu_to_le32(vif->bss_conf.beacon_int); iwl_mvm_mac_ctxt_cmd_sta()
827 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int)); iwl_mvm_mac_ctxt_cmd_sta()
828 ctxt_sta->dtim_interval = cpu_to_le32(vif->bss_conf.beacon_int * iwl_mvm_mac_ctxt_cmd_sta()
829 vif->bss_conf.dtim_period); iwl_mvm_mac_ctxt_cmd_sta()
831 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int * iwl_mvm_mac_ctxt_cmd_sta()
832 vif->bss_conf.dtim_period)); iwl_mvm_mac_ctxt_cmd_sta()
835 ctxt_sta->assoc_id = cpu_to_le32(vif->bss_conf.aid); iwl_mvm_mac_ctxt_cmd_sta()
841 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_cmd_listener()
846 WARN_ON(vif->type != NL80211_IFTYPE_MONITOR); iwl_mvm_mac_ctxt_cmd_listener()
848 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); iwl_mvm_mac_ctxt_cmd_listener()
861 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_cmd_ibss()
864 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_cmd_ibss()
867 WARN_ON(vif->type != NL80211_IFTYPE_ADHOC); iwl_mvm_mac_ctxt_cmd_ibss()
869 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); iwl_mvm_mac_ctxt_cmd_ibss()
875 cmd.ibss.bi = cpu_to_le32(vif->bss_conf.beacon_int); iwl_mvm_mac_ctxt_cmd_ibss()
877 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int)); iwl_mvm_mac_ctxt_cmd_ibss()
889 static void iwl_mvm_go_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_go_iterator() argument
892 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_go_iterator()
894 if (vif->type == NL80211_IFTYPE_AP && vif->p2p && iwl_mvm_go_iterator()
900 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_cmd_p2p_device()
906 WARN_ON(vif->type != NL80211_IFTYPE_P2P_DEVICE); iwl_mvm_mac_ctxt_cmd_p2p_device()
908 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); iwl_mvm_mac_ctxt_cmd_p2p_device()
957 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_send_beacon()
960 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_send_beacon()
998 if (info->band == IEEE80211_BAND_5GHZ || vif->p2p) { iwl_mvm_mac_ctxt_send_beacon()
1008 if (vif->type == NL80211_IFTYPE_AP) iwl_mvm_mac_ctxt_send_beacon()
1026 struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_beacon_changed()
1031 WARN_ON(vif->type != NL80211_IFTYPE_AP && iwl_mvm_mac_ctxt_beacon_changed()
1032 vif->type != NL80211_IFTYPE_ADHOC); iwl_mvm_mac_ctxt_beacon_changed()
1034 beacon = ieee80211_beacon_get_template(mvm->hw, vif, NULL); iwl_mvm_mac_ctxt_beacon_changed()
1038 ret = iwl_mvm_mac_ctxt_send_beacon(mvm, vif, beacon); iwl_mvm_mac_ctxt_beacon_changed()
1045 struct ieee80211_vif *vif; member in struct:iwl_mvm_mac_ap_iterator_data
1052 struct ieee80211_vif *vif) iwl_mvm_mac_ap_iterator()
1056 if (vif->type != NL80211_IFTYPE_STATION || !vif->bss_conf.assoc) iwl_mvm_mac_ap_iterator()
1060 if (vif->p2p && data->beacon_device_ts) iwl_mvm_mac_ap_iterator()
1063 data->beacon_device_ts = vif->bss_conf.sync_device_ts; iwl_mvm_mac_ap_iterator()
1064 data->beacon_int = vif->bss_conf.beacon_int; iwl_mvm_mac_ap_iterator()
1071 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_cmd_fill_ap()
1075 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_cmd_fill_ap()
1078 .vif = vif, iwl_mvm_mac_ctxt_cmd_fill_ap()
1082 ctxt_ap->bi = cpu_to_le32(vif->bss_conf.beacon_int); iwl_mvm_mac_ctxt_cmd_fill_ap()
1084 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int)); iwl_mvm_mac_ctxt_cmd_fill_ap()
1085 ctxt_ap->dtim_interval = cpu_to_le32(vif->bss_conf.beacon_int * iwl_mvm_mac_ctxt_cmd_fill_ap()
1086 vif->bss_conf.dtim_period); iwl_mvm_mac_ctxt_cmd_fill_ap()
1088 cpu_to_le32(iwl_mvm_reciprocal(vif->bss_conf.beacon_int * iwl_mvm_mac_ctxt_cmd_fill_ap()
1089 vif->bss_conf.dtim_period)); iwl_mvm_mac_ctxt_cmd_fill_ap()
1091 ctxt_ap->mcast_qid = cpu_to_le32(vif->cab_queue); iwl_mvm_mac_ctxt_cmd_fill_ap()
1128 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_cmd_ap()
1133 WARN_ON(vif->type != NL80211_IFTYPE_AP || vif->p2p); iwl_mvm_mac_ctxt_cmd_ap()
1136 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); iwl_mvm_mac_ctxt_cmd_ap()
1146 iwl_mvm_mac_ctxt_cmd_fill_ap(mvm, vif, &cmd.ap, iwl_mvm_mac_ctxt_cmd_ap()
1153 struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_cmd_go()
1157 struct ieee80211_p2p_noa_attr *noa = &vif->bss_conf.p2p_noa_attr; iwl_mvm_mac_ctxt_cmd_go()
1159 WARN_ON(vif->type != NL80211_IFTYPE_AP || !vif->p2p); iwl_mvm_mac_ctxt_cmd_go()
1162 iwl_mvm_mac_ctxt_cmd_common(mvm, vif, &cmd, NULL, action); iwl_mvm_mac_ctxt_cmd_go()
1172 iwl_mvm_mac_ctxt_cmd_fill_ap(mvm, vif, &cmd.go.ap, iwl_mvm_mac_ctxt_cmd_go()
1184 static int iwl_mvm_mac_ctx_send(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_mac_ctx_send() argument
1188 switch (vif->type) { iwl_mvm_mac_ctx_send()
1190 return iwl_mvm_mac_ctxt_cmd_sta(mvm, vif, action, iwl_mvm_mac_ctx_send()
1195 if (!vif->p2p) iwl_mvm_mac_ctx_send()
1196 return iwl_mvm_mac_ctxt_cmd_ap(mvm, vif, action); iwl_mvm_mac_ctx_send()
1198 return iwl_mvm_mac_ctxt_cmd_go(mvm, vif, action); iwl_mvm_mac_ctx_send()
1201 return iwl_mvm_mac_ctxt_cmd_listener(mvm, vif, action); iwl_mvm_mac_ctx_send()
1203 return iwl_mvm_mac_ctxt_cmd_p2p_device(mvm, vif, action); iwl_mvm_mac_ctx_send()
1205 return iwl_mvm_mac_ctxt_cmd_ibss(mvm, vif, action); iwl_mvm_mac_ctx_send()
1213 int iwl_mvm_mac_ctxt_add(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_add() argument
1215 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_add()
1219 vif->addr, ieee80211_vif_type_p2p(vif))) iwl_mvm_mac_ctxt_add()
1222 ret = iwl_mvm_mac_ctx_send(mvm, vif, FW_CTXT_ACTION_ADD, iwl_mvm_mac_ctxt_add()
1228 iwl_mvm_set_last_nonqos_seq(mvm, vif); iwl_mvm_mac_ctxt_add()
1234 int iwl_mvm_mac_ctxt_changed(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_mac_ctxt_changed() argument
1237 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_changed()
1240 vif->addr, ieee80211_vif_type_p2p(vif))) iwl_mvm_mac_ctxt_changed()
1243 return iwl_mvm_mac_ctx_send(mvm, vif, FW_CTXT_ACTION_MODIFY, iwl_mvm_mac_ctxt_changed()
1247 int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_remove() argument
1249 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_ctxt_remove()
1254 vif->addr, ieee80211_vif_type_p2p(vif))) iwl_mvm_mac_ctxt_remove()
1272 if (vif->type == NL80211_IFTYPE_MONITOR) iwl_mvm_mac_ctxt_remove()
1373 struct ieee80211_vif *vif) iwl_mvm_beacon_loss_iterator()
1376 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_beacon_loss_iterator()
1395 ieee80211_beacon_loss(vif); iwl_mvm_beacon_loss_iterator()
1410 if (!iwl_fw_dbg_trigger_check_stop(mvm, vif, trigger)) iwl_mvm_beacon_loss_iterator()
95 iwl_mvm_mac_tsf_id_iter(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_mac_tsf_id_iter() argument
222 iwl_mvm_iface_hw_queues_iter(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_iface_hw_queues_iter() argument
278 iwl_mvm_mac_iface_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_mac_iface_iterator() argument
302 iwl_mvm_mac_ctxt_recalc_tsf_id(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_recalc_tsf_id() argument
325 iwl_mvm_mac_ctxt_allocate_resources(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_allocate_resources() argument
523 iwl_mvm_ack_rates(struct iwl_mvm *mvm, struct ieee80211_vif *vif, enum ieee80211_band band, u8 *cck_rates, u8 *ofdm_rates) iwl_mvm_ack_rates() argument
609 iwl_mvm_mac_ctxt_set_ht_flags(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mac_ctx_cmd *cmd) iwl_mvm_mac_ctxt_set_ht_flags() argument
643 iwl_mvm_mac_ctxt_cmd_common(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mac_ctx_cmd *cmd, const u8 *bssid_override, u32 action) iwl_mvm_mac_ctxt_cmd_common() argument
756 iwl_mvm_mac_ctxt_cmd_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 action, bool force_assoc_off, const u8 *bssid_override) iwl_mvm_mac_ctxt_cmd_sta() argument
840 iwl_mvm_mac_ctxt_cmd_listener(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 action) iwl_mvm_mac_ctxt_cmd_listener() argument
860 iwl_mvm_mac_ctxt_cmd_ibss(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 action) iwl_mvm_mac_ctxt_cmd_ibss() argument
899 iwl_mvm_mac_ctxt_cmd_p2p_device(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 action) iwl_mvm_mac_ctxt_cmd_p2p_device() argument
956 iwl_mvm_mac_ctxt_send_beacon(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct sk_buff *beacon) iwl_mvm_mac_ctxt_send_beacon() argument
1025 iwl_mvm_mac_ctxt_beacon_changed(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_mac_ctxt_beacon_changed() argument
1051 iwl_mvm_mac_ap_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_mac_ap_iterator() argument
1070 iwl_mvm_mac_ctxt_cmd_fill_ap(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mac_data_ap *ctxt_ap, bool add) iwl_mvm_mac_ctxt_cmd_fill_ap() argument
1127 iwl_mvm_mac_ctxt_cmd_ap(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 action) iwl_mvm_mac_ctxt_cmd_ap() argument
1152 iwl_mvm_mac_ctxt_cmd_go(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 action) iwl_mvm_mac_ctxt_cmd_go() argument
1372 iwl_mvm_beacon_loss_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_beacon_loss_iterator() argument
H A Ddebugfs-vif.c69 struct ieee80211_vif *vif, iwl_dbgfs_update_pm()
72 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_update_pm()
79 int dtimper = vif->bss_conf.dtim_period ?: 1; iwl_dbgfs_update_pm()
80 int dtimper_msec = dtimper * vif->bss_conf.beacon_int; iwl_dbgfs_update_pm()
130 static ssize_t iwl_dbgfs_pm_params_write(struct ieee80211_vif *vif, char *buf, iwl_dbgfs_pm_params_write() argument
133 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_pm_params_write()
186 iwl_dbgfs_update_pm(mvm, vif, param, val); iwl_dbgfs_pm_params_write()
197 struct ieee80211_vif *vif = file->private_data; iwl_dbgfs_pm_params_read() local
198 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_pm_params_read()
204 pos = iwl_mvm_power_mac_dbgfs_read(mvm, vif, buf, bufsz); iwl_dbgfs_pm_params_read()
213 struct ieee80211_vif *vif = file->private_data; iwl_dbgfs_mac_params_read() local
214 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_mac_params_read()
227 switch (ieee80211_vif_type_p2p(vif)) { iwl_dbgfs_mac_params_read()
253 vif->bss_conf.bssid); iwl_dbgfs_mac_params_read()
264 if (vif->type == NL80211_IFTYPE_STATION && iwl_dbgfs_mac_params_read()
281 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_dbgfs_mac_params_read()
294 static void iwl_dbgfs_update_bf(struct ieee80211_vif *vif, iwl_dbgfs_update_bf() argument
297 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_update_bf()
339 static ssize_t iwl_dbgfs_bf_params_write(struct ieee80211_vif *vif, char *buf, iwl_dbgfs_bf_params_write() argument
342 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_bf_params_write()
426 iwl_dbgfs_update_bf(vif, param, value); iwl_dbgfs_bf_params_write()
428 ret = iwl_mvm_disable_beacon_filter(mvm, vif, 0); iwl_dbgfs_bf_params_write()
430 ret = iwl_mvm_enable_beacon_filter(mvm, vif, 0); iwl_dbgfs_bf_params_write()
440 struct ieee80211_vif *vif = file->private_data; iwl_dbgfs_bf_params_read() local
441 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_bf_params_read()
453 iwl_mvm_beacon_filter_debugfs_parameters(vif, &cmd); iwl_dbgfs_bf_params_read()
485 static ssize_t iwl_dbgfs_low_latency_write(struct ieee80211_vif *vif, char *buf, iwl_dbgfs_low_latency_write() argument
488 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_low_latency_write()
500 iwl_mvm_update_low_latency(mvm, vif, value); iwl_dbgfs_low_latency_write()
510 struct ieee80211_vif *vif = file->private_data; iwl_dbgfs_low_latency_read() local
511 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_low_latency_read()
524 struct ieee80211_vif *vif = file->private_data; iwl_dbgfs_uapsd_misbehaving_read() local
525 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_uapsd_misbehaving_read()
533 static ssize_t iwl_dbgfs_uapsd_misbehaving_write(struct ieee80211_vif *vif, iwl_dbgfs_uapsd_misbehaving_write() argument
537 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_uapsd_misbehaving_write()
548 static ssize_t iwl_dbgfs_rx_phyinfo_write(struct ieee80211_vif *vif, char *buf, iwl_dbgfs_rx_phyinfo_write() argument
551 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_rx_phyinfo_write()
565 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_dbgfs_rx_phyinfo_write()
590 struct ieee80211_vif *vif = file->private_data; iwl_dbgfs_rx_phyinfo_read() local
591 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_dbgfs_rx_phyinfo_read()
604 if (!debugfs_create_file(#name, mode, parent, vif, \
616 void iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_vif_dbgfs_register() argument
618 struct dentry *dbgfs_dir = vif->debugfs_dir; iwl_mvm_vif_dbgfs_register()
619 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_vif_dbgfs_register()
638 ((vif->type == NL80211_IFTYPE_STATION && !vif->p2p) || iwl_mvm_vif_dbgfs_register()
639 (vif->type == NL80211_IFTYPE_STATION && vif->p2p && iwl_mvm_vif_dbgfs_register()
652 if (vif->type == NL80211_IFTYPE_STATION && !vif->p2p && iwl_mvm_vif_dbgfs_register()
680 void iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_vif_dbgfs_clean() argument
682 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_vif_dbgfs_clean()
68 iwl_dbgfs_update_pm(struct iwl_mvm *mvm, struct ieee80211_vif *vif, enum iwl_dbgfs_pm_mask param, int val) iwl_dbgfs_update_pm() argument
H A Dpower.c114 struct ieee80211_vif *vif, iwl_mvm_beacon_filter_set_cqm_params()
117 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_beacon_filter_set_cqm_params()
119 if (vif->bss_conf.cqm_rssi_thold) { iwl_mvm_beacon_filter_set_cqm_params()
121 cpu_to_le32(vif->bss_conf.cqm_rssi_hyst); iwl_mvm_beacon_filter_set_cqm_params()
124 cpu_to_le32(-vif->bss_conf.cqm_rssi_thold); iwl_mvm_beacon_filter_set_cqm_params()
167 struct ieee80211_vif *vif, iwl_mvm_power_configure_uapsd()
170 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_configure_uapsd()
260 struct ieee80211_vif *vif) iwl_mvm_power_allow_uapsd()
262 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_allow_uapsd()
264 if (!memcmp(mvmvif->uapsd_misbehaving_bssid, vif->bss_conf.bssid, iwl_mvm_power_allow_uapsd()
268 if (vif->p2p && iwl_mvm_power_allow_uapsd()
275 if (vif->p2p && iwl_mvm_power_allow_uapsd()
276 (vif->bss_conf.p2p_noa_attr.oppps_ctwindow & iwl_mvm_power_allow_uapsd()
311 static bool iwl_mvm_power_is_radar(struct ieee80211_vif *vif) iwl_mvm_power_is_radar() argument
318 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_mvm_power_is_radar()
330 struct ieee80211_vif *vif, iwl_mvm_power_build_cmd()
337 iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_build_cmd()
341 dtimper = vif->bss_conf.dtim_period; iwl_mvm_power_build_cmd()
342 bi = vif->bss_conf.beacon_int; iwl_mvm_power_build_cmd()
360 if (!vif->bss_conf.ps || iwl_mvm_vif_low_latency(mvmvif) || iwl_mvm_power_build_cmd()
366 if (vif->bss_conf.beacon_rate && iwl_mvm_power_build_cmd()
367 (vif->bss_conf.beacon_rate->bitrate == 10 || iwl_mvm_power_build_cmd()
368 vif->bss_conf.beacon_rate->bitrate == 60)) { iwl_mvm_power_build_cmd()
374 radar_detect = iwl_mvm_power_is_radar(vif); iwl_mvm_power_build_cmd()
399 if (iwl_mvm_power_allow_uapsd(mvm, vif)) iwl_mvm_power_build_cmd()
400 iwl_mvm_power_configure_uapsd(mvm, vif, cmd); iwl_mvm_power_build_cmd()
449 struct ieee80211_vif *vif) iwl_mvm_power_send_cmd()
453 iwl_mvm_power_build_cmd(mvm, vif, &cmd); iwl_mvm_power_send_cmd()
456 memcpy(&iwl_mvm_vif_from_mac80211(vif)->mac_pwr_cmd, &cmd, sizeof(cmd)); iwl_mvm_power_send_cmd()
489 void iwl_mvm_power_vif_assoc(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_power_vif_assoc() argument
491 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_vif_assoc()
493 if (memcmp(vif->bss_conf.bssid, mvmvif->uapsd_misbehaving_bssid, iwl_mvm_power_vif_assoc()
499 struct ieee80211_vif *vif) iwl_mvm_power_uapsd_misbehav_ap_iterator()
502 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_uapsd_misbehav_ap_iterator()
508 memcpy(mvmvif->uapsd_misbehaving_bssid, vif->bss_conf.bssid, iwl_mvm_power_uapsd_misbehav_ap_iterator()
541 struct ieee80211_vif *vif) iwl_mvm_power_disable_pm_iterator()
543 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_disable_pm_iterator()
549 struct ieee80211_vif *vif) iwl_mvm_power_ps_disabled_iterator()
551 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_ps_disabled_iterator()
560 struct ieee80211_vif *vif) iwl_mvm_power_get_vifs_iterator()
562 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_get_vifs_iterator()
565 switch (ieee80211_vif_type_p2p(vif)) { iwl_mvm_power_get_vifs_iterator()
573 power_iterator->ap_vif = vif; iwl_mvm_power_get_vifs_iterator()
582 power_iterator->monitor_vif = vif; iwl_mvm_power_get_vifs_iterator()
591 power_iterator->p2p_vif = vif; iwl_mvm_power_get_vifs_iterator()
600 power_iterator->bss_vif = vif; iwl_mvm_power_get_vifs_iterator()
607 power_iterator->bf_vif = vif; iwl_mvm_power_get_vifs_iterator()
692 struct ieee80211_vif *vif, char *buf, iwl_mvm_power_mac_dbgfs_read()
695 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_power_mac_dbgfs_read()
766 iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif, iwl_mvm_beacon_filter_debugfs_parameters() argument
769 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_beacon_filter_debugfs_parameters()
801 struct ieee80211_vif *vif, _iwl_mvm_enable_beacon_filter()
806 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); _iwl_mvm_enable_beacon_filter()
809 if (mvmvif != mvm->bf_allowed_vif || !vif->bss_conf.dtim_period || _iwl_mvm_enable_beacon_filter()
810 vif->type != NL80211_IFTYPE_STATION || vif->p2p) _iwl_mvm_enable_beacon_filter()
813 iwl_mvm_beacon_filter_set_cqm_params(mvm, vif, cmd); _iwl_mvm_enable_beacon_filter()
815 iwl_mvm_beacon_filter_debugfs_parameters(vif, cmd); _iwl_mvm_enable_beacon_filter()
826 struct ieee80211_vif *vif, iwl_mvm_enable_beacon_filter()
834 return _iwl_mvm_enable_beacon_filter(mvm, vif, &cmd, flags, false); iwl_mvm_enable_beacon_filter()
838 struct ieee80211_vif *vif, iwl_mvm_update_beacon_abort()
841 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_update_beacon_abort()
854 return _iwl_mvm_enable_beacon_filter(mvm, vif, &cmd, 0, false); iwl_mvm_update_beacon_abort()
858 struct ieee80211_vif *vif, iwl_mvm_disable_beacon_filter()
862 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_disable_beacon_filter()
865 if (vif->type != NL80211_IFTYPE_STATION || vif->p2p) iwl_mvm_disable_beacon_filter()
979 struct ieee80211_vif *vif, iwl_mvm_update_d0i3_power_mode()
983 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_update_d0i3_power_mode()
986 if (vif->type != NL80211_IFTYPE_STATION || vif->p2p) iwl_mvm_update_d0i3_power_mode()
989 if (!vif->bss_conf.assoc) iwl_mvm_update_d0i3_power_mode()
992 iwl_mvm_power_build_cmd(mvm, vif, &cmd); iwl_mvm_update_d0i3_power_mode()
995 int dtimper = vif->bss_conf.dtim_period ?: 1; iwl_mvm_update_d0i3_power_mode()
996 int dtimper_tu = dtimper * vif->bss_conf.beacon_int; iwl_mvm_update_d0i3_power_mode()
997 bool radar_detect = iwl_mvm_power_is_radar(vif); iwl_mvm_update_d0i3_power_mode()
1029 ret = _iwl_mvm_enable_beacon_filter(mvm, vif, &cmd_bf, iwl_mvm_update_d0i3_power_mode()
1033 ret = iwl_mvm_enable_beacon_filter(mvm, vif, flags); iwl_mvm_update_d0i3_power_mode()
1035 ret = iwl_mvm_disable_beacon_filter(mvm, vif, flags); iwl_mvm_update_d0i3_power_mode()
113 iwl_mvm_beacon_filter_set_cqm_params(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_beacon_filter_cmd *cmd) iwl_mvm_beacon_filter_set_cqm_params() argument
166 iwl_mvm_power_configure_uapsd(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mac_power_cmd *cmd) iwl_mvm_power_configure_uapsd() argument
259 iwl_mvm_power_allow_uapsd(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_power_allow_uapsd() argument
329 iwl_mvm_power_build_cmd(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mac_power_cmd *cmd) iwl_mvm_power_build_cmd() argument
448 iwl_mvm_power_send_cmd(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_power_send_cmd() argument
498 iwl_mvm_power_uapsd_misbehav_ap_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_power_uapsd_misbehav_ap_iterator() argument
540 iwl_mvm_power_disable_pm_iterator(void *_data, u8* mac, struct ieee80211_vif *vif) iwl_mvm_power_disable_pm_iterator() argument
548 iwl_mvm_power_ps_disabled_iterator(void *_data, u8* mac, struct ieee80211_vif *vif) iwl_mvm_power_ps_disabled_iterator() argument
559 iwl_mvm_power_get_vifs_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_power_get_vifs_iterator() argument
691 iwl_mvm_power_mac_dbgfs_read(struct iwl_mvm *mvm, struct ieee80211_vif *vif, char *buf, int bufsz) iwl_mvm_power_mac_dbgfs_read() argument
800 _iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_beacon_filter_cmd *cmd, u32 cmd_flags, bool d0i3) _iwl_mvm_enable_beacon_filter() argument
825 iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 flags) iwl_mvm_enable_beacon_filter() argument
837 iwl_mvm_update_beacon_abort(struct iwl_mvm *mvm, struct ieee80211_vif *vif, bool enable) iwl_mvm_update_beacon_abort() argument
857 iwl_mvm_disable_beacon_filter(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 flags) iwl_mvm_disable_beacon_filter() argument
978 iwl_mvm_update_d0i3_power_mode(struct iwl_mvm *mvm, struct ieee80211_vif *vif, bool enable, u32 flags) iwl_mvm_update_d0i3_power_mode() argument
H A Dmac80211.c146 * be the vif's ip address. in case there is not a single
150 * the LSB bytes of the vif's mac address
734 struct ieee80211_vif *vif, iwl_mvm_mac_ampdu_action()
792 ret = iwl_mvm_sta_tx_agg_start(mvm, vif, sta, tid, ssn); iwl_mvm_mac_ampdu_action()
795 ret = iwl_mvm_sta_tx_agg_stop(mvm, vif, sta, tid); iwl_mvm_mac_ampdu_action()
799 ret = iwl_mvm_sta_tx_agg_flush(mvm, vif, sta, tid); iwl_mvm_mac_ampdu_action()
802 ret = iwl_mvm_sta_tx_agg_oper(mvm, vif, sta, tid, buf_size); iwl_mvm_mac_ampdu_action()
822 struct ieee80211_vif *vif) iwl_mvm_cleanup_iterator()
825 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_cleanup_iterator()
1475 struct ieee80211_vif *vif, s8 tx_power) iwl_mvm_set_tx_power_old()
1479 .mac_context_id = iwl_mvm_vif_from_mac80211(vif)->id, iwl_mvm_set_tx_power_old()
1488 static int iwl_mvm_set_tx_power(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_set_tx_power() argument
1494 cpu_to_le32(iwl_mvm_vif_from_mac80211(vif)->id), iwl_mvm_set_tx_power()
1499 return iwl_mvm_set_tx_power_old(mvm, vif, tx_power); iwl_mvm_set_tx_power()
1509 struct ieee80211_vif *vif) iwl_mvm_mac_add_interface()
1512 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_add_interface()
1540 ret = iwl_mvm_mac_ctxt_init(mvm, vif); iwl_mvm_mac_add_interface()
1545 if (vif->type != NL80211_IFTYPE_P2P_DEVICE) iwl_mvm_mac_add_interface()
1559 if (vif->type == NL80211_IFTYPE_AP || iwl_mvm_mac_add_interface()
1560 vif->type == NL80211_IFTYPE_ADHOC) { iwl_mvm_mac_add_interface()
1561 ret = iwl_mvm_alloc_bcast_sta(mvm, vif); iwl_mvm_mac_add_interface()
1567 iwl_mvm_vif_dbgfs_register(mvm, vif); iwl_mvm_mac_add_interface()
1571 ret = iwl_mvm_mac_ctxt_add(mvm, vif); iwl_mvm_mac_add_interface()
1580 ret = iwl_mvm_disable_beacon_filter(mvm, vif, 0); iwl_mvm_mac_add_interface()
1585 vif->type == NL80211_IFTYPE_STATION && !vif->p2p) { iwl_mvm_mac_add_interface()
1587 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER | iwl_mvm_mac_add_interface()
1596 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { iwl_mvm_mac_add_interface()
1605 ret = iwl_mvm_binding_add_vif(mvm, vif); iwl_mvm_mac_add_interface()
1609 ret = iwl_mvm_add_bcast_sta(mvm, vif); iwl_mvm_mac_add_interface()
1613 /* Save a pointer to p2p device vif, so it can later be used to iwl_mvm_mac_add_interface()
1615 mvm->p2p_device_vif = vif; iwl_mvm_mac_add_interface()
1618 iwl_mvm_vif_dbgfs_register(mvm, vif); iwl_mvm_mac_add_interface()
1622 iwl_mvm_binding_remove_vif(mvm, vif); iwl_mvm_mac_add_interface()
1628 vif->driver_flags &= ~(IEEE80211_VIF_BEACON_FILTER | iwl_mvm_mac_add_interface()
1633 iwl_mvm_mac_ctxt_remove(mvm, vif); iwl_mvm_mac_add_interface()
1635 if (vif->type != NL80211_IFTYPE_P2P_DEVICE) iwl_mvm_mac_add_interface()
1638 iwl_mvm_mac_ctxt_release(mvm, vif); iwl_mvm_mac_add_interface()
1648 struct ieee80211_vif *vif) iwl_mvm_prepare_mac_removal()
1650 u32 tfd_msk = iwl_mvm_mac_get_queues_mask(vif); iwl_mvm_prepare_mac_removal()
1654 * mac80211 first removes all the stations of the vif and iwl_mvm_prepare_mac_removal()
1655 * then removes the vif. When it removes a station it also iwl_mvm_prepare_mac_removal()
1657 * of all the stations of this vif are closed, and the queues iwl_mvm_prepare_mac_removal()
1659 * We still need to take care of the shared queues of the vif. iwl_mvm_prepare_mac_removal()
1682 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { iwl_mvm_prepare_mac_removal()
1701 struct ieee80211_vif *vif) iwl_mvm_mac_remove_interface()
1704 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_remove_interface()
1706 iwl_mvm_prepare_mac_removal(mvm, vif); iwl_mvm_mac_remove_interface()
1712 vif->driver_flags &= ~(IEEE80211_VIF_BEACON_FILTER | iwl_mvm_mac_remove_interface()
1716 iwl_mvm_vif_dbgfs_clean(mvm, vif); iwl_mvm_mac_remove_interface()
1722 if (vif->type == NL80211_IFTYPE_AP || iwl_mvm_mac_remove_interface()
1723 vif->type == NL80211_IFTYPE_ADHOC) { iwl_mvm_mac_remove_interface()
1725 if (vif == mvm->noa_vif) { iwl_mvm_mac_remove_interface()
1730 iwl_mvm_dealloc_bcast_sta(mvm, vif); iwl_mvm_mac_remove_interface()
1734 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { iwl_mvm_mac_remove_interface()
1736 iwl_mvm_rm_bcast_sta(mvm, vif); iwl_mvm_mac_remove_interface()
1737 iwl_mvm_binding_remove_vif(mvm, vif); iwl_mvm_mac_remove_interface()
1742 if (mvm->vif_count && vif->type != NL80211_IFTYPE_P2P_DEVICE) iwl_mvm_mac_remove_interface()
1746 iwl_mvm_mac_ctxt_remove(mvm, vif); iwl_mvm_mac_remove_interface()
1749 iwl_mvm_mac_ctxt_release(mvm, vif); iwl_mvm_mac_remove_interface()
1764 struct ieee80211_vif *vif) iwl_mvm_mc_iface_iterator()
1775 if (vif->type != NL80211_IFTYPE_STATION || iwl_mvm_mc_iface_iterator()
1776 !vif->bss_conf.assoc) iwl_mvm_mc_iface_iterator()
1780 memcpy(cmd->bssid, vif->bss_conf.bssid, ETH_ALEN); iwl_mvm_mc_iface_iterator()
1872 iwl_mvm_set_bcast_filter(struct ieee80211_vif *vif, iwl_mvm_set_bcast_filter() argument
1889 if (vif->bss_conf.arp_addr_cnt != 1) { cpu_to_le16()
1894 attr->val = vif->bss_conf.arp_addr_list[0];
1897 attr->val = *(__be32 *)&vif->addr[2];
1908 struct ieee80211_vif *vif) iwl_mvm_bcast_filter_iterator()
1913 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bcast_filter_iterator()
1926 if (vif->type != NL80211_IFTYPE_STATION || vif->p2p || iwl_mvm_bcast_filter_iterator()
1927 !vif->bss_conf.assoc) iwl_mvm_bcast_filter_iterator()
1946 iwl_mvm_set_bcast_filter(vif, iwl_mvm_bcast_filter_iterator()
1992 /* configure and attach these filters for each associated sta vif */ iwl_mvm_bcast_filter_build_cmd()
2000 struct ieee80211_vif *vif) iwl_mvm_configure_bcast_filter()
2015 struct ieee80211_vif *vif) iwl_mvm_configure_bcast_filter()
2022 struct ieee80211_vif *vif, iwl_mvm_bss_info_changed_station()
2026 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bss_info_changed_station()
2035 iwl_mvm_mac_ctxt_recalc_tsf_id(mvm, vif); iwl_mvm_bss_info_changed_station()
2046 ret = iwl_mvm_mac_ctxt_changed(mvm, vif, false, mvmvif->bssid); iwl_mvm_bss_info_changed_station()
2048 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); iwl_mvm_bss_info_changed_station()
2084 u32 dur = (11 * vif->bss_conf.beacon_int) / 10; iwl_mvm_bss_info_changed_station()
2085 iwl_mvm_protect_session(mvm, vif, dur, dur, iwl_mvm_bss_info_changed_station()
2089 iwl_mvm_sf_update(mvm, vif, false); iwl_mvm_bss_info_changed_station()
2090 iwl_mvm_power_vif_assoc(mvm, vif); iwl_mvm_bss_info_changed_station()
2091 if (vif->p2p) { iwl_mvm_bss_info_changed_station()
2093 iwl_mvm_update_smps(mvm, vif, iwl_mvm_bss_info_changed_station()
2102 WARN_ONCE(iwl_mvm_sf_update(mvm, vif, false), iwl_mvm_bss_info_changed_station()
2106 ret = iwl_mvm_rm_sta_id(mvm, vif, mvmvif->ap_sta_id); iwl_mvm_bss_info_changed_station()
2118 if (vif->p2p) iwl_mvm_bss_info_changed_station()
2122 ret = iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL); iwl_mvm_bss_info_changed_station()
2126 vif->addr); iwl_mvm_bss_info_changed_station()
2130 iwl_mvm_configure_bcast_filter(mvm, vif); iwl_mvm_bss_info_changed_station()
2136 iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_TT, iwl_mvm_bss_info_changed_station()
2148 iwl_mvm_sf_update(mvm, vif, false); iwl_mvm_bss_info_changed_station()
2149 WARN_ON(iwl_mvm_enable_beacon_filter(mvm, vif, 0)); iwl_mvm_bss_info_changed_station()
2161 iwl_mvm_set_tx_power(mvm, vif, bss_conf->txpower); iwl_mvm_bss_info_changed_station()
2169 ret = iwl_mvm_enable_beacon_filter(mvm, vif, 0); iwl_mvm_bss_info_changed_station()
2178 iwl_mvm_configure_bcast_filter(mvm, vif); iwl_mvm_bss_info_changed_station()
2183 struct ieee80211_vif *vif) iwl_mvm_start_ap_ibss()
2186 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_start_ap_ibss()
2200 ret = iwl_mvm_mac_ctxt_beacon_changed(mvm, vif); iwl_mvm_start_ap_ibss()
2208 if (vif->type == NL80211_IFTYPE_AP) iwl_mvm_start_ap_ibss()
2209 iwl_mvm_mac_ctxt_recalc_tsf_id(mvm, vif); iwl_mvm_start_ap_ibss()
2212 ret = iwl_mvm_mac_ctxt_add(mvm, vif); iwl_mvm_start_ap_ibss()
2217 ret = iwl_mvm_binding_add_vif(mvm, vif); iwl_mvm_start_ap_ibss()
2223 ret = iwl_mvm_send_add_bcast_sta(mvm, vif); iwl_mvm_start_ap_ibss()
2237 /* Need to update the P2P Device MAC (only GO, IBSS is single vif) */ iwl_mvm_start_ap_ibss()
2238 if (vif->p2p && mvm->p2p_device_vif) iwl_mvm_start_ap_ibss()
2254 iwl_mvm_send_rm_bcast_sta(mvm, vif); iwl_mvm_start_ap_ibss()
2256 iwl_mvm_binding_remove_vif(mvm, vif); iwl_mvm_start_ap_ibss()
2258 iwl_mvm_mac_ctxt_remove(mvm, vif); iwl_mvm_start_ap_ibss()
2266 struct ieee80211_vif *vif) iwl_mvm_stop_ap_ibss()
2269 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_stop_ap_ibss()
2271 iwl_mvm_prepare_mac_removal(mvm, vif); iwl_mvm_stop_ap_ibss()
2276 if (rcu_access_pointer(mvm->csa_vif) == vif) { iwl_mvm_stop_ap_ibss()
2283 if (rcu_access_pointer(mvm->csa_tx_blocked_vif) == vif) { iwl_mvm_stop_ap_ibss()
2295 /* Need to update the P2P Device MAC (only GO, IBSS is single vif) */ iwl_mvm_stop_ap_ibss()
2296 if (vif->p2p && mvm->p2p_device_vif) iwl_mvm_stop_ap_ibss()
2300 iwl_mvm_send_rm_bcast_sta(mvm, vif); iwl_mvm_stop_ap_ibss()
2301 iwl_mvm_binding_remove_vif(mvm, vif); iwl_mvm_stop_ap_ibss()
2305 iwl_mvm_mac_ctxt_remove(mvm, vif); iwl_mvm_stop_ap_ibss()
2312 struct ieee80211_vif *vif, iwl_mvm_bss_info_changed_ap_ibss()
2316 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bss_info_changed_ap_ibss()
2324 iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL)) iwl_mvm_bss_info_changed_ap_ibss()
2325 IWL_ERR(mvm, "failed to update MAC %pM\n", vif->addr); iwl_mvm_bss_info_changed_ap_ibss()
2329 iwl_mvm_mac_ctxt_beacon_changed(mvm, vif)) iwl_mvm_bss_info_changed_ap_ibss()
2335 iwl_mvm_set_tx_power(mvm, vif, bss_conf->txpower); iwl_mvm_bss_info_changed_ap_ibss()
2341 struct ieee80211_vif *vif, iwl_mvm_bss_info_changed()
2360 switch (vif->type) { iwl_mvm_bss_info_changed()
2362 iwl_mvm_bss_info_changed_station(mvm, vif, bss_conf, changes); iwl_mvm_bss_info_changed()
2366 iwl_mvm_bss_info_changed_ap_ibss(mvm, vif, bss_conf, changes); iwl_mvm_bss_info_changed()
2419 struct ieee80211_vif *vif, iwl_mvm_mac_hw_scan()
2452 ret = iwl_mvm_scan_umac(mvm, vif, hw_req); iwl_mvm_mac_hw_scan()
2454 ret = iwl_mvm_unified_scan_lmac(mvm, vif, hw_req); iwl_mvm_mac_hw_scan()
2464 struct ieee80211_vif *vif) iwl_mvm_mac_cancel_hw_scan()
2518 struct ieee80211_vif *vif, iwl_mvm_mac_sta_notify()
2574 struct ieee80211_vif *vif, iwl_mvm_sta_pre_rcu_remove()
2595 static void iwl_mvm_check_uapsd(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_check_uapsd() argument
2602 vif->driver_flags &= ~IEEE80211_VIF_SUPPORTS_UAPSD; iwl_mvm_check_uapsd()
2606 vif->driver_flags |= IEEE80211_VIF_SUPPORTS_UAPSD; iwl_mvm_check_uapsd()
2610 struct ieee80211_vif *vif, iwl_mvm_mac_sta_state()
2616 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_sta_state()
2639 if (vif->type == NL80211_IFTYPE_STATION && iwl_mvm_mac_sta_state()
2640 vif->bss_conf.beacon_int < 16) { iwl_mvm_mac_sta_state()
2643 sta->addr, vif->bss_conf.beacon_int); iwl_mvm_mac_sta_state()
2649 (vif->p2p || iwl_mvm_mac_sta_state()
2658 ret = iwl_mvm_add_sta(mvm, vif, sta); iwl_mvm_mac_sta_state()
2660 iwl_mvm_recalc_tdls_state(mvm, vif, true); iwl_mvm_mac_sta_state()
2668 iwl_mvm_check_uapsd(mvm, vif, sta->addr); iwl_mvm_mac_sta_state()
2672 ret = iwl_mvm_update_sta(mvm, vif, sta); iwl_mvm_mac_sta_state()
2685 WARN_ON(iwl_mvm_enable_beacon_filter(mvm, vif, 0)); iwl_mvm_mac_sta_state()
2690 WARN_ON(iwl_mvm_disable_beacon_filter(mvm, vif, 0)); iwl_mvm_mac_sta_state()
2700 ret = iwl_mvm_rm_sta(mvm, vif, sta); iwl_mvm_mac_sta_state()
2702 iwl_mvm_recalc_tdls_state(mvm, vif, false); iwl_mvm_mac_sta_state()
2731 struct ieee80211_vif *vif, iwl_mvm_sta_rc_update()
2736 if (vif->type == NL80211_IFTYPE_STATION && iwl_mvm_sta_rc_update()
2738 iwl_mvm_sf_update(mvm, vif, false); iwl_mvm_sta_rc_update()
2742 struct ieee80211_vif *vif, u16 ac, iwl_mvm_mac_conf_tx()
2746 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_conf_tx()
2754 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { iwl_mvm_mac_conf_tx()
2758 ret = iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL); iwl_mvm_mac_conf_tx()
2766 struct ieee80211_vif *vif) iwl_mvm_mac_mgd_prepare_tx()
2770 200 + vif->bss_conf.beacon_int); iwl_mvm_mac_mgd_prepare_tx()
2772 100 + vif->bss_conf.beacon_int); iwl_mvm_mac_mgd_prepare_tx()
2774 if (WARN_ON_ONCE(vif->bss_conf.assoc)) iwl_mvm_mac_mgd_prepare_tx()
2786 iwl_mvm_protect_session(mvm, vif, duration, min_duration, 500, false); iwl_mvm_mac_mgd_prepare_tx()
2793 struct ieee80211_vif *vif, iwl_mvm_mac_sched_scan_start()
2818 if (!vif->bss_conf.idle) { iwl_mvm_mac_sched_scan_start()
2828 ret = iwl_mvm_scan_offload_start(mvm, vif, req, ies); iwl_mvm_mac_sched_scan_start()
2838 struct ieee80211_vif *vif) iwl_mvm_mac_sched_scan_stop()
2871 struct ieee80211_vif *vif, iwl_mvm_mac_set_key()
2902 if (vif->type != NL80211_IFTYPE_STATION) iwl_mvm_mac_set_key()
2918 if ((vif->type == NL80211_IFTYPE_ADHOC || iwl_mvm_mac_set_key()
2919 vif->type == NL80211_IFTYPE_AP) && !sta) { iwl_mvm_mac_set_key()
2931 ret = iwl_mvm_set_sta_key(mvm, vif, sta, key, false); iwl_mvm_mac_set_key()
2950 ret = iwl_mvm_remove_sta_key(mvm, vif, sta, key); iwl_mvm_mac_set_key()
2961 struct ieee80211_vif *vif, iwl_mvm_mac_update_tkip_key()
2971 iwl_mvm_update_tkip_key(mvm, vif, keyconf, sta, iv32, phase1key); iwl_mvm_mac_update_tkip_key()
3012 struct ieee80211_vif *vif, iwl_mvm_send_aux_roc_cmd()
3016 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_send_aux_roc_cmd()
3038 memcpy(aux_roc_req.node_addr, vif->addr, ETH_ALEN); iwl_mvm_send_aux_roc_cmd()
3049 te_data->vif = vif; iwl_mvm_send_aux_roc_cmd()
3094 struct ieee80211_vif *vif, iwl_mvm_roc()
3100 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_roc()
3112 switch (vif->type) { iwl_mvm_roc()
3118 vif, duration); iwl_mvm_roc()
3128 IWL_ERR(mvm, "vif isn't P2P_DEVICE: %d\n", vif->type); iwl_mvm_roc()
3143 ret = iwl_mvm_binding_remove_vif(mvm, vif); iwl_mvm_roc()
3152 ret = iwl_mvm_binding_add_vif(mvm, vif); iwl_mvm_roc()
3196 ret = iwl_mvm_binding_remove_vif(mvm, vif); iwl_mvm_roc()
3205 ret = iwl_mvm_binding_add_vif(mvm, vif); iwl_mvm_roc()
3214 ret = iwl_mvm_start_p2p_roc(mvm, vif, duration, type); iwl_mvm_roc()
3327 struct ieee80211_vif *vif, __iwl_mvm_assign_vif_chanctx()
3333 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); __iwl_mvm_assign_vif_chanctx()
3340 switch (vif->type) { __iwl_mvm_assign_vif_chanctx()
3365 ret = iwl_mvm_binding_add_vif(mvm, vif); __iwl_mvm_assign_vif_chanctx()
3379 if (vif->type == NL80211_IFTYPE_MONITOR) { __iwl_mvm_assign_vif_chanctx()
3387 if (vif->type == NL80211_IFTYPE_AP) { __iwl_mvm_assign_vif_chanctx()
3389 iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL); __iwl_mvm_assign_vif_chanctx()
3392 if (switching_chanctx && vif->type == NL80211_IFTYPE_STATION) { __iwl_mvm_assign_vif_chanctx()
3393 u32 duration = 2 * vif->bss_conf.beacon_int; __iwl_mvm_assign_vif_chanctx()
3406 iwl_mvm_protect_session(mvm, vif, duration, duration, __iwl_mvm_assign_vif_chanctx()
3407 vif->bss_conf.beacon_int / 2, __iwl_mvm_assign_vif_chanctx()
3418 iwl_mvm_binding_remove_vif(mvm, vif); __iwl_mvm_assign_vif_chanctx()
3426 struct ieee80211_vif *vif, iwl_mvm_assign_vif_chanctx()
3433 ret = __iwl_mvm_assign_vif_chanctx(mvm, vif, ctx, false); iwl_mvm_assign_vif_chanctx()
3440 struct ieee80211_vif *vif, __iwl_mvm_unassign_vif_chanctx()
3444 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); __iwl_mvm_unassign_vif_chanctx()
3451 switch (vif->type) { __iwl_mvm_unassign_vif_chanctx()
3469 rcu_assign_pointer(mvm->csa_tx_blocked_vif, vif); __iwl_mvm_unassign_vif_chanctx()
3477 disabled_vif = vif; __iwl_mvm_unassign_vif_chanctx()
3479 iwl_mvm_mac_ctxt_changed(mvm, vif, true, NULL); __iwl_mvm_unassign_vif_chanctx()
3486 iwl_mvm_binding_remove_vif(mvm, vif); __iwl_mvm_unassign_vif_chanctx()
3494 struct ieee80211_vif *vif, iwl_mvm_unassign_vif_chanctx()
3500 __iwl_mvm_unassign_vif_chanctx(mvm, vif, ctx, false); iwl_mvm_unassign_vif_chanctx()
3511 __iwl_mvm_unassign_vif_chanctx(mvm, vifs[0].vif, vifs[0].old_ctx, true); iwl_mvm_switch_vif_chanctx_swap()
3520 ret = __iwl_mvm_assign_vif_chanctx(mvm, vifs[0].vif, vifs[0].new_ctx, iwl_mvm_switch_vif_chanctx_swap()
3543 if (__iwl_mvm_assign_vif_chanctx(mvm, vifs[0].vif, vifs[0].old_ctx, iwl_mvm_switch_vif_chanctx_swap()
3568 __iwl_mvm_unassign_vif_chanctx(mvm, vifs[0].vif, vifs[0].old_ctx, true); iwl_mvm_switch_vif_chanctx_reassign()
3570 ret = __iwl_mvm_assign_vif_chanctx(mvm, vifs[0].vif, vifs[0].new_ctx, iwl_mvm_switch_vif_chanctx_reassign()
3581 if (__iwl_mvm_assign_vif_chanctx(mvm, vifs[0].vif, vifs[0].old_ctx, iwl_mvm_switch_vif_chanctx_reassign()
3607 /* we only support a single-vif right now */ iwl_mvm_switch_vif_chanctx()
3633 if (!mvm_sta || !mvm_sta->vif) { iwl_mvm_set_tim()
3634 IWL_ERR(mvm, "Station is not associated to a vif\n"); iwl_mvm_set_tim()
3638 return iwl_mvm_mac_ctxt_beacon_changed(mvm, mvm_sta->vif); iwl_mvm_set_tim()
3649 struct ieee80211_vif *vif, __iwl_mvm_mac_testmode_cmd()
3665 if (!vif || vif->type != NL80211_IFTYPE_AP || !vif->p2p || __iwl_mvm_mac_testmode_cmd()
3666 !vif->bss_conf.enable_beacon || __iwl_mvm_mac_testmode_cmd()
3671 if (noa_duration >= vif->bss_conf.beacon_int) __iwl_mvm_mac_testmode_cmd()
3675 mvm->noa_vif = vif; __iwl_mvm_mac_testmode_cmd()
3679 /* must be associated client vif - ignore authorized */ __iwl_mvm_mac_testmode_cmd()
3680 if (!vif || vif->type != NL80211_IFTYPE_STATION || __iwl_mvm_mac_testmode_cmd()
3681 !vif->bss_conf.assoc || !vif->bss_conf.dtim_period || __iwl_mvm_mac_testmode_cmd()
3686 return iwl_mvm_enable_beacon_filter(mvm, vif, 0); __iwl_mvm_mac_testmode_cmd()
3687 return iwl_mvm_disable_beacon_filter(mvm, vif, 0); __iwl_mvm_mac_testmode_cmd()
3694 struct ieee80211_vif *vif, iwl_mvm_mac_testmode_cmd()
3701 err = __iwl_mvm_mac_testmode_cmd(mvm, vif, data, len); iwl_mvm_mac_testmode_cmd()
3709 struct ieee80211_vif *vif, iwl_mvm_channel_switch()
3723 struct ieee80211_vif *vif, iwl_mvm_pre_channel_switch()
3728 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_pre_channel_switch()
3739 iwl_fw_dbg_trigger_simple_stop(mvm, vif, FW_DBG_TRIGGER_CHANNEL_SWITCH); iwl_mvm_pre_channel_switch()
3741 switch (vif->type) { iwl_mvm_pre_channel_switch()
3752 rcu_assign_pointer(mvm->csa_vif, vif); iwl_mvm_pre_channel_switch()
3767 ((vif->bss_conf.beacon_int * (chsw->count - 1) - iwl_mvm_pre_channel_switch()
3771 iwl_mvm_csa_client_absent(mvm, vif); iwl_mvm_pre_channel_switch()
3773 iwl_mvm_schedule_csa_period(mvm, vif, vif->bss_conf.beacon_int, iwl_mvm_pre_channel_switch()
3776 ret = iwl_mvm_disable_beacon_filter(mvm, vif, 0); iwl_mvm_pre_channel_switch()
3802 struct ieee80211_vif *vif) iwl_mvm_post_channel_switch()
3804 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_post_channel_switch()
3816 if (vif->type == NL80211_IFTYPE_STATION) { iwl_mvm_post_channel_switch()
3829 iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL); iwl_mvm_post_channel_switch()
3831 ret = iwl_mvm_enable_beacon_filter(mvm, vif, 0); iwl_mvm_post_channel_switch()
3835 iwl_mvm_stop_session_protection(mvm, vif); iwl_mvm_post_channel_switch()
3849 struct ieee80211_vif *vif, u32 queues, bool drop) iwl_mvm_mac_flush()
3858 if (!vif || vif->type != NL80211_IFTYPE_STATION) iwl_mvm_mac_flush()
3862 mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_flush()
3872 if (mvmsta->vif != vif) iwl_mvm_mac_flush()
3946 struct ieee80211_vif *vif, iwl_mvm_mac_sta_statistics()
3951 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_mac_sta_statistics()
3959 if (!(vif->driver_flags & IEEE80211_VIF_BEACON_FILTER)) iwl_mvm_mac_sta_statistics()
3962 if (!vif->bss_conf.assoc) iwl_mvm_mac_sta_statistics()
3986 struct ieee80211_vif *vif, iwl_mvm_mac_event_callback()
4005 if (!iwl_fw_dbg_trigger_check_stop(mvm, vif, trig)) iwl_mvm_mac_event_callback()
733 iwl_mvm_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) iwl_mvm_mac_ampdu_action() argument
821 iwl_mvm_cleanup_iterator(void *data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_cleanup_iterator() argument
1474 iwl_mvm_set_tx_power_old(struct iwl_mvm *mvm, struct ieee80211_vif *vif, s8 tx_power) iwl_mvm_set_tx_power_old() argument
1508 iwl_mvm_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_mac_add_interface() argument
1647 iwl_mvm_prepare_mac_removal(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_prepare_mac_removal() argument
1700 iwl_mvm_mac_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_mac_remove_interface() argument
1763 iwl_mvm_mc_iface_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_mc_iface_iterator() argument
1907 iwl_mvm_bcast_filter_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_bcast_filter_iterator() argument
1999 iwl_mvm_configure_bcast_filter(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_configure_bcast_filter() argument
2014 iwl_mvm_configure_bcast_filter(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_configure_bcast_filter() argument
2021 iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changes) iwl_mvm_bss_info_changed_station() argument
2182 iwl_mvm_start_ap_ibss(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_start_ap_ibss() argument
2265 iwl_mvm_stop_ap_ibss(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_stop_ap_ibss() argument
2311 iwl_mvm_bss_info_changed_ap_ibss(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changes) iwl_mvm_bss_info_changed_ap_ibss() argument
2340 iwl_mvm_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changes) iwl_mvm_bss_info_changed() argument
2418 iwl_mvm_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) iwl_mvm_mac_hw_scan() argument
2463 iwl_mvm_mac_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_mac_cancel_hw_scan() argument
2517 iwl_mvm_mac_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta) iwl_mvm_mac_sta_notify() argument
2573 iwl_mvm_sta_pre_rcu_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwl_mvm_sta_pre_rcu_remove() argument
2609 iwl_mvm_mac_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, enum ieee80211_sta_state old_state, enum ieee80211_sta_state new_state) iwl_mvm_mac_sta_state() argument
2730 iwl_mvm_sta_rc_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, u32 changed) iwl_mvm_sta_rc_update() argument
2741 iwl_mvm_mac_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 ac, const struct ieee80211_tx_queue_params *params) iwl_mvm_mac_conf_tx() argument
2765 iwl_mvm_mac_mgd_prepare_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_mac_mgd_prepare_tx() argument
2792 iwl_mvm_mac_sched_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_sched_scan_request *req, struct ieee80211_scan_ies *ies) iwl_mvm_mac_sched_scan_start() argument
2837 iwl_mvm_mac_sched_scan_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_mac_sched_scan_stop() argument
2869 iwl_mvm_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) iwl_mvm_mac_set_key() argument
2960 iwl_mvm_mac_update_tkip_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_key_conf *keyconf, struct ieee80211_sta *sta, u32 iv32, u16 *phase1key) iwl_mvm_mac_update_tkip_key() argument
3010 iwl_mvm_send_aux_roc_cmd(struct iwl_mvm *mvm, struct ieee80211_channel *channel, struct ieee80211_vif *vif, int duration) iwl_mvm_send_aux_roc_cmd() argument
3093 iwl_mvm_roc(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel *channel, int duration, enum ieee80211_roc_type type) iwl_mvm_roc() argument
3326 __iwl_mvm_assign_vif_chanctx(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *ctx, bool switching_chanctx) __iwl_mvm_assign_vif_chanctx() argument
3425 iwl_mvm_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *ctx) iwl_mvm_assign_vif_chanctx() argument
3439 __iwl_mvm_unassign_vif_chanctx(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *ctx, bool switching_chanctx) __iwl_mvm_unassign_vif_chanctx() argument
3493 iwl_mvm_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *ctx) iwl_mvm_unassign_vif_chanctx() argument
3648 __iwl_mvm_mac_testmode_cmd(struct iwl_mvm *mvm, struct ieee80211_vif *vif, void *data, int len) __iwl_mvm_mac_testmode_cmd() argument
3693 iwl_mvm_mac_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void *data, int len) iwl_mvm_mac_testmode_cmd() argument
3708 iwl_mvm_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel_switch *chsw) iwl_mvm_channel_switch() argument
3722 iwl_mvm_pre_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel_switch *chsw) iwl_mvm_pre_channel_switch() argument
3801 iwl_mvm_post_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_post_channel_switch() argument
3848 iwl_mvm_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 queues, bool drop) iwl_mvm_mac_flush() argument
3945 iwl_mvm_mac_sta_statistics(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct station_info *sinfo) iwl_mvm_mac_sta_statistics() argument
3985 iwl_mvm_mac_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const struct ieee80211_event *event) iwl_mvm_mac_event_callback() argument
H A Dtdls.c88 ieee80211_tdls_oper_request(mvmsta->vif, sta->addr, iwl_mvm_teardown_tdls_peers()
95 int iwl_mvm_tdls_sta_count(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_tdls_sta_count() argument
110 if (vif) { iwl_mvm_tdls_sta_count()
112 if (mvmsta->vif != vif) iwl_mvm_tdls_sta_count()
122 static void iwl_mvm_tdls_config(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_tdls_config() argument
135 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_tdls_config()
187 void iwl_mvm_recalc_tdls_state(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_recalc_tdls_state() argument
190 int tdls_sta_cnt = iwl_mvm_tdls_sta_count(mvm, vif); iwl_mvm_recalc_tdls_state()
197 iwl_mvm_tdls_config(mvm, vif); iwl_mvm_recalc_tdls_state()
205 struct ieee80211_vif *vif) iwl_mvm_mac_mgd_protect_tdls_discover()
208 u32 duration = 2 * vif->bss_conf.dtim_period * vif->bss_conf.beacon_int; iwl_mvm_mac_mgd_protect_tdls_discover()
219 iwl_mvm_protect_session(mvm, vif, duration, duration, 100, true); iwl_mvm_mac_mgd_protect_tdls_discover()
272 struct ieee80211_vif *vif; iwl_mvm_rx_tdls_notif() local
293 vif = mvmsta->vif; iwl_mvm_rx_tdls_notif()
299 delay = TU_TO_MS(vif->bss_conf.dtim_period * vif->bss_conf.beacon_int); iwl_mvm_rx_tdls_notif()
394 struct ieee80211_vif *vif, iwl_mvm_tdls_config_channel_switch()
428 sta = ieee80211_find_sta(vif, peer); iwl_mvm_tdls_config_channel_switch()
446 rcu_dereference(vif->chanctx_conf); iwl_mvm_tdls_config_channel_switch()
467 cpu_to_le32(TU_TO_US(vif->bss_conf.dtim_period * iwl_mvm_tdls_config_channel_switch()
468 vif->bss_conf.beacon_int) / 2); iwl_mvm_tdls_config_channel_switch()
520 struct ieee80211_vif *vif; iwl_mvm_tdls_ch_switch_work() local
542 vif = mvmsta->vif; iwl_mvm_tdls_ch_switch_work()
543 ret = iwl_mvm_tdls_config_channel_switch(mvm, vif, iwl_mvm_tdls_ch_switch_work()
556 delay = TU_TO_MS(vif->bss_conf.dtim_period * vif->bss_conf.beacon_int); iwl_mvm_tdls_ch_switch_work()
565 struct ieee80211_vif *vif, iwl_mvm_tdls_channel_switch()
589 ret = iwl_mvm_tdls_config_channel_switch(mvm, vif, iwl_mvm_tdls_channel_switch()
598 * Mark the peer as "in tdls switch" for this vif. We only allow a iwl_mvm_tdls_channel_switch()
599 * single such peer per vif. iwl_mvm_tdls_channel_switch()
618 delay = 2 * TU_TO_MS(vif->bss_conf.dtim_period * iwl_mvm_tdls_channel_switch()
619 vif->bss_conf.beacon_int); iwl_mvm_tdls_channel_switch()
629 struct ieee80211_vif *vif, iwl_mvm_tdls_cancel_channel_switch()
671 msleep(TU_TO_MS(vif->bss_conf.dtim_period * iwl_mvm_tdls_cancel_channel_switch()
672 vif->bss_conf.beacon_int)); iwl_mvm_tdls_cancel_channel_switch()
682 struct ieee80211_vif *vif, iwl_mvm_tdls_recv_channel_switch()
722 iwl_mvm_tdls_config_channel_switch(mvm, vif, type, params->sta->addr, iwl_mvm_tdls_recv_channel_switch()
732 delay = vif->bss_conf.dtim_period * vif->bss_conf.beacon_int * iwl_mvm_tdls_recv_channel_switch()
204 iwl_mvm_mac_mgd_protect_tdls_discover(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwl_mvm_mac_mgd_protect_tdls_discover() argument
393 iwl_mvm_tdls_config_channel_switch(struct iwl_mvm *mvm, struct ieee80211_vif *vif, enum iwl_tdls_channel_switch_type type, const u8 *peer, bool peer_initiator, u8 oper_class, struct cfg80211_chan_def *chandef, u32 timestamp, u16 switch_time, u16 switch_timeout, struct sk_buff *skb, u32 ch_sw_tm_ie) iwl_mvm_tdls_config_channel_switch() argument
564 iwl_mvm_tdls_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, u8 oper_class, struct cfg80211_chan_def *chandef, struct sk_buff *tmpl_skb, u32 ch_sw_tm_ie) iwl_mvm_tdls_channel_switch() argument
628 iwl_mvm_tdls_cancel_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwl_mvm_tdls_cancel_channel_switch() argument
681 iwl_mvm_tdls_recv_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_tdls_ch_sw_params *params) iwl_mvm_tdls_recv_channel_switch() argument
H A Dbinding.c118 struct ieee80211_vif *vif) iwl_mvm_iface_iterator()
121 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_iface_iterator()
123 if (vif == data->ignore_vif) iwl_mvm_iface_iterator()
138 struct ieee80211_vif *vif, iwl_mvm_binding_update()
142 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_binding_update()
144 .ignore_vif = vif, iwl_mvm_binding_update()
179 int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_binding_add_vif() argument
181 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_binding_add_vif()
190 if (iwl_mvm_sf_update(mvm, vif, false)) iwl_mvm_binding_add_vif()
193 return iwl_mvm_binding_update(mvm, vif, mvmvif->phy_ctxt, true); iwl_mvm_binding_add_vif()
196 int iwl_mvm_binding_remove_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_binding_remove_vif() argument
198 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_binding_remove_vif()
204 ret = iwl_mvm_binding_update(mvm, vif, mvmvif->phy_ctxt, false); iwl_mvm_binding_remove_vif()
207 if (iwl_mvm_sf_update(mvm, vif, true)) iwl_mvm_binding_remove_vif()
117 iwl_mvm_iface_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_iface_iterator() argument
137 iwl_mvm_binding_update(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mvm_phy_ctxt *phyctxt, bool add) iwl_mvm_binding_update() argument
H A Dsta.c82 /* d0i3/d3 assumes the AP's sta_id (of sta vif) is 0. reserve it. */ iwl_mvm_find_free_sta_id()
260 struct ieee80211_vif *vif, iwl_mvm_add_sta()
263 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_add_sta()
271 ieee80211_vif_type_p2p(vif)); iwl_mvm_add_sta()
283 mvm_sta->vif = vif; iwl_mvm_add_sta()
300 if (vif->hw_queue[i] != IEEE80211_INVAL_HW_QUEUE) iwl_mvm_add_sta()
301 mvm_sta->tfd_queue_msk |= BIT(vif->hw_queue[i]); iwl_mvm_add_sta()
316 if (vif->type == NL80211_IFTYPE_STATION) { iwl_mvm_add_sta()
335 struct ieee80211_vif *vif, iwl_mvm_update_sta()
482 struct ieee80211_vif *vif, iwl_mvm_rm_sta()
485 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_rm_sta()
491 if (vif->type == NL80211_IFTYPE_STATION && iwl_mvm_rm_sta()
507 if (vif->bss_conf.assoc) iwl_mvm_rm_sta()
564 struct ieee80211_vif *vif, iwl_mvm_rm_sta_id()
674 * Send the add station command for the vif's broadcast station.
678 * @vif: the interface to which the broadcast station is added
681 int iwl_mvm_send_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_send_add_bcast_sta() argument
683 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_send_add_bcast_sta()
690 if (vif->type == NL80211_IFTYPE_ADHOC) iwl_mvm_send_add_bcast_sta()
691 baddr = vif->bss_conf.bssid; iwl_mvm_send_add_bcast_sta()
702 int iwl_mvm_send_rm_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_send_rm_bcast_sta() argument
704 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_send_rm_bcast_sta()
715 int iwl_mvm_alloc_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_alloc_bcast_sta() argument
717 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_alloc_bcast_sta()
722 qmask = iwl_mvm_mac_get_queues_mask(vif); iwl_mvm_alloc_bcast_sta()
729 if (vif->type == NL80211_IFTYPE_AP) iwl_mvm_alloc_bcast_sta()
730 qmask &= ~BIT(vif->cab_queue); iwl_mvm_alloc_bcast_sta()
733 ieee80211_vif_type_p2p(vif)); iwl_mvm_alloc_bcast_sta()
736 /* Allocate a new station entry for the broadcast station to the given vif,
741 * @vif: the interface to which the broadcast station is added
743 int iwl_mvm_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_add_bcast_sta() argument
745 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_add_bcast_sta()
751 ret = iwl_mvm_alloc_bcast_sta(mvm, vif); iwl_mvm_add_bcast_sta()
755 ret = iwl_mvm_send_add_bcast_sta(mvm, vif); iwl_mvm_add_bcast_sta()
763 void iwl_mvm_dealloc_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_dealloc_bcast_sta() argument
765 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_dealloc_bcast_sta()
774 int iwl_mvm_rm_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_rm_bcast_sta() argument
780 ret = iwl_mvm_send_rm_bcast_sta(mvm, vif); iwl_mvm_rm_bcast_sta()
782 iwl_mvm_dealloc_bcast_sta(mvm, vif); iwl_mvm_rm_bcast_sta()
915 int iwl_mvm_sta_tx_agg_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_sta_tx_agg_start() argument
954 mvm->queue_to_mac80211[txq_id] = vif->hw_queue[tid_to_mac80211_ac[tid]]; iwl_mvm_sta_tx_agg_start()
968 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); iwl_mvm_sta_tx_agg_start()
978 int iwl_mvm_sta_tx_agg_oper(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_sta_tx_agg_oper() argument
984 iwl_mvm_get_wd_timeout(mvm, vif, sta->tdls, false); iwl_mvm_sta_tx_agg_oper()
1027 int iwl_mvm_sta_tx_agg_stop(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_sta_tx_agg_stop() argument
1041 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); iwl_mvm_sta_tx_agg_stop()
1074 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); iwl_mvm_sta_tx_agg_stop()
1091 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); iwl_mvm_sta_tx_agg_stop()
1109 int iwl_mvm_sta_tx_agg_flush(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_sta_tx_agg_flush() argument
1165 static u8 iwl_mvm_get_key_sta_id(struct ieee80211_vif *vif, iwl_mvm_get_key_sta_id() argument
1168 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_get_key_sta_id()
1181 if (vif->type == NL80211_IFTYPE_STATION && iwl_mvm_get_key_sta_id()
1302 struct ieee80211_vif *vif, iwl_mvm_get_mac_addr()
1305 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_get_mac_addr()
1310 if (vif->type == NL80211_IFTYPE_STATION && iwl_mvm_get_mac_addr()
1323 struct ieee80211_vif *vif, __iwl_mvm_set_sta_key()
1336 addr = iwl_mvm_get_mac_addr(mvm, vif, sta); __iwl_mvm_set_sta_key()
1396 struct ieee80211_vif *vif, iwl_mvm_set_sta_key()
1408 sta_id = iwl_mvm_get_key_sta_id(vif, sta); iwl_mvm_set_sta_key()
1432 if (WARN_ON_ONCE(iwl_mvm_sta_from_mac80211(sta)->vif != vif)) iwl_mvm_set_sta_key()
1446 ret = __iwl_mvm_set_sta_key(mvm, vif, sta, keyconf, mcast); iwl_mvm_set_sta_key()
1460 ret = __iwl_mvm_set_sta_key(mvm, vif, sta, keyconf, !mcast); iwl_mvm_set_sta_key()
1475 struct ieee80211_vif *vif, iwl_mvm_remove_sta_key()
1486 sta_id = iwl_mvm_get_key_sta_id(vif, sta); iwl_mvm_remove_sta_key()
1520 if (WARN_ON_ONCE(iwl_mvm_sta_from_mac80211(sta)->vif != vif)) iwl_mvm_remove_sta_key()
1536 struct ieee80211_vif *vif, iwl_mvm_update_tkip_key()
1542 u8 sta_id = iwl_mvm_get_key_sta_id(vif, sta); iwl_mvm_update_tkip_key()
1755 void iwl_mvm_csa_client_absent(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_csa_client_absent() argument
1757 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_csa_client_absent()
259 iwl_mvm_add_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwl_mvm_add_sta() argument
334 iwl_mvm_update_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwl_mvm_update_sta() argument
481 iwl_mvm_rm_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwl_mvm_rm_sta() argument
563 iwl_mvm_rm_sta_id(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u8 sta_id) iwl_mvm_rm_sta_id() argument
1301 iwl_mvm_get_mac_addr(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwl_mvm_get_mac_addr() argument
1322 __iwl_mvm_set_sta_key(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *keyconf, bool mcast) __iwl_mvm_set_sta_key() argument
1395 iwl_mvm_set_sta_key(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *keyconf, bool have_key_offset) iwl_mvm_set_sta_key() argument
1474 iwl_mvm_remove_sta_key(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *keyconf) iwl_mvm_remove_sta_key() argument
1535 iwl_mvm_update_tkip_key(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_key_conf *keyconf, struct ieee80211_sta *sta, u32 iv32, u16 *phase1key) iwl_mvm_update_tkip_key() argument
H A Dd3.c78 struct ieee80211_vif *vif, iwl_mvm_set_rekey_data()
82 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_set_rekey_data()
100 struct ieee80211_vif *vif, iwl_mvm_ipv6_addr_change()
103 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_ipv6_addr_change()
121 struct ieee80211_vif *vif, int idx) iwl_mvm_set_default_unicast_key()
123 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_set_default_unicast_key()
144 struct ieee80211_vif *vif, iwl_mvm_wowlan_program_keys()
150 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_wowlan_program_keys()
261 ieee80211_get_tkip_rx_p1k(key, vif->bss_conf.bssid, iwl_mvm_wowlan_program_keys()
264 ieee80211_get_tkip_rx_p1k(key, vif->bss_conf.bssid, iwl_mvm_wowlan_program_keys()
332 ret = iwl_mvm_set_sta_key(mvm, vif, sta, key, true); iwl_mvm_wowlan_program_keys()
394 static void iwl_mvm_build_tcp_packet(struct ieee80211_vif *vif, iwl_mvm_build_tcp_packet() argument
419 memcpy(pkt->eth.h_source, vif->addr, ETH_ALEN); iwl_mvm_build_tcp_packet()
432 memcpy(pkt->eth.h_dest, vif->addr, ETH_ALEN); iwl_mvm_build_tcp_packet()
513 struct ieee80211_vif *vif, iwl_mvm_send_remote_wake_cfg()
539 vif, tcp, cfg->syn_tx.data, NULL, iwl_mvm_send_remote_wake_cfg()
546 vif, tcp, cfg->synack_rx.data, cfg->synack_rx.rx_mask, iwl_mvm_send_remote_wake_cfg()
553 vif, tcp, cfg->keepalive_tx.data, NULL, iwl_mvm_send_remote_wake_cfg()
577 vif, tcp, cfg->keepalive_ack_rx.data, iwl_mvm_send_remote_wake_cfg()
585 vif, tcp, cfg->wake_rx.data, cfg->wake_rx.rx_mask, iwl_mvm_send_remote_wake_cfg()
593 vif, tcp, cfg->fin_tx.data, NULL, iwl_mvm_send_remote_wake_cfg()
604 static int iwl_mvm_d3_reprogram(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_d3_reprogram() argument
607 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_d3_reprogram()
621 ctx = rcu_dereference(vif->chanctx_conf); iwl_mvm_d3_reprogram()
639 if (WARN_ON(!vif->bss_conf.assoc)) iwl_mvm_d3_reprogram()
642 ret = iwl_mvm_mac_ctxt_add(mvm, vif); iwl_mvm_d3_reprogram()
678 ret = iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL); iwl_mvm_d3_reprogram()
704 struct ieee80211_vif *vif) iwl_mvm_get_last_nonqos_seq()
706 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_get_last_nonqos_seq()
740 void iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_set_last_nonqos_seq() argument
742 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_set_last_nonqos_seq()
795 struct ieee80211_vif *vif, struct iwl_mvm_vif *mvmvif, iwl_mvm_get_wowlan_config()
807 ret = iwl_mvm_get_last_nonqos_seq(mvm, vif); iwl_mvm_get_wowlan_config()
858 struct ieee80211_vif *vif, struct iwl_mvm_vif *mvmvif, iwl_mvm_wowlan_config()
874 ret = iwl_mvm_d3_reprogram(mvm, vif, ap_sta); iwl_mvm_wowlan_config()
889 ieee80211_iter_keys(mvm->hw, vif, iwl_mvm_wowlan_config()
949 ret = iwl_mvm_send_proto_offload(mvm, vif, false, 0); iwl_mvm_wowlan_config()
953 ret = iwl_mvm_send_remote_wake_cfg(mvm, vif, wowlan->tcp); iwl_mvm_wowlan_config()
964 struct ieee80211_vif *vif) iwl_mvm_netdetect_config()
984 ret = iwl_mvm_scan_offload_start(mvm, vif, nd_config, &mvm->nd_ies); iwl_mvm_netdetect_config()
1027 struct ieee80211_vif *vif = NULL; __iwl_mvm_suspend() local
1058 vif = iwl_mvm_get_bss_vif(mvm); __iwl_mvm_suspend()
1059 if (IS_ERR_OR_NULL(vif)) { __iwl_mvm_suspend()
1064 mvmvif = iwl_mvm_vif_from_mac80211(vif); __iwl_mvm_suspend()
1074 mvm, wowlan, wowlan->nd_config ?: mvm->nd_config, vif); __iwl_mvm_suspend()
1091 vif, mvmvif, ap_sta); __iwl_mvm_suspend()
1095 vif, mvmvif, ap_sta); __iwl_mvm_suspend()
1201 struct ieee80211_vif *vif, iwl_mvm_report_wakeup_reasons()
1301 if (ieee80211_data_to_8023(pkt, vif->addr, vif->type)) iwl_mvm_report_wakeup_reasons()
1326 ieee80211_report_wowlan_wakeup(vif, wakeup_report, GFP_KERNEL); iwl_mvm_report_wakeup_reasons()
1407 struct ieee80211_vif *vif, iwl_mvm_d3_update_gtks()
1474 struct ieee80211_vif *vif, iwl_mvm_setup_connection_keep()
1477 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_setup_connection_keep()
1485 if (!status || !vif->bss_conf.bssid) iwl_mvm_setup_connection_keep()
1493 ieee80211_iter_keys(mvm->hw, vif, iwl_mvm_setup_connection_keep()
1508 ieee80211_iter_keys(mvm->hw, vif, iwl_mvm_setup_connection_keep()
1537 key = ieee80211_gtk_rekey_add(vif, &conf.conf); iwl_mvm_setup_connection_keep()
1546 ieee80211_gtk_rekey_notify(vif, vif->bss_conf.bssid, iwl_mvm_setup_connection_keep()
1559 iwl_mvm_get_wakeup_status(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_get_wakeup_status() argument
1584 ieee80211_report_wowlan_wakeup(vif, &wakeup, iwl_mvm_get_wakeup_status()
1633 struct ieee80211_vif *vif) iwl_mvm_query_wakeup_reasons()
1642 fw_status = iwl_mvm_get_wakeup_status(mvm, vif); iwl_mvm_query_wakeup_reasons()
1675 iwl_mvm_report_wakeup_reasons(mvm, vif, &status); iwl_mvm_query_wakeup_reasons()
1677 keep = iwl_mvm_setup_connection_keep(mvm, vif, fw_status); iwl_mvm_query_wakeup_reasons()
1739 struct ieee80211_vif *vif) iwl_mvm_query_netdetect_reasons()
1752 fw_status = iwl_mvm_get_wakeup_status(mvm, vif); iwl_mvm_query_netdetect_reasons()
1821 ieee80211_report_wowlan_wakeup(vif, wakeup_report, GFP_KERNEL); iwl_mvm_query_netdetect_reasons()
1851 struct ieee80211_vif *vif) iwl_mvm_d3_disconnect_iter()
1854 if (data == vif) iwl_mvm_d3_disconnect_iter()
1857 if (vif->type == NL80211_IFTYPE_STATION) iwl_mvm_d3_disconnect_iter()
1858 ieee80211_resume_disconnect(vif); iwl_mvm_d3_disconnect_iter()
1863 struct ieee80211_vif *vif = NULL; __iwl_mvm_resume() local
1870 /* get the BSS vif pointer again */ __iwl_mvm_resume()
1871 vif = iwl_mvm_get_bss_vif(mvm); __iwl_mvm_resume()
1872 if (IS_ERR_OR_NULL(vif)) __iwl_mvm_resume()
1894 iwl_mvm_query_netdetect_reasons(mvm, vif); __iwl_mvm_resume()
1898 keep = iwl_mvm_query_wakeup_reasons(mvm, vif); __iwl_mvm_resume()
1901 mvm->keep_vif = vif; __iwl_mvm_resume()
1915 iwl_mvm_d3_disconnect_iter, keep ? vif : NULL); __iwl_mvm_resume()
2015 struct ieee80211_vif *vif) iwl_mvm_d3_test_disconn_work_iter()
2018 if (_data == vif) iwl_mvm_d3_test_disconn_work_iter()
2021 if (vif->type == NL80211_IFTYPE_STATION) iwl_mvm_d3_test_disconn_work_iter()
2022 ieee80211_connection_loss(vif); iwl_mvm_d3_test_disconn_work_iter()
77 iwl_mvm_set_rekey_data(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_gtk_rekey_data *data) iwl_mvm_set_rekey_data() argument
99 iwl_mvm_ipv6_addr_change(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct inet6_dev *idev) iwl_mvm_ipv6_addr_change() argument
120 iwl_mvm_set_default_unicast_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int idx) iwl_mvm_set_default_unicast_key() argument
143 iwl_mvm_wowlan_program_keys(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key, void *_data) iwl_mvm_wowlan_program_keys() argument
512 iwl_mvm_send_remote_wake_cfg(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct cfg80211_wowlan_tcp *tcp) iwl_mvm_send_remote_wake_cfg() argument
703 iwl_mvm_get_last_nonqos_seq(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_get_last_nonqos_seq() argument
792 iwl_mvm_get_wowlan_config(struct iwl_mvm *mvm, struct cfg80211_wowlan *wowlan, struct iwl_wowlan_config_cmd *wowlan_config_cmd, struct ieee80211_vif *vif, struct iwl_mvm_vif *mvmvif, struct ieee80211_sta *ap_sta) iwl_mvm_get_wowlan_config() argument
855 iwl_mvm_wowlan_config(struct iwl_mvm *mvm, struct cfg80211_wowlan *wowlan, struct iwl_wowlan_config_cmd *wowlan_config_cmd, struct ieee80211_vif *vif, struct iwl_mvm_vif *mvmvif, struct ieee80211_sta *ap_sta) iwl_mvm_wowlan_config() argument
961 iwl_mvm_netdetect_config(struct iwl_mvm *mvm, struct cfg80211_wowlan *wowlan, struct cfg80211_sched_scan_request *nd_config, struct ieee80211_vif *vif) iwl_mvm_netdetect_config() argument
1200 iwl_mvm_report_wakeup_reasons(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_wowlan_status_data *status) iwl_mvm_report_wakeup_reasons() argument
1406 iwl_mvm_d3_update_gtks(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key, void *_data) iwl_mvm_d3_update_gtks() argument
1473 iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_wowlan_status *status) iwl_mvm_setup_connection_keep() argument
1632 iwl_mvm_query_wakeup_reasons(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_query_wakeup_reasons() argument
1738 iwl_mvm_query_netdetect_reasons(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_query_netdetect_reasons() argument
1850 iwl_mvm_d3_disconnect_iter(void *data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_d3_disconnect_iter() argument
2014 iwl_mvm_d3_test_disconn_work_iter(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_d3_test_disconn_work_iter() argument
H A Dmvm.h175 struct ieee80211_vif *vif; member in struct:iwl_mvm_time_event_data
442 iwl_mvm_vif_from_mac80211(struct ieee80211_vif *vif) iwl_mvm_vif_from_mac80211() argument
444 return (void *)vif->drv_priv; iwl_mvm_vif_from_mac80211()
1126 int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1127 void iwl_mvm_mac_ctxt_release(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1128 int iwl_mvm_mac_ctxt_add(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1129 int iwl_mvm_mac_ctxt_changed(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1131 int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1132 u32 iwl_mvm_mac_get_queues_mask(struct ieee80211_vif *vif);
1134 struct ieee80211_vif *vif);
1142 struct ieee80211_vif *vif);
1147 int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1148 int iwl_mvm_binding_remove_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1170 struct ieee80211_vif *vif,
1180 struct ieee80211_vif *vif,
1183 struct ieee80211_vif *vif,
1189 int iwl_mvm_scan_umac(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1191 int iwl_mvm_sched_scan_umac(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1201 void iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1202 void iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1210 iwl_mvm_vif_dbgfs_register(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_vif_dbgfs_register() argument
1214 iwl_mvm_vif_dbgfs_clean(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_vif_dbgfs_clean() argument
1231 int iwl_mvm_power_mac_dbgfs_read(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1234 void iwl_mvm_power_vif_assoc(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1257 struct ieee80211_vif *vif,
1260 struct ieee80211_vif *vif,
1263 struct ieee80211_vif *vif, int idx);
1267 struct ieee80211_vif *vif);
1270 iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_set_last_nonqos_seq() argument
1277 struct ieee80211_vif *vif,
1296 void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1316 void iwl_mvm_bt_rssi_event_old(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1331 iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif,
1335 iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif, iwl_mvm_beacon_filter_debugfs_parameters() argument
1340 struct ieee80211_vif *vif,
1343 struct ieee80211_vif *vif,
1346 struct ieee80211_vif *vif,
1349 void iwl_mvm_update_smps(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1355 int iwl_mvm_update_low_latency(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1442 int iwl_mvm_sf_update(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1453 int iwl_mvm_tdls_sta_count(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
1455 void iwl_mvm_recalc_tdls_state(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1458 struct ieee80211_vif *vif);
1460 struct ieee80211_vif *vif,
1465 struct ieee80211_vif *vif,
1468 struct ieee80211_vif *vif,
1490 struct ieee80211_vif *vif,
1492 void iwl_mvm_connection_loss(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
1496 struct ieee80211_vif *vif) iwl_fw_dbg_trigger_vif_match()
1500 return trig_vif == IWL_FW_DBG_CONF_VIF_ANY || vif->type == trig_vif; iwl_fw_dbg_trigger_vif_match()
1514 struct ieee80211_vif *vif, iwl_fw_dbg_trigger_check_stop()
1517 if (vif && !iwl_fw_dbg_trigger_vif_match(trig, vif)) iwl_fw_dbg_trigger_check_stop()
1525 struct ieee80211_vif *vif, iwl_fw_dbg_trigger_simple_stop()
1534 if (!iwl_fw_dbg_trigger_check_stop(mvm, vif, trigger)) iwl_fw_dbg_trigger_simple_stop()
1495 iwl_fw_dbg_trigger_vif_match(struct iwl_fw_dbg_trigger_tlv *trig, struct ieee80211_vif *vif) iwl_fw_dbg_trigger_vif_match() argument
1513 iwl_fw_dbg_trigger_check_stop(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_fw_dbg_trigger_tlv *trig) iwl_fw_dbg_trigger_check_stop() argument
1524 iwl_fw_dbg_trigger_simple_stop(struct iwl_mvm *mvm, struct ieee80211_vif *vif, enum iwl_fw_dbg_trigger trig) iwl_fw_dbg_trigger_simple_stop() argument
H A Dtime-event.c96 te_data->vif = NULL; iwl_mvm_te_clear_data()
183 struct ieee80211_vif *vif, iwl_mvm_te_check_disconnect()
186 if (vif->type != NL80211_IFTYPE_STATION) iwl_mvm_te_check_disconnect()
188 if (vif->bss_conf.assoc && vif->bss_conf.dtim_period) iwl_mvm_te_check_disconnect()
193 iwl_mvm_connection_loss(mvm, vif, errmsg); iwl_mvm_te_check_disconnect()
202 struct ieee80211_vif *vif = te_data->vif; iwl_mvm_te_handle_notify_csa() local
203 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_te_handle_notify_csa()
208 switch (te_data->vif->type) { iwl_mvm_te_handle_notify_csa()
216 iwl_mvm_connection_loss(mvm, vif, iwl_mvm_te_handle_notify_csa()
220 iwl_mvm_csa_client_absent(mvm, te_data->vif); iwl_mvm_te_handle_notify_csa()
221 ieee80211_chswitch_done(te_data->vif, true); iwl_mvm_te_handle_notify_csa()
247 if (!iwl_fw_dbg_trigger_check_stop(mvm, te_data->vif, trig)) iwl_mvm_te_check_trigger()
308 if (iwl_mvm_te_check_disconnect(mvm, te_data->vif, msg)) { iwl_mvm_te_handle_notif()
319 switch (te_data->vif->type) { iwl_mvm_te_handle_notif()
329 iwl_mvm_te_check_disconnect(mvm, te_data->vif, iwl_mvm_te_handle_notif()
341 if (te_data->vif->type == NL80211_IFTYPE_P2P_DEVICE) { iwl_mvm_te_handle_notif()
392 te_data->vif = NULL; iwl_mvm_aux_roc_te_handle_notif()
502 struct ieee80211_vif *vif, iwl_mvm_time_event_send_add()
520 te_data->vif = vif; iwl_mvm_time_event_send_add()
563 struct ieee80211_vif *vif, iwl_mvm_protect_session()
567 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_protect_session()
594 iwl_mvm_stop_session_protection(mvm, vif); iwl_mvm_protect_session()
616 iwl_mvm_time_event_send_add(mvm, vif, te_data, &time_cmd); iwl_mvm_protect_session()
630 if (iwl_mvm_time_event_send_add(mvm, vif, te_data, &time_cmd)) { iwl_mvm_protect_session()
734 struct ieee80211_vif *vif) iwl_mvm_stop_session_protection()
736 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_stop_session_protection()
743 int iwl_mvm_start_p2p_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_start_p2p_roc() argument
746 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_start_p2p_roc()
795 return iwl_mvm_time_event_send_add(mvm, vif, te_data, &time_cmd); iwl_mvm_start_p2p_roc()
817 if (te_data->vif->type == NL80211_IFTYPE_P2P_DEVICE) { iwl_mvm_stop_roc()
818 mvmvif = iwl_mvm_vif_from_mac80211(te_data->vif); iwl_mvm_stop_roc()
832 mvmvif = iwl_mvm_vif_from_mac80211(te_data->vif); iwl_mvm_stop_roc()
853 struct ieee80211_vif *vif, iwl_mvm_schedule_csa_period()
856 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_schedule_csa_period()
879 return iwl_mvm_time_event_send_add(mvm, vif, te_data, &time_cmd); iwl_mvm_schedule_csa_period()
182 iwl_mvm_te_check_disconnect(struct iwl_mvm *mvm, struct ieee80211_vif *vif, const char *errmsg) iwl_mvm_te_check_disconnect() argument
501 iwl_mvm_time_event_send_add(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mvm_time_event_data *te_data, struct iwl_time_event_cmd *te_cmd) iwl_mvm_time_event_send_add() argument
562 iwl_mvm_protect_session(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 duration, u32 min_duration, u32 max_delay, bool wait_for_notif) iwl_mvm_protect_session() argument
733 iwl_mvm_stop_session_protection(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_stop_session_protection() argument
852 iwl_mvm_schedule_csa_period(struct iwl_mvm *mvm, struct ieee80211_vif *vif, u32 duration, u32 apply_time) iwl_mvm_schedule_csa_period() argument
H A Dcoex.c361 iwl_get_coex_type(struct iwl_mvm *mvm, const struct ieee80211_vif *vif) iwl_get_coex_type() argument
378 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_get_coex_type()
518 struct ieee80211_vif *vif, iwl_mvm_bt_coex_enable_rssi_event()
521 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bt_coex_enable_rssi_event()
532 struct ieee80211_vif *vif) iwl_mvm_bt_notif_iterator()
534 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bt_notif_iterator()
545 switch (vif->type) { iwl_mvm_bt_notif_iterator()
556 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_mvm_bt_notif_iterator()
561 if (vif->type == NL80211_IFTYPE_STATION) { iwl_mvm_bt_notif_iterator()
563 iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, iwl_mvm_bt_notif_iterator()
567 iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, false, 0); iwl_mvm_bt_notif_iterator()
579 if (!vif->bss_conf.assoc) iwl_mvm_bt_notif_iterator()
591 if (vif->type == NL80211_IFTYPE_STATION) iwl_mvm_bt_notif_iterator()
592 iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, iwl_mvm_bt_notif_iterator()
603 if (vif->type == NL80211_IFTYPE_AP) { iwl_mvm_bt_notif_iterator()
618 /* there is low latency vif - we will be secondary */ iwl_mvm_bt_notif_iterator()
625 * STA / P2P Client, try to be primary if first vif. If we are in low iwl_mvm_bt_notif_iterator()
641 if (iwl_get_coex_type(mvm, vif) == BT_COEX_LOOSE_LUT || iwl_mvm_bt_notif_iterator()
642 mvm->cfg->bt_shared_single_ant || !vif->bss_conf.assoc || iwl_mvm_bt_notif_iterator()
645 iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, false, 0); iwl_mvm_bt_notif_iterator()
664 iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, true, ave_rssi); iwl_mvm_bt_notif_iterator()
774 struct ieee80211_vif *vif) iwl_mvm_bt_rssi_iterator()
776 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bt_rssi_iterator()
786 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_mvm_bt_rssi_iterator()
795 if (vif->type != NL80211_IFTYPE_STATION || iwl_mvm_bt_rssi_iterator()
809 void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_bt_rssi_event() argument
812 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bt_rssi_event()
819 iwl_mvm_bt_rssi_event_old(mvm, vif, rssi_event); iwl_mvm_bt_rssi_event()
840 IWL_DEBUG_COEX(mvm, "RSSI for %pM is now %s\n", vif->bss_conf.bssid, iwl_mvm_bt_rssi_event()
848 iwl_get_coex_type(mvm, vif) == BT_COEX_LOOSE_LUT) iwl_mvm_bt_rssi_event()
869 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(mvmsta->vif); iwl_mvm_coex_agg_time_limit()
883 lut_type = iwl_get_coex_type(mvm, mvmsta->vif); iwl_mvm_coex_agg_time_limit()
896 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(mvmsta->vif); iwl_mvm_bt_coex_is_mimo_allowed()
917 lut_type = iwl_get_coex_type(mvm, mvmsta->vif); iwl_mvm_bt_coex_is_mimo_allowed()
517 iwl_mvm_bt_coex_enable_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, bool enable, int rssi) iwl_mvm_bt_coex_enable_rssi_event() argument
531 iwl_mvm_bt_notif_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_bt_notif_iterator() argument
773 iwl_mvm_bt_rssi_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_bt_rssi_iterator() argument
H A Dcoex_legacy.c560 iwl_get_coex_type(struct iwl_mvm *mvm, const struct ieee80211_vif *vif) iwl_get_coex_type() argument
576 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_get_coex_type()
827 struct ieee80211_vif *vif, iwl_mvm_bt_coex_enable_rssi_event()
830 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bt_coex_enable_rssi_event()
841 struct ieee80211_vif *vif) iwl_mvm_bt_notif_iterator()
843 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bt_notif_iterator()
853 switch (vif->type) { iwl_mvm_bt_notif_iterator()
866 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_mvm_bt_notif_iterator()
871 if (vif->type == NL80211_IFTYPE_STATION) { iwl_mvm_bt_notif_iterator()
873 iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, iwl_mvm_bt_notif_iterator()
877 iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, false, 0); iwl_mvm_bt_notif_iterator()
886 smps_mode = vif->type == NL80211_IFTYPE_AP ? iwl_mvm_bt_notif_iterator()
891 if (!vif->bss_conf.assoc) iwl_mvm_bt_notif_iterator()
903 if (vif->type == NL80211_IFTYPE_STATION) iwl_mvm_bt_notif_iterator()
904 iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, iwl_mvm_bt_notif_iterator()
915 if (vif->type == NL80211_IFTYPE_AP) { iwl_mvm_bt_notif_iterator()
930 /* there is low latency vif - we will be secondary */ iwl_mvm_bt_notif_iterator()
937 * STA / P2P Client, try to be primary if first vif. If we are in low iwl_mvm_bt_notif_iterator()
953 if (iwl_get_coex_type(mvm, vif) == BT_COEX_LOOSE_LUT || iwl_mvm_bt_notif_iterator()
954 mvm->cfg->bt_shared_single_ant || !vif->bss_conf.assoc || iwl_mvm_bt_notif_iterator()
957 iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, false, 0); iwl_mvm_bt_notif_iterator()
976 iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, true, ave_rssi); iwl_mvm_bt_notif_iterator()
1095 struct ieee80211_vif *vif) iwl_mvm_bt_rssi_iterator()
1097 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bt_rssi_iterator()
1107 chanctx_conf = rcu_dereference(vif->chanctx_conf); iwl_mvm_bt_rssi_iterator()
1116 if (vif->type != NL80211_IFTYPE_STATION || iwl_mvm_bt_rssi_iterator()
1130 void iwl_mvm_bt_rssi_event_old(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_bt_rssi_event_old() argument
1133 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bt_rssi_event_old()
1156 IWL_DEBUG_COEX(mvm, "RSSI for %pM is now %s\n", vif->bss_conf.bssid, iwl_mvm_bt_rssi_event_old()
1164 iwl_get_coex_type(mvm, vif) == BT_COEX_LOOSE_LUT) iwl_mvm_bt_rssi_event_old()
1197 lut_type = iwl_get_coex_type(mvm, mvmsta->vif); iwl_mvm_coex_agg_time_limit_old()
1226 lut_type = iwl_get_coex_type(mvm, mvmsta->vif); iwl_mvm_bt_coex_is_mimo_allowed_old()
826 iwl_mvm_bt_coex_enable_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, bool enable, int rssi) iwl_mvm_bt_coex_enable_rssi_event() argument
840 iwl_mvm_bt_notif_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_bt_notif_iterator() argument
1094 iwl_mvm_bt_rssi_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_bt_rssi_iterator() argument
H A Doffloading.c87 struct ieee80211_vif *vif, iwl_mvm_send_proto_offload()
107 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_send_proto_offload()
154 memcpy(nsc[j].target_mac_addr, vif->addr, ETH_ALEN); iwl_mvm_send_proto_offload()
164 memcpy(cmd.v2.ndp_mac_addr, vif->addr, ETH_ALEN); iwl_mvm_send_proto_offload()
178 memcpy(cmd.v1.ndp_mac_addr, vif->addr, ETH_ALEN); iwl_mvm_send_proto_offload()
206 if (vif->bss_conf.arp_addr_cnt) { iwl_mvm_send_proto_offload()
208 common->host_ipv4_addr = vif->bss_conf.arp_addr_list[0]; iwl_mvm_send_proto_offload()
209 memcpy(common->arp_mac_addr, vif->addr, ETH_ALEN); iwl_mvm_send_proto_offload()
86 iwl_mvm_send_proto_offload(struct iwl_mvm *mvm, struct ieee80211_vif *vif, bool disable_offloading, u32 cmd_flags) iwl_mvm_send_proto_offload() argument
H A Dsta.h324 struct ieee80211_vif *vif; member in struct:iwl_mvm_sta
354 struct ieee80211_vif *vif,
357 struct ieee80211_vif *vif,
360 struct ieee80211_vif *vif,
363 struct ieee80211_vif *vif,
366 struct ieee80211_vif *vif,
371 struct ieee80211_vif *vif,
376 struct ieee80211_vif *vif,
388 int iwl_mvm_sta_tx_agg_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
390 int iwl_mvm_sta_tx_agg_oper(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
392 int iwl_mvm_sta_tx_agg_stop(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
394 int iwl_mvm_sta_tx_agg_flush(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
400 int iwl_mvm_alloc_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
401 int iwl_mvm_send_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
402 int iwl_mvm_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
403 int iwl_mvm_send_rm_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
404 int iwl_mvm_rm_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
405 void iwl_mvm_dealloc_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
425 void iwl_mvm_csa_client_absent(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
H A Dtime-event.h124 * @vif: the virtual interface for which the session is issued
140 struct ieee80211_vif *vif,
147 * @vif: the virtual interface for which the session is issued
155 struct ieee80211_vif *vif);
167 * @vif: the virtual interface for which the roc is requested. It is assumed
168 * that the vif type is NL80211_IFTYPE_P2P_DEVICE
170 * channel that is bound to the vif.
181 int iwl_mvm_start_p2p_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
197 * @vif: the vif to which the time event belongs
224 * @vif: the virtual interface for which the channel switch is issued
232 struct ieee80211_vif *vif,
H A Dsf.c77 * data->station_vif will point to one bound vif of type station, if exists.
80 struct ieee80211_vif *vif) iwl_mvm_bound_iface_iterator()
83 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_bound_iface_iterator()
85 if (vif == data->ignore_vif || !mvmvif->phy_ctxt || iwl_mvm_bound_iface_iterator()
86 vif->type == NL80211_IFTYPE_P2P_DEVICE) iwl_mvm_bound_iface_iterator()
91 if (vif->type == NL80211_IFTYPE_STATION) { iwl_mvm_bound_iface_iterator()
93 if (vif->bss_conf.assoc) iwl_mvm_bound_iface_iterator()
293 * vif is a p2p device. iwl_mvm_sf_update()
79 iwl_mvm_bound_iface_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_bound_iface_iterator() argument
H A Dutils.c747 void iwl_mvm_update_smps(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_update_smps() argument
761 if (vif->type == NL80211_IFTYPE_AP) iwl_mvm_update_smps()
766 mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_update_smps()
777 ieee80211_request_smps(vif, smps_mode); iwl_mvm_update_smps()
815 struct ieee80211_vif *vif) iwl_mvm_diversity_iter()
817 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_diversity_iter()
847 int iwl_mvm_update_low_latency(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_update_low_latency() argument
850 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_update_low_latency()
869 static void iwl_mvm_ll_iter(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_ll_iter() argument
873 if (iwl_mvm_vif_low_latency(iwl_mvm_vif_from_mac80211(vif))) iwl_mvm_ll_iter()
889 struct ieee80211_vif *vif; member in struct:iwl_bss_iter_data
894 struct ieee80211_vif *vif) iwl_mvm_bss_iface_iterator()
898 if (vif->type != NL80211_IFTYPE_STATION || vif->p2p) iwl_mvm_bss_iface_iterator()
901 if (data->vif) { iwl_mvm_bss_iface_iterator()
906 data->vif = vif; iwl_mvm_bss_iface_iterator()
922 return bss_iter_data.vif; iwl_mvm_get_bss_vif()
926 struct ieee80211_vif *vif, iwl_mvm_get_wd_timeout()
947 if (WARN_ON(!vif)) iwl_mvm_get_wd_timeout()
950 switch (ieee80211_vif_type_p2p(vif)) { iwl_mvm_get_wd_timeout()
969 void iwl_mvm_connection_loss(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_connection_loss() argument
980 if (!iwl_fw_dbg_trigger_check_stop(mvm, vif, trig)) iwl_mvm_connection_loss()
990 ieee80211_connection_loss(vif); iwl_mvm_connection_loss()
814 iwl_mvm_diversity_iter(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_diversity_iter() argument
893 iwl_mvm_bss_iface_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_bss_iface_iterator() argument
925 iwl_mvm_get_wd_timeout(struct iwl_mvm *mvm, struct ieee80211_vif *vif, bool tdls, bool cmd_q) iwl_mvm_get_wd_timeout() argument
H A Dops.c976 struct ieee80211_vif *vif, iwl_mvm_disallow_offloading()
979 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_disallow_offloading()
985 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION || iwl_mvm_disallow_offloading()
1028 struct ieee80211_vif *vif) iwl_mvm_enter_d0i3_iterator()
1032 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_enter_d0i3_iterator()
1035 IWL_DEBUG_RPM(mvm, "entering D0i3 - vif %pM\n", vif->addr); iwl_mvm_enter_d0i3_iterator()
1036 if (vif->type != NL80211_IFTYPE_STATION || iwl_mvm_enter_d0i3_iterator()
1037 !vif->bss_conf.assoc) iwl_mvm_enter_d0i3_iterator()
1045 if (iwl_mvm_disallow_offloading(mvm, vif, data)) iwl_mvm_enter_d0i3_iterator()
1048 iwl_mvm_update_d0i3_power_mode(mvm, vif, true, flags); iwl_mvm_enter_d0i3_iterator()
1049 iwl_mvm_send_proto_offload(mvm, vif, data->disable_offloading, flags); iwl_mvm_enter_d0i3_iterator()
1154 struct ieee80211_vif *vif) iwl_mvm_exit_d0i3_iterator()
1159 IWL_DEBUG_RPM(mvm, "exiting D0i3 - vif %pM\n", vif->addr); iwl_mvm_exit_d0i3_iterator()
1160 if (vif->type != NL80211_IFTYPE_STATION || iwl_mvm_exit_d0i3_iterator()
1161 !vif->bss_conf.assoc) iwl_mvm_exit_d0i3_iterator()
1164 iwl_mvm_update_d0i3_power_mode(mvm, vif, false, flags); iwl_mvm_exit_d0i3_iterator()
1168 struct ieee80211_vif *vif) iwl_mvm_d0i3_disconnect_iter()
1171 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_d0i3_disconnect_iter()
1173 if (vif->type == NL80211_IFTYPE_STATION && vif->bss_conf.assoc && iwl_mvm_d0i3_disconnect_iter()
1175 iwl_mvm_connection_loss(mvm, vif, "D0i3"); iwl_mvm_d0i3_disconnect_iter()
975 iwl_mvm_disallow_offloading(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_d0i3_iter_data *iter_data) iwl_mvm_disallow_offloading() argument
1027 iwl_mvm_enter_d0i3_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_enter_d0i3_iterator() argument
1153 iwl_mvm_exit_d0i3_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_exit_d0i3_iterator() argument
1167 iwl_mvm_d0i3_disconnect_iter(void *data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_d0i3_disconnect_iter() argument
H A Drx.c362 iwl_fw_dbg_trigger_check_stop(mvm, mvmsta->vif, iwl_mvm_rx_rx_mpdu()
453 struct ieee80211_vif *vif) iwl_mvm_stat_iterator()
459 int thold = vif->bss_conf.cqm_rssi_thold; iwl_mvm_stat_iterator()
460 int hyst = vif->bss_conf.cqm_rssi_hyst; iwl_mvm_stat_iterator()
462 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_stat_iterator()
478 if (vif->type != NL80211_IFTYPE_STATION) iwl_mvm_stat_iterator()
498 iwl_mvm_bt_rssi_event(mvm, vif, RSSI_EVENT_HIGH); iwl_mvm_stat_iterator()
505 iwl_mvm_bt_rssi_event(mvm, vif, RSSI_EVENT_LOW); iwl_mvm_stat_iterator()
509 if (!(vif->driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI)) iwl_mvm_stat_iterator()
520 vif, iwl_mvm_stat_iterator()
529 vif, iwl_mvm_stat_iterator()
452 iwl_mvm_stat_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_stat_iterator() argument
H A Dscan.c196 struct ieee80211_vif *vif) iwl_mvm_scan_condition_iterator()
198 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_scan_condition_iterator()
201 if (vif->type != NL80211_IFTYPE_P2P_DEVICE && mvmvif->phy_ctxt && iwl_mvm_scan_condition_iterator()
207 struct ieee80211_vif *vif, iwl_mvm_scan_calc_params()
250 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { iwl_mvm_scan_calc_params()
519 struct ieee80211_vif *vif, iwl_mvm_scan_offload_start()
529 ret = iwl_mvm_sched_scan_umac(mvm, vif, req, ies); iwl_mvm_scan_offload_start()
535 ret = iwl_mvm_unified_sched_scan_lmac(mvm, vif, req, ies); iwl_mvm_scan_offload_start()
710 iwl_mvm_build_unified_scan_probe(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_build_unified_scan_probe() argument
727 memcpy(frame->sa, vif->addr, ETH_ALEN); iwl_mvm_build_unified_scan_probe()
784 struct ieee80211_vif *vif, iwl_mvm_unified_scan_lmac()
818 iwl_mvm_scan_calc_params(mvm, vif, req->req.n_ssids, req->req.flags, iwl_mvm_unified_scan_lmac()
878 iwl_mvm_build_unified_scan_probe(mvm, vif, &req->ies, preq, iwl_mvm_unified_scan_lmac()
900 struct ieee80211_vif *vif, iwl_mvm_unified_sched_scan_lmac()
932 iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, 0, &params); iwl_mvm_unified_sched_scan_lmac()
997 iwl_mvm_build_unified_scan_probe(mvm, vif, ies, preq, iwl_mvm_unified_sched_scan_lmac()
1275 int iwl_mvm_scan_umac(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_scan_umac() argument
1311 iwl_mvm_scan_calc_params(mvm, vif, req->req.n_ssids, req->req.flags, iwl_mvm_scan_umac()
1347 iwl_mvm_build_unified_scan_probe(mvm, vif, &req->ies, &sec_part->preq, iwl_mvm_scan_umac()
1370 int iwl_mvm_sched_scan_umac(struct iwl_mvm *mvm, struct ieee80211_vif *vif, iwl_mvm_sched_scan_umac() argument
1407 iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, req->flags, iwl_mvm_sched_scan_umac()
1461 iwl_mvm_build_unified_scan_probe(mvm, vif, ies, &sec_part->preq, iwl_mvm_sched_scan_umac()
195 iwl_mvm_scan_condition_iterator(void *data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_scan_condition_iterator() argument
206 iwl_mvm_scan_calc_params(struct iwl_mvm *mvm, struct ieee80211_vif *vif, int n_ssids, u32 flags, struct iwl_mvm_scan_params *params) iwl_mvm_scan_calc_params() argument
518 iwl_mvm_scan_offload_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct cfg80211_sched_scan_request *req, struct ieee80211_scan_ies *ies) iwl_mvm_scan_offload_start() argument
783 iwl_mvm_unified_scan_lmac(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct ieee80211_scan_request *req) iwl_mvm_unified_scan_lmac() argument
899 iwl_mvm_unified_sched_scan_lmac(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct cfg80211_sched_scan_request *req, struct ieee80211_scan_ies *ies) iwl_mvm_unified_sched_scan_lmac() argument
H A Dquota.c82 struct ieee80211_vif *vif) iwl_mvm_quota_iterator()
85 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_quota_iterator()
89 if (vif == data->disabled_vif) iwl_mvm_quota_iterator()
104 switch (vif->type) { iwl_mvm_quota_iterator()
106 if (vif->bss_conf.assoc) iwl_mvm_quota_iterator()
81 iwl_mvm_quota_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_quota_iterator() argument
H A Dtx.c327 (!info->control.vif || iwl_mvm_tx_skb_non_sta()
328 info->hw_queue != info->control.vif->cab_queue))) iwl_mvm_tx_skb_non_sta()
338 info->control.vif->type == NL80211_IFTYPE_STATION) iwl_mvm_tx_skb_non_sta()
346 if (info->control.vif && iwl_mvm_tx_skb_non_sta()
347 (info->control.vif->type == NL80211_IFTYPE_P2P_DEVICE || iwl_mvm_tx_skb_non_sta()
348 info->control.vif->type == NL80211_IFTYPE_AP)) { iwl_mvm_tx_skb_non_sta()
350 iwl_mvm_vif_from_mac80211(info->control.vif); iwl_mvm_tx_skb_non_sta()
488 struct ieee80211_vif *vif = mvmsta->vif; iwl_mvm_check_ratid_empty() local
512 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); iwl_mvm_check_ratid_empty()
528 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); iwl_mvm_check_ratid_empty()
782 if (mvmsta && mvmsta->vif->type == NL80211_IFTYPE_AP) { iwl_mvm_rx_tx_cmd_single()
1036 if (mvmsta->vif) iwl_mvm_rx_ba_notif()
1038 rcu_dereference(mvmsta->vif->chanctx_conf); iwl_mvm_rx_ba_notif()
H A Dphy-ctxt.c272 struct ieee80211_vif *vif) iwl_mvm_binding_iterator()
275 struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); iwl_mvm_binding_iterator()
280 if (vif->type == NL80211_IFTYPE_STATION || iwl_mvm_binding_iterator()
281 vif->type == NL80211_IFTYPE_AP) iwl_mvm_binding_iterator()
271 iwl_mvm_binding_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_binding_iterator() argument
H A Dtt.c263 struct ieee80211_vif *vif) iwl_mvm_tt_smps_iterator()
275 if (vif->type != NL80211_IFTYPE_STATION) iwl_mvm_tt_smps_iterator()
278 iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_TT, smps_mode); iwl_mvm_tt_smps_iterator()
262 iwl_mvm_tt_smps_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) iwl_mvm_tt_smps_iterator() argument
H A Drs.c179 mvmvif = iwl_mvm_vif_from_mac80211(mvmsta->vif); rs_mimo_allow()
180 if (iwl_mvm_vif_low_latency(mvmvif) && mvmsta->vif->p2p) rs_mimo_allow()
1340 if (!iwl_mvm_sta_from_mac80211(sta)->vif) rs_mac80211_tx_status()
1899 static bool rs_tpc_allowed(struct iwl_mvm *mvm, struct ieee80211_vif *vif, rs_tpc_allowed() argument
1904 bool sta_ps_disabled = (vif->type == NL80211_IFTYPE_STATION && rs_tpc_allowed()
1905 !vif->bss_conf.ps); rs_tpc_allowed()
2003 struct ieee80211_vif *vif = mvm_sta->vif; rs_tpc_perform() local
2025 chanctx_conf = rcu_dereference(vif->chanctx_conf); rs_tpc_perform()
2032 if (!rs_tpc_allowed(mvm, vif, rate, band)) { rs_tpc_perform()
2575 if (sta && !iwl_mvm_sta_from_mac80211(sta)->vif) { rs_get_rate()
2576 /* if vif isn't initialized mvm doesn't know about rs_get_rate()
2853 if (IWL_MVM_RS_DISABLE_P2P_MIMO && sta_priv->vif->p2p) iwl_mvm_rs_rate_init()
2900 if (!iwl_mvm_sta_from_mac80211(sta)->vif) rs_rate_update()
3089 enum nl80211_iftype viftype = ieee80211_vif_type_p2p(sta->vif); rs_bfer_priority()
3233 mvmvif = iwl_mvm_vif_from_mac80211(mvmsta->vif); rs_fill_lq_cmd()
3254 if (mvmsta->vif->p2p) rs_fill_lq_cmd()
3683 if (!mvmsta->vif) rs_add_debugfs()
H A Dtestmode.h89 * @IWL_MVM_TM_CMD_SET_NOA: set NoA on GO vif for testing
/linux-4.1.27/drivers/net/wireless/ath/wcn36xx/
H A Dpmc.c22 struct ieee80211_vif *vif) wcn36xx_pmc_enter_bmps_state()
25 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_pmc_enter_bmps_state()
27 ret = wcn36xx_smd_enter_bmps(wcn, vif); wcn36xx_pmc_enter_bmps_state()
43 struct ieee80211_vif *vif) wcn36xx_pmc_exit_bmps_state()
45 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_pmc_exit_bmps_state()
51 wcn36xx_smd_exit_bmps(wcn, vif); wcn36xx_pmc_exit_bmps_state()
57 struct ieee80211_vif *vif) wcn36xx_enable_keep_alive_null_packet()
60 return wcn36xx_smd_keep_alive_req(wcn, vif, wcn36xx_enable_keep_alive_null_packet()
21 wcn36xx_pmc_enter_bmps_state(struct wcn36xx *wcn, struct ieee80211_vif *vif) wcn36xx_pmc_enter_bmps_state() argument
42 wcn36xx_pmc_exit_bmps_state(struct wcn36xx *wcn, struct ieee80211_vif *vif) wcn36xx_pmc_exit_bmps_state() argument
56 wcn36xx_enable_keep_alive_null_packet(struct wcn36xx *wcn, struct ieee80211_vif *vif) wcn36xx_enable_keep_alive_null_packet() argument
H A Dmain.c173 static inline u8 get_sta_index(struct ieee80211_vif *vif, get_sta_index() argument
176 return NL80211_IFTYPE_STATION == vif->type ? get_sta_index()
339 struct ieee80211_vif *vif = NULL; wcn36xx_config() local
349 vif = container_of((void *)tmp, wcn36xx_config()
352 wcn36xx_smd_switch_channel(wcn, vif, ch); wcn36xx_config()
385 struct ieee80211_vif *vif, wcn36xx_set_key()
390 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_set_key()
443 if (NL80211_IFTYPE_STATION == vif->type) wcn36xx_set_key()
445 vif, wcn36xx_set_key()
455 get_sta_index(vif, sta_priv)); wcn36xx_set_key()
470 get_sta_index(vif, sta_priv)); wcn36xx_set_key()
486 get_sta_index(vif, sta_priv)); wcn36xx_set_key()
500 struct ieee80211_vif *vif, wcn36xx_sw_scan_start()
510 struct ieee80211_vif *vif) wcn36xx_sw_scan_complete()
585 struct ieee80211_vif *vif, wcn36xx_bss_info_changed()
593 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_bss_info_changed()
595 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss info changed vif %p changed 0x%08x\n", wcn36xx_bss_info_changed()
596 vif, changed); wcn36xx_bss_info_changed()
611 wcn36xx_pmc_enter_bmps_state(wcn, vif); wcn36xx_bss_info_changed()
613 wcn36xx_pmc_exit_bmps_state(wcn, vif); wcn36xx_bss_info_changed()
625 vif->addr, WCN36XX_HW_CHANNEL(wcn)); wcn36xx_bss_info_changed()
626 wcn36xx_smd_config_bss(wcn, vif, NULL, wcn36xx_bss_info_changed()
630 wcn36xx_smd_delete_bss(wcn, vif); wcn36xx_bss_info_changed()
653 "mac assoc bss %pM vif %pM AID=%d\n", wcn36xx_bss_info_changed()
655 vif->addr, wcn36xx_bss_info_changed()
659 sta = ieee80211_find_sta(vif, bss_conf->bssid); wcn36xx_bss_info_changed()
671 vif->addr, wcn36xx_bss_info_changed()
673 wcn36xx_smd_config_bss(wcn, vif, sta, wcn36xx_bss_info_changed()
681 wcn36xx_smd_config_sta(wcn, vif, sta); wcn36xx_bss_info_changed()
685 "disassociated bss %pM vif %pM AID=%d\n", wcn36xx_bss_info_changed()
687 vif->addr, wcn36xx_bss_info_changed()
691 vif->addr, wcn36xx_bss_info_changed()
698 skb = ieee80211_proberesp_get(hw, vif); wcn36xx_bss_info_changed()
704 wcn36xx_smd_update_proberesp_tmpl(wcn, vif, skb); wcn36xx_bss_info_changed()
717 wcn36xx_smd_config_bss(wcn, vif, NULL, wcn36xx_bss_info_changed()
718 vif->addr, false); wcn36xx_bss_info_changed()
719 skb = ieee80211_beacon_get_tim(hw, vif, &tim_off, wcn36xx_bss_info_changed()
725 wcn36xx_smd_send_beacon(wcn, vif, skb, tim_off, 0); wcn36xx_bss_info_changed()
728 if (vif->type == NL80211_IFTYPE_ADHOC || wcn36xx_bss_info_changed()
729 vif->type == NL80211_IFTYPE_MESH_POINT) wcn36xx_bss_info_changed()
734 wcn36xx_smd_set_link_st(wcn, vif->addr, vif->addr, wcn36xx_bss_info_changed()
737 wcn36xx_smd_set_link_st(wcn, vif->addr, vif->addr, wcn36xx_bss_info_changed()
739 wcn36xx_smd_delete_bss(wcn, vif); wcn36xx_bss_info_changed()
757 struct ieee80211_vif *vif) wcn36xx_remove_interface()
760 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_remove_interface()
761 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac remove interface vif %p\n", vif); wcn36xx_remove_interface()
764 wcn36xx_smd_delete_sta_self(wcn, vif->addr); wcn36xx_remove_interface()
768 struct ieee80211_vif *vif) wcn36xx_add_interface()
771 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_add_interface()
773 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac add interface vif %p type %d\n", wcn36xx_add_interface()
774 vif, vif->type); wcn36xx_add_interface()
776 if (!(NL80211_IFTYPE_STATION == vif->type || wcn36xx_add_interface()
777 NL80211_IFTYPE_AP == vif->type || wcn36xx_add_interface()
778 NL80211_IFTYPE_ADHOC == vif->type || wcn36xx_add_interface()
779 NL80211_IFTYPE_MESH_POINT == vif->type)) { wcn36xx_add_interface()
781 vif->type); wcn36xx_add_interface()
786 wcn36xx_smd_add_sta_self(wcn, vif); wcn36xx_add_interface()
791 static int wcn36xx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, wcn36xx_sta_add() argument
795 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_sta_add()
797 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta add vif %p sta %pM\n", wcn36xx_sta_add()
798 vif, sta->addr); wcn36xx_sta_add()
802 sta_priv->vif = vif_priv; wcn36xx_sta_add()
807 if (NL80211_IFTYPE_STATION != vif->type) { wcn36xx_sta_add()
810 wcn36xx_smd_config_sta(wcn, vif, sta); wcn36xx_sta_add()
816 struct ieee80211_vif *vif, wcn36xx_sta_remove()
820 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_sta_remove()
823 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta remove vif %p sta %pM index %d\n", wcn36xx_sta_remove()
824 vif, sta->addr, sta_priv->sta_index); wcn36xx_sta_remove()
828 sta_priv->vif = NULL; wcn36xx_sta_remove()
859 struct ieee80211_vif *vif, wcn36xx_ampdu_action()
876 get_sta_index(vif, sta_priv)); wcn36xx_ampdu_action()
878 wcn36xx_smd_trigger_ba(wcn, get_sta_index(vif, sta_priv)); wcn36xx_ampdu_action()
881 wcn36xx_smd_del_ba(wcn, tid, get_sta_index(vif, sta_priv)); wcn36xx_ampdu_action()
888 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); wcn36xx_ampdu_action()
896 get_sta_index(vif, sta_priv)); wcn36xx_ampdu_action()
905 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); wcn36xx_ampdu_action()
384 wcn36xx_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key_conf) wcn36xx_set_key() argument
499 wcn36xx_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) wcn36xx_sw_scan_start() argument
509 wcn36xx_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wcn36xx_sw_scan_complete() argument
584 wcn36xx_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) wcn36xx_bss_info_changed() argument
756 wcn36xx_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wcn36xx_remove_interface() argument
767 wcn36xx_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wcn36xx_add_interface() argument
815 wcn36xx_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) wcn36xx_sta_remove() argument
858 wcn36xx_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) wcn36xx_ampdu_action() argument
H A Dpmc.h28 struct ieee80211_vif *vif);
30 struct ieee80211_vif *vif);
32 struct ieee80211_vif *vif);
H A Ddebug.c32 struct ieee80211_vif *vif = NULL; read_file_bool_bmps() local
36 vif = container_of((void *)vif_priv, read_file_bool_bmps()
39 if (NL80211_IFTYPE_STATION == vif->type) { read_file_bool_bmps()
59 struct ieee80211_vif *vif = NULL; write_file_bool_bmps() local
73 vif = container_of((void *)vif_priv, write_file_bool_bmps()
76 if (NL80211_IFTYPE_STATION == vif->type) { write_file_bool_bmps()
77 wcn36xx_enable_keep_alive_null_packet(wcn, vif); write_file_bool_bmps()
78 wcn36xx_pmc_enter_bmps_state(wcn, vif); write_file_bool_bmps()
86 vif = container_of((void *)vif_priv, write_file_bool_bmps()
89 if (NL80211_IFTYPE_STATION == vif->type) write_file_bool_bmps()
90 wcn36xx_pmc_exit_bmps_state(wcn, vif); write_file_bool_bmps()
H A Dsmd.h67 int wcn36xx_smd_add_sta_self(struct wcn36xx *wcn, struct ieee80211_vif *vif);
70 int wcn36xx_smd_join(struct wcn36xx *wcn, const u8 *bssid, u8 *vif, u8 ch);
74 int wcn36xx_smd_config_bss(struct wcn36xx *wcn, struct ieee80211_vif *vif,
77 int wcn36xx_smd_delete_bss(struct wcn36xx *wcn, struct ieee80211_vif *vif);
78 int wcn36xx_smd_config_sta(struct wcn36xx *wcn, struct ieee80211_vif *vif,
80 int wcn36xx_smd_send_beacon(struct wcn36xx *wcn, struct ieee80211_vif *vif,
84 struct ieee80211_vif *vif, int ch);
86 struct ieee80211_vif *vif,
106 int wcn36xx_smd_enter_bmps(struct wcn36xx *wcn, struct ieee80211_vif *vif);
107 int wcn36xx_smd_exit_bmps(struct wcn36xx *wcn, struct ieee80211_vif *vif);
110 struct ieee80211_vif *vif,
H A Dtxrx.c103 struct ieee80211_vif *vif = NULL; get_vif_by_addr() local
105 vif = container_of((void *)vif_priv, get_vif_by_addr()
108 if (memcmp(vif->addr, addr, ETH_ALEN) == 0) get_vif_by_addr()
111 wcn36xx_warn("vif %pM not found\n", addr); get_vif_by_addr()
158 struct ieee80211_vif *vif = NULL; wcn36xx_set_tx_data() local
169 __vif_priv = sta_priv->vif; wcn36xx_set_tx_data()
170 vif = container_of((void *)__vif_priv, wcn36xx_set_tx_data()
175 if (vif->type == NL80211_IFTYPE_STATION) { wcn36xx_set_tx_data()
178 } else if (vif->type == NL80211_IFTYPE_AP || wcn36xx_set_tx_data()
179 vif->type == NL80211_IFTYPE_ADHOC || wcn36xx_set_tx_data()
180 vif->type == NL80211_IFTYPE_MESH_POINT) { wcn36xx_set_tx_data()
H A Dsmd.c121 static void wcn36xx_smd_set_bss_ht_params(struct ieee80211_vif *vif, wcn36xx_smd_set_bss_ht_params() argument
134 bss_params->ht_oper_mode = vif->bss_conf.ht_operation_mode; wcn36xx_smd_set_bss_ht_params()
136 !!(vif->bss_conf.ht_operation_mode & wcn36xx_smd_set_bss_ht_params()
190 struct ieee80211_vif *vif, wcn36xx_smd_set_sta_params()
194 struct wcn36xx_vif *priv_vif = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_smd_set_sta_params()
196 if (vif->type == NL80211_IFTYPE_ADHOC || wcn36xx_smd_set_sta_params()
197 vif->type == NL80211_IFTYPE_AP || wcn36xx_smd_set_sta_params()
198 vif->type == NL80211_IFTYPE_MESH_POINT) { wcn36xx_smd_set_sta_params()
210 * contains our mac address. In AP mode we are bssid so vif wcn36xx_smd_set_sta_params()
213 if (NL80211_IFTYPE_STATION == vif->type) wcn36xx_smd_set_sta_params()
214 memcpy(&sta_params->mac, vif->addr, ETH_ALEN); wcn36xx_smd_set_sta_params()
216 memcpy(&sta_params->bssid, vif->addr, ETH_ALEN); wcn36xx_smd_set_sta_params()
234 if (NL80211_IFTYPE_STATION == vif->type) wcn36xx_smd_set_sta_params()
622 struct ieee80211_vif *vif, int ch) wcn36xx_smd_switch_channel()
633 memcpy(msg_body.self_sta_mac_addr, vif->addr, ETH_ALEN); wcn36xx_smd_switch_channel()
710 struct ieee80211_vif *vif, wcn36xx_smd_add_sta_self_rsp()
715 struct wcn36xx_vif *priv_vif = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_smd_add_sta_self_rsp()
738 int wcn36xx_smd_add_sta_self(struct wcn36xx *wcn, struct ieee80211_vif *vif) wcn36xx_smd_add_sta_self() argument
746 memcpy(&msg_body.self_addr, vif->addr, ETH_ALEN); wcn36xx_smd_add_sta_self()
760 vif, wcn36xx_smd_add_sta_self()
847 int wcn36xx_smd_join(struct wcn36xx *wcn, const u8 *bssid, u8 *vif, u8 ch) wcn36xx_smd_join() argument
856 memcpy(&msg_body.self_sta_mac_addr, vif, ETH_ALEN); wcn36xx_smd_join()
1005 int wcn36xx_smd_config_sta(struct wcn36xx *wcn, struct ieee80211_vif *vif, wcn36xx_smd_config_sta() argument
1017 wcn36xx_smd_set_sta_params(wcn, vif, sta, sta_params); wcn36xx_smd_config_sta()
1158 struct ieee80211_vif *vif, wcn36xx_smd_config_bss_rsp()
1164 struct wcn36xx_vif *priv_vif = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_smd_config_bss_rsp()
1199 int wcn36xx_smd_config_bss(struct wcn36xx *wcn, struct ieee80211_vif *vif, wcn36xx_smd_config_bss() argument
1206 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_smd_config_bss()
1219 memcpy(bss->self_mac_addr, vif->addr, ETH_ALEN); wcn36xx_smd_config_bss()
1221 if (vif->type == NL80211_IFTYPE_STATION) { wcn36xx_smd_config_bss()
1227 } else if (vif->type == NL80211_IFTYPE_AP || wcn36xx_smd_config_bss()
1228 vif->type == NL80211_IFTYPE_MESH_POINT) { wcn36xx_smd_config_bss()
1234 } else if (vif->type == NL80211_IFTYPE_ADHOC) { wcn36xx_smd_config_bss()
1240 wcn36xx_warn("Unknown type for bss config: %d\n", vif->type); wcn36xx_smd_config_bss()
1243 if (vif->type == NL80211_IFTYPE_STATION) wcn36xx_smd_config_bss()
1248 bss->short_slot_time_supported = vif->bss_conf.use_short_slot; wcn36xx_smd_config_bss()
1253 bss->beacon_interval = vif->bss_conf.beacon_int; wcn36xx_smd_config_bss()
1256 wcn36xx_smd_set_bss_ht_params(vif, sta, bss); wcn36xx_smd_config_bss()
1268 wcn36xx_smd_set_sta_params(wcn, vif, sta, sta_params); wcn36xx_smd_config_bss()
1277 bss->hidden_ssid = vif->bss_conf.hidden_ssid; wcn36xx_smd_config_bss()
1317 vif, wcn36xx_smd_config_bss()
1329 int wcn36xx_smd_delete_bss(struct wcn36xx *wcn, struct ieee80211_vif *vif) wcn36xx_smd_delete_bss() argument
1332 struct wcn36xx_vif *priv_vif = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_smd_delete_bss()
1359 int wcn36xx_smd_send_beacon(struct wcn36xx *wcn, struct ieee80211_vif *vif, wcn36xx_smd_send_beacon() argument
1382 memcpy(msg_body.bssid, vif->addr, ETH_ALEN); wcn36xx_smd_send_beacon()
1385 if (vif->type == NL80211_IFTYPE_MESH_POINT) wcn36xx_smd_send_beacon()
1413 struct ieee80211_vif *vif, wcn36xx_smd_update_proberesp_tmpl()
1432 memcpy(msg.bssid, vif->addr, ETH_ALEN); wcn36xx_smd_update_proberesp_tmpl()
1597 int wcn36xx_smd_enter_bmps(struct wcn36xx *wcn, struct ieee80211_vif *vif) wcn36xx_smd_enter_bmps() argument
1600 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_smd_enter_bmps()
1607 msg_body.tbtt = vif->bss_conf.sync_tsf; wcn36xx_smd_enter_bmps()
1627 int wcn36xx_smd_exit_bmps(struct wcn36xx *wcn, struct ieee80211_vif *vif) wcn36xx_smd_exit_bmps() argument
1630 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_smd_exit_bmps()
1687 struct ieee80211_vif *vif, wcn36xx_smd_keep_alive_req()
1691 struct wcn36xx_vif *vif_priv = (struct wcn36xx_vif *)vif->drv_priv; wcn36xx_smd_keep_alive_req()
1985 struct ieee80211_vif *vif = NULL; wcn36xx_smd_missed_beacon_ind() local
1993 vif = container_of((void *)tmp, wcn36xx_smd_missed_beacon_ind()
1996 ieee80211_connection_loss(vif); wcn36xx_smd_missed_beacon_ind()
2010 vif = container_of((void *)tmp, wcn36xx_smd_missed_beacon_ind()
2013 ieee80211_connection_loss(vif); wcn36xx_smd_missed_beacon_ind()
189 wcn36xx_smd_set_sta_params(struct wcn36xx *wcn, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct wcn36xx_hal_config_sta_params *sta_params) wcn36xx_smd_set_sta_params() argument
621 wcn36xx_smd_switch_channel(struct wcn36xx *wcn, struct ieee80211_vif *vif, int ch) wcn36xx_smd_switch_channel() argument
709 wcn36xx_smd_add_sta_self_rsp(struct wcn36xx *wcn, struct ieee80211_vif *vif, void *buf, size_t len) wcn36xx_smd_add_sta_self_rsp() argument
1157 wcn36xx_smd_config_bss_rsp(struct wcn36xx *wcn, struct ieee80211_vif *vif, void *buf, size_t len) wcn36xx_smd_config_bss_rsp() argument
1412 wcn36xx_smd_update_proberesp_tmpl(struct wcn36xx *wcn, struct ieee80211_vif *vif, struct sk_buff *skb) wcn36xx_smd_update_proberesp_tmpl() argument
1686 wcn36xx_smd_keep_alive_req(struct wcn36xx *wcn, struct ieee80211_vif *vif, int packet_type) wcn36xx_smd_keep_alive_req() argument
/linux-4.1.27/net/mac80211/
H A Diface.c52 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); __ieee80211_recalc_txpower()
67 if (power != sdata->vif.bss_conf.txpower) { __ieee80211_recalc_txpower()
68 sdata->vif.bss_conf.txpower = power; __ieee80211_recalc_txpower()
189 if (iter->vif.type == NL80211_IFTYPE_MONITOR && ieee80211_verify_mac()
193 m = iter->vif.addr; ieee80211_verify_mac()
218 if (sdata->vif.type == NL80211_IFTYPE_MONITOR && ieee80211_change_mac()
229 memcpy(sdata->vif.addr, sa->sa_data, ETH_ALEN); ieee80211_change_mac()
265 if ((sdata->vif.type == NL80211_IFTYPE_OCB && ieee80211_check_concurrent_iface()
266 nsdata->vif.type != NL80211_IFTYPE_MONITOR) || ieee80211_check_concurrent_iface()
267 (sdata->vif.type != NL80211_IFTYPE_MONITOR && ieee80211_check_concurrent_iface()
268 nsdata->vif.type == NL80211_IFTYPE_OCB)) ieee80211_check_concurrent_iface()
282 nsdata->vif.type == NL80211_IFTYPE_ADHOC) ieee80211_check_concurrent_iface()
288 if (nsdata->vif.csa_active) ieee80211_check_concurrent_iface()
295 if (!ether_addr_equal(sdata->vif.addr, ieee80211_check_concurrent_iface()
296 nsdata->vif.addr)) ieee80211_check_concurrent_iface()
303 nsdata->vif.type)) ieee80211_check_concurrent_iface()
310 nsdata->vif.type == NL80211_IFTYPE_AP) ieee80211_check_concurrent_iface()
329 if (WARN_ON_ONCE(sdata->vif.hw_queue[i] == ieee80211_check_queues()
332 if (WARN_ON_ONCE(sdata->vif.hw_queue[i] >= ieee80211_check_queues()
342 sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; ieee80211_check_queues()
346 if (WARN_ON_ONCE(sdata->vif.cab_queue == IEEE80211_INVAL_HW_QUEUE)) ieee80211_check_queues()
349 if (WARN_ON_ONCE(sdata->vif.cab_queue >= n_queues)) ieee80211_check_queues()
382 sdata->vif.hw_queue[i] = IEEE80211_INVAL_HW_QUEUE; ieee80211_set_default_queues()
384 sdata->vif.hw_queue[i] = i; ieee80211_set_default_queues()
386 sdata->vif.hw_queue[i] = 0; ieee80211_set_default_queues()
388 sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; ieee80211_set_default_queues()
410 sdata->vif.type = NL80211_IFTYPE_MONITOR; ieee80211_add_virtual_monitor()
500 switch (sdata->vif.type) { ieee80211_do_open()
521 sdata->vif.cab_queue = master->vif.cab_queue; ieee80211_do_open()
522 memcpy(sdata->vif.hw_queue, master->vif.hw_queue, ieee80211_do_open()
523 sizeof(sdata->vif.hw_queue)); ieee80211_do_open()
524 sdata->vif.bss_conf.chandef = master->vif.bss_conf.chandef; ieee80211_do_open()
580 switch (sdata->vif.type) { ieee80211_do_open()
629 ieee80211_vif_type_p2p(&sdata->vif)); ieee80211_do_open()
634 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_do_open()
639 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { ieee80211_do_open()
643 if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE) ieee80211_do_open()
647 switch (sdata->vif.type) { ieee80211_do_open()
673 if (sdata->vif.type == NL80211_IFTYPE_WDS) { ieee80211_do_open()
694 } else if (sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE) { ieee80211_do_open()
717 if (sdata->vif.type == NL80211_IFTYPE_MONITOR || ieee80211_do_open()
718 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_do_open()
730 if (sdata->vif.cab_queue == IEEE80211_INVAL_HW_QUEUE || ieee80211_do_open()
731 (local->queue_stop_reasons[sdata->vif.cab_queue] == 0 && ieee80211_do_open()
732 skb_queue_empty(&local->pending[sdata->vif.cab_queue]))) { ieee80211_do_open()
734 int ac_queue = sdata->vif.hw_queue[ac]; ieee80211_do_open()
752 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_do_open()
771 err = ieee80211_check_concurrent_iface(sdata, sdata->vif.type); ieee80211_open()
804 switch (sdata->vif.type) { ieee80211_do_stop()
824 * assumptions about always getting a vif pointer that is valid ieee80211_do_stop()
826 * the driver will have removed the vif info already!) ieee80211_do_stop()
834 WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_AP_VLAN && ieee80211_do_stop()
835 ((sdata->vif.type != NL80211_IFTYPE_WDS && flushed > 0) || ieee80211_do_stop()
836 (sdata->vif.type == NL80211_IFTYPE_WDS && flushed != 1))); ieee80211_do_stop()
845 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_do_stop()
848 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { ieee80211_do_stop()
867 sdata->vif.csa_active = false; ieee80211_do_stop()
868 if (sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_do_stop()
883 chandef = sdata->vif.bss_conf.chandef; ieee80211_do_stop()
894 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_do_stop()
902 } else if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_do_stop()
920 switch (sdata->vif.type) { ieee80211_do_stop()
925 RCU_INIT_POINTER(sdata->vif.chanctx_conf, NULL); ieee80211_do_stop()
972 if (info->control.vif == &sdata->vif) { ieee80211_do_stop()
980 if (sdata->vif.txq) { ieee80211_do_stop()
981 struct txq_info *txqi = to_txq_info(sdata->vif.txq); ieee80211_do_stop()
1005 switch (sdata->vif.type) { ieee80211_do_stop()
1103 if (ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_teardown_sdata()
1197 ieee80211_start_tx_ba_cb(&sdata->vif, ra_tid->ra, ieee80211_iface_work()
1201 ieee80211_stop_tx_ba_cb(&sdata->vif, ra_tid->ra, ieee80211_iface_work()
1282 } else switch (sdata->vif.type) { ieee80211_iface_work()
1290 if (!ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_iface_work()
1303 switch (sdata->vif.type) { ieee80211_iface_work()
1311 if (!ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_iface_work()
1344 sdata->vif.type = type; ieee80211_setup_sdata()
1345 sdata->vif.p2p = false; ieee80211_setup_sdata()
1351 sdata->vif.bss_conf.idle = true; ieee80211_setup_sdata()
1371 sdata->vif.type = type; ieee80211_setup_sdata()
1372 sdata->vif.p2p = true; ieee80211_setup_sdata()
1379 sdata->vif.bss_conf.bssid = sdata->vif.addr; ieee80211_setup_sdata()
1384 sdata->vif.type = type; ieee80211_setup_sdata()
1385 sdata->vif.p2p = true; ieee80211_setup_sdata()
1388 sdata->vif.bss_conf.bssid = sdata->u.mgd.bssid; ieee80211_setup_sdata()
1392 sdata->vif.bss_conf.bssid = bssid_wildcard; ieee80211_setup_sdata()
1396 sdata->vif.bss_conf.bssid = sdata->u.ibss.bssid; ieee80211_setup_sdata()
1400 if (ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_setup_sdata()
1410 sdata->vif.bss_conf.bssid = NULL; ieee80211_setup_sdata()
1414 sdata->vif.bss_conf.bssid = sdata->vif.addr; ieee80211_setup_sdata()
1438 switch (sdata->vif.type) { ieee80211_runtime_change_iftype()
1488 type = ieee80211_vif_type_p2p(&sdata->vif); ieee80211_runtime_change_iftype()
1512 if (type == ieee80211_vif_type_p2p(&sdata->vif)) ieee80211_if_change_type()
1558 if (sdata->vif.type != NL80211_IFTYPE_AP) ieee80211_assign_perm_addr()
1560 memcpy(perm_addr, sdata->vif.addr, ETH_ALEN); ieee80211_assign_perm_addr()
1569 if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE) ieee80211_assign_perm_addr()
1573 memcpy(perm_addr, sdata->vif.addr, ETH_ALEN); ieee80211_assign_perm_addr()
1585 sdata->vif.addr)) { ieee80211_assign_perm_addr()
1620 if (sdata->vif.type == NL80211_IFTYPE_MONITOR) ieee80211_assign_perm_addr()
1622 m = sdata->vif.addr; ieee80211_assign_perm_addr()
1645 if (ether_addr_equal(tmp_addr, sdata->vif.addr)) { ieee80211_assign_perm_addr()
1690 memcpy(sdata->vif.addr, wdev->address, ETH_ALEN); ieee80211_if_add()
1735 memcpy(sdata->vif.addr, ndev->dev_addr, ETH_ALEN); ieee80211_if_add()
1856 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) ieee80211_remove_interfaces()
H A Ddriver-ops.h18 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) get_bss_sdata()
38 local->ops->get_et_strings(&local->hw, &sdata->vif, sset, data); drv_get_et_strings()
50 local->ops->get_et_stats(&local->hw, &sdata->vif, stats, data); drv_get_et_stats()
62 rv = local->ops->get_et_sset_count(&local->hw, &sdata->vif, drv_get_et_sset_count()
147 if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_AP_VLAN || drv_add_interface()
148 (sdata->vif.type == NL80211_IFTYPE_MONITOR && drv_add_interface()
154 ret = local->ops->add_interface(&local->hw, &sdata->vif); drv_add_interface()
175 ret = local->ops->change_interface(&local->hw, &sdata->vif, type, p2p); drv_change_interface()
189 local->ops->remove_interface(&local->hw, &sdata->vif); drv_remove_interface()
215 sdata->vif.type != NL80211_IFTYPE_AP && drv_bss_info_changed()
216 sdata->vif.type != NL80211_IFTYPE_ADHOC && drv_bss_info_changed()
217 sdata->vif.type != NL80211_IFTYPE_MESH_POINT && drv_bss_info_changed()
218 sdata->vif.type != NL80211_IFTYPE_OCB)) drv_bss_info_changed()
221 if (WARN_ON_ONCE(sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE || drv_bss_info_changed()
222 sdata->vif.type == NL80211_IFTYPE_MONITOR)) drv_bss_info_changed()
230 local->ops->bss_info_changed(&local->hw, &sdata->vif, info, changed); drv_bss_info_changed()
289 ret = local->ops->set_key(&local->hw, cmd, &sdata->vif, sta, key); drv_set_key()
311 local->ops->update_tkip_key(&local->hw, &sdata->vif, conf, drv_update_tkip_key()
328 ret = local->ops->hw_scan(&local->hw, &sdata->vif, req); drv_hw_scan()
342 local->ops->cancel_hw_scan(&local->hw, &sdata->vif); drv_cancel_hw_scan()
360 ret = local->ops->sched_scan_start(&local->hw, &sdata->vif, drv_sched_scan_start()
377 ret = local->ops->sched_scan_stop(&local->hw, &sdata->vif); drv_sched_scan_stop()
391 local->ops->sw_scan_start(&local->hw, &sdata->vif, mac_addr); drv_sw_scan_start()
402 local->ops->sw_scan_complete(&local->hw, &sdata->vif); drv_sw_scan_complete()
483 local->ops->sta_notify(&local->hw, &sdata->vif, cmd, sta); drv_sta_notify()
501 ret = local->ops->sta_add(&local->hw, &sdata->vif, sta); drv_sta_add()
520 local->ops->sta_remove(&local->hw, &sdata->vif, sta); drv_sta_remove()
538 local->ops->sta_add_debugfs(&local->hw, &sdata->vif, drv_sta_add_debugfs()
553 local->ops->sta_remove_debugfs(&local->hw, &sdata->vif, drv_sta_remove_debugfs()
570 local->ops->sta_pre_rcu_remove(&local->hw, &sdata->vif, drv_sta_pre_rcu_remove()
592 ret = local->ops->sta_state(&local->hw, &sdata->vif, &sta->sta, drv_sta_state()
616 (sdata->vif.type != NL80211_IFTYPE_ADHOC && drv_sta_rc_update()
617 sdata->vif.type != NL80211_IFTYPE_MESH_POINT)); drv_sta_rc_update()
621 local->ops->sta_rc_update(&local->hw, &sdata->vif, drv_sta_rc_update()
637 local->ops->sta_rate_tbl_update(&local->hw, &sdata->vif, sta); drv_sta_rate_tbl_update()
653 local->ops->sta_statistics(&local->hw, &sdata->vif, sta, sinfo); drv_sta_statistics()
676 ret = local->ops->conf_tx(&local->hw, &sdata->vif, drv_conf_tx()
694 ret = local->ops->get_tsf(&local->hw, &sdata->vif); drv_get_tsf()
710 local->ops->set_tsf(&local->hw, &sdata->vif, tsf); drv_set_tsf()
724 local->ops->reset_tsf(&local->hw, &sdata->vif); drv_reset_tsf()
758 ret = local->ops->ampdu_action(&local->hw, &sdata->vif, action, drv_ampdu_action()
793 struct ieee80211_vif *vif = sdata ? &sdata->vif : NULL; drv_flush() local
802 local->ops->flush(&local->hw, vif, queues, drop); drv_flush()
813 local->ops->channel_switch(&local->hw, &sdata->vif, ch_switch); drv_channel_switch()
851 ret = local->ops->remain_on_channel(&local->hw, &sdata->vif, drv_remain_on_channel()
925 &sdata->vif, mask); drv_set_bitrate_mask()
940 local->ops->set_rekey_data(&local->hw, &sdata->vif, data); drv_set_rekey_data()
950 local->ops->event_callback(&local->hw, &sdata->vif, event); drv_event_callback()
991 WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION); drv_mgd_prepare_tx()
995 local->ops->mgd_prepare_tx(&local->hw, &sdata->vif); drv_mgd_prepare_tx()
1007 WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION); drv_mgd_protect_tdls_discover()
1011 local->ops->mgd_protect_tdls_discover(&local->hw, &sdata->vif); drv_mgd_protect_tdls_discover()
1068 &sdata->vif, drv_assign_vif_chanctx()
1087 &sdata->vif, drv_unassign_vif_chanctx()
1154 trace_drv_start_ap(local, sdata, &sdata->vif.bss_conf); drv_start_ap()
1156 ret = local->ops->start_ap(&local->hw, &sdata->vif); drv_start_ap()
1169 local->ops->stop_ap(&local->hw, &sdata->vif); drv_stop_ap()
1197 local->ops->set_default_unicast_key(&local->hw, &sdata->vif, drv_set_default_unicast_key()
1209 local->ops->ipv6_addr_change(&local->hw, &sdata->vif, idev); drv_ipv6_addr_change()
1222 local->ops->channel_switch_beacon(&local->hw, &sdata->vif, drv_channel_switch_beacon()
1239 ret = local->ops->pre_channel_switch(&local->hw, &sdata->vif, drv_pre_channel_switch()
1256 ret = local->ops->post_channel_switch(&local->hw, &sdata->vif); drv_post_channel_switch()
1270 trace_drv_join_ibss(local, sdata, &sdata->vif.bss_conf); drv_join_ibss()
1272 ret = local->ops->join_ibss(&local->hw, &sdata->vif); drv_join_ibss()
1286 local->ops->leave_ibss(&local->hw, &sdata->vif); drv_leave_ibss()
1311 ret = local->ops->get_txpower(&local->hw, &sdata->vif, dbm); drv_get_txpower()
1334 ret = local->ops->tdls_channel_switch(&local->hw, &sdata->vif, sta, drv_tdls_channel_switch()
1354 local->ops->tdls_cancel_channel_switch(&local->hw, &sdata->vif, sta); drv_tdls_cancel_channel_switch()
1365 local->ops->tdls_recv_channel_switch(&local->hw, &sdata->vif, drv_tdls_recv_channel_switch()
1373 struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->txq.vif); drv_wake_tx_queue()
H A Dtx.c54 chanctx_conf = rcu_dereference(tx->sdata->vif.chanctx_conf); ieee80211_duration()
139 if (tx->sdata->vif.bss_conf.basic_rates & BIT(i)) ieee80211_duration()
179 tx->sdata->vif.bss_conf.use_short_preamble, ieee80211_duration()
189 tx->sdata->vif.bss_conf.use_short_preamble, ieee80211_duration()
227 if (tx->sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_tx_h_dynamic_ps()
298 if (tx->sdata->vif.type == NL80211_IFTYPE_OCB) ieee80211_tx_h_check_assoc()
301 if (tx->sdata->vif.type == NL80211_IFTYPE_WDS) ieee80211_tx_h_check_assoc()
321 } else if (unlikely(tx->sdata->vif.type == NL80211_IFTYPE_AP && ieee80211_tx_h_check_assoc()
348 if (sdata->vif.type == NL80211_IFTYPE_AP) purge_old_ps_buffers()
350 else if (ieee80211_vif_is_mesh(&sdata->vif)) purge_old_ps_buffers()
401 if (tx->sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_tx_h_multicast_ps_buf()
402 tx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_tx_h_multicast_ps_buf()
407 } else if (ieee80211_vif_is_mesh(&tx->sdata->vif)) { ieee80211_tx_h_multicast_ps_buf()
422 info->hw_queue = tx->sdata->vif.cab_queue; ieee80211_tx_h_multicast_ps_buf()
517 info->control.vif = &tx->sdata->vif; ieee80211_tx_h_unicast_ps_buf()
665 txrc.bss_conf = &tx->sdata->vif.bss_conf; ieee80211_tx_h_rate_ctrl()
678 txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_tx_h_rate_ctrl()
679 tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT || ieee80211_tx_h_rate_ctrl()
680 tx->sdata->vif.type == NL80211_IFTYPE_ADHOC); ieee80211_tx_h_rate_ctrl()
688 info->control.use_cts_prot = tx->sdata->vif.bss_conf.use_cts_prot; ieee80211_tx_h_rate_ctrl()
696 if (tx->sdata->vif.bss_conf.use_short_preamble && ieee80211_tx_h_rate_ctrl()
791 if (unlikely(info->control.vif->type == NL80211_IFTYPE_MONITOR)) ieee80211_tx_h_sequence()
1106 info->control.vif = &tx->sdata->vif; ieee80211_tx_prep_agg()
1161 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_tx_prepare()
1219 struct ieee80211_vif *vif, ieee80211_drv_tx()
1224 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_drv_tx()
1243 } else if (vif) { ieee80211_drv_tx()
1244 txq = vif->txq; ieee80211_drv_tx()
1269 struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->vif); ieee80211_tx_dequeue()
1286 ieee80211_propagate_queue_wake(local, sdata->vif.hw_queue[ac]); ieee80211_tx_dequeue()
1309 struct ieee80211_vif *vif, ieee80211_tx_frags()
1370 info->control.vif = vif; skb_queue_walk_safe()
1373 ieee80211_drv_tx(local, vif, sta, skb); skb_queue_walk_safe()
1388 struct ieee80211_vif *vif; __ieee80211_tx() local
1400 sdata = vif_to_sdata(info->control.vif); __ieee80211_tx()
1409 switch (sdata->vif.type) { __ieee80211_tx()
1412 vif = &sdata->vif; __ieee80211_tx()
1417 vif = &sdata->vif; __ieee80211_tx()
1419 vif->hw_queue[skb_get_queue_mapping(skb)]; __ieee80211_tx()
1424 vif = NULL; __ieee80211_tx()
1431 vif = &sdata->vif; __ieee80211_tx()
1435 result = ieee80211_tx_frags(local, vif, pubsta, skbs, __ieee80211_tx()
1502 struct ieee80211_vif *vif, struct sk_buff *skb, ieee80211_tx_prepare_skb()
1505 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_tx_prepare_skb()
1514 info->control.vif = vif; ieee80211_tx_prepare_skb()
1515 info->hw_queue = vif->hw_queue[skb_get_queue_mapping(skb)]; ieee80211_tx_prepare_skb()
1573 sdata->vif.hw_queue[skb_get_queue_mapping(skb)]; ieee80211_tx()
1639 info->control.vif = &sdata->vif; ieee80211_xmit()
1641 if (ieee80211_vif_is_mesh(&sdata->vif)) { ieee80211_xmit()
1827 if (tmp_sdata->vif.type == NL80211_IFTYPE_MONITOR || ieee80211_monitor_start_xmit()
1828 tmp_sdata->vif.type == NL80211_IFTYPE_AP_VLAN || ieee80211_monitor_start_xmit()
1829 tmp_sdata->vif.type == NL80211_IFTYPE_WDS) ieee80211_monitor_start_xmit()
1831 if (ether_addr_equal(tmp_sdata->vif.addr, hdr->addr2)) { ieee80211_monitor_start_xmit()
1837 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_monitor_start_xmit()
1842 rcu_dereference(tmp_sdata->vif.chanctx_conf); ieee80211_monitor_start_xmit()
1869 sdata->vif.type)) ieee80211_monitor_start_xmit()
1900 switch (sdata->vif.type) { ieee80211_lookup_ra_sta()
2020 switch (sdata->vif.type) { ieee80211_build_hdr()
2026 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); ieee80211_build_hdr()
2035 chanctx_conf = rcu_dereference(ap_sdata->vif.chanctx_conf); ieee80211_build_hdr()
2045 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_build_hdr()
2046 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_build_hdr()
2054 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); ieee80211_build_hdr()
2063 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); ieee80211_build_hdr()
2102 if (ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN) && ieee80211_build_hdr()
2123 mesh_da, sdata->vif.addr); ieee80211_build_hdr()
2136 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_build_hdr()
2160 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); ieee80211_build_hdr()
2172 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_build_hdr()
2185 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_build_hdr()
2198 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_build_hdr()
2216 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { ieee80211_build_hdr()
2231 if (unlikely(!ieee80211_vif_is_mesh(&sdata->vif) && ieee80211_build_hdr()
2232 (sdata->vif.type != NL80211_IFTYPE_OCB) && ieee80211_build_hdr()
2235 !ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN)))) { ieee80211_build_hdr()
2501 sdata = vif_to_sdata(info->control.vif); ieee80211_tx_pending_skb()
2504 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_tx_pending_skb()
2552 if (WARN_ON(!info->control.vif)) { ieee80211_tx_pending()
2594 ps->dtim_count = sdata->vif.bss_conf.dtim_period - 1; __ieee80211_beacon_add_tim()
2603 *pos++ = sdata->vif.bss_conf.dtim_period; __ieee80211_beacon_add_tim()
2675 switch (sdata->vif.type) { ieee80211_set_csa()
2706 if (sdata->vif.type == NL80211_IFTYPE_AP && resp) ieee80211_set_csa()
2712 u8 ieee80211_csa_update_counter(struct ieee80211_vif *vif) ieee80211_csa_update_counter() argument
2714 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_csa_update_counter()
2720 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_csa_update_counter()
2722 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) ieee80211_csa_update_counter()
2724 else if (ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_csa_update_counter()
2742 bool ieee80211_csa_is_complete(struct ieee80211_vif *vif) ieee80211_csa_is_complete() argument
2744 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_csa_is_complete()
2754 if (vif->type == NL80211_IFTYPE_AP) { ieee80211_csa_is_complete()
2762 } else if (vif->type == NL80211_IFTYPE_ADHOC) { ieee80211_csa_is_complete()
2771 } else if (vif->type == NL80211_IFTYPE_MESH_POINT) { ieee80211_csa_is_complete()
2802 struct ieee80211_vif *vif, __ieee80211_beacon_get()
2818 sdata = vif_to_sdata(vif); __ieee80211_beacon_get()
2819 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); __ieee80211_beacon_get()
2827 if (sdata->vif.type == NL80211_IFTYPE_AP) { __ieee80211_beacon_get()
2834 ieee80211_csa_update_counter(vif); __ieee80211_beacon_get()
2870 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { __ieee80211_beacon_get()
2880 ieee80211_csa_update_counter(vif); __ieee80211_beacon_get()
2896 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { __ieee80211_beacon_get()
2910 ieee80211_csa_update_counter(vif); __ieee80211_beacon_get()
2967 txrc.bss_conf = &sdata->vif.bss_conf; __ieee80211_beacon_get()
2978 info->control.vif = vif; __ieee80211_beacon_get()
2991 struct ieee80211_vif *vif, ieee80211_beacon_get_template()
2994 return __ieee80211_beacon_get(hw, vif, offs, true); ieee80211_beacon_get_template()
2999 struct ieee80211_vif *vif, ieee80211_beacon_get_tim()
3003 struct sk_buff *bcn = __ieee80211_beacon_get(hw, vif, &offs, false); ieee80211_beacon_get_tim()
3016 struct ieee80211_vif *vif) ieee80211_proberesp_get()
3022 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_proberesp_get()
3024 if (sdata->vif.type != NL80211_IFTYPE_AP) ieee80211_proberesp_get()
3050 struct ieee80211_vif *vif) ieee80211_pspoll_get()
3058 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION)) ieee80211_pspoll_get()
3061 sdata = vif_to_sdata(vif); ieee80211_pspoll_get()
3081 memcpy(pspoll->ta, vif->addr, ETH_ALEN); ieee80211_pspoll_get()
3088 struct ieee80211_vif *vif) ieee80211_nullfunc_get()
3096 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION)) ieee80211_nullfunc_get()
3099 sdata = vif_to_sdata(vif); ieee80211_nullfunc_get()
3116 memcpy(nullfunc->addr2, vif->addr, ETH_ALEN); ieee80211_nullfunc_get()
3162 void ieee80211_rts_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ieee80211_rts_get() argument
3171 rts->duration = ieee80211_rts_duration(hw, vif, frame_len, ieee80211_rts_get()
3178 void ieee80211_ctstoself_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ieee80211_ctstoself_get() argument
3187 cts->duration = ieee80211_ctstoself_duration(hw, vif, ieee80211_ctstoself_get()
3195 struct ieee80211_vif *vif) ieee80211_get_buffered_bc()
3205 sdata = vif_to_sdata(vif); ieee80211_get_buffered_bc()
3208 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_get_buffered_bc()
3213 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_get_buffered_bc()
3221 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { ieee80211_get_buffered_bc()
3246 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_get_buffered_bc()
3278 switch (sdata->vif.type) { ieee80211_reserve_tid()
3314 queues = BIT(sdata->vif.hw_queue[ieee802_1d_to_ac[tid]]); ieee80211_reserve_tid()
3339 switch (sdata->vif.type) { ieee80211_unreserve_tid()
1218 ieee80211_drv_tx(struct ieee80211_local *local, struct ieee80211_vif *vif, struct ieee80211_sta *pubsta, struct sk_buff *skb) ieee80211_drv_tx() argument
1308 ieee80211_tx_frags(struct ieee80211_local *local, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct sk_buff_head *skbs, bool txpending) ieee80211_tx_frags() argument
1501 ieee80211_tx_prepare_skb(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct sk_buff *skb, int band, struct ieee80211_sta **sta) ieee80211_tx_prepare_skb() argument
2801 __ieee80211_beacon_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_mutable_offsets *offs, bool is_template) __ieee80211_beacon_get() argument
2990 ieee80211_beacon_get_template(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_mutable_offsets *offs) ieee80211_beacon_get_template() argument
2998 ieee80211_beacon_get_tim(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 *tim_offset, u16 *tim_length) ieee80211_beacon_get_tim() argument
3015 ieee80211_proberesp_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ieee80211_proberesp_get() argument
3049 ieee80211_pspoll_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ieee80211_pspoll_get() argument
3087 ieee80211_nullfunc_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ieee80211_nullfunc_get() argument
3194 ieee80211_get_buffered_bc(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ieee80211_get_buffered_bc() argument
H A Ddebugfs_netdev.c191 IEEE80211_IF_FILE(txpower, vif.bss_conf.txpower, DEC);
202 sdata->vif.hw_queue[IEEE80211_AC_VO], ieee80211_if_fmt_hw_queues()
203 sdata->vif.hw_queue[IEEE80211_AC_VI], ieee80211_if_fmt_hw_queues()
204 sdata->vif.hw_queue[IEEE80211_AC_BE], ieee80211_if_fmt_hw_queues()
205 sdata->vif.hw_queue[IEEE80211_AC_BK]); ieee80211_if_fmt_hw_queues()
207 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_if_fmt_hw_queues()
209 sdata->vif.cab_queue); ieee80211_if_fmt_hw_queues()
238 if (sdata->vif.type != NL80211_IFTYPE_STATION && ieee80211_set_smps()
239 sdata->vif.type != NL80211_IFTYPE_AP) ieee80211_set_smps()
243 if (sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_set_smps()
262 if (sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_if_fmt_smps()
266 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_if_fmt_smps()
315 switch (sdata->vif.type) { ieee80211_if_parse_tkip_mic_test()
320 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); ieee80211_if_parse_tkip_mic_test()
321 memcpy(hdr->addr3, sdata->vif.addr, ETH_ALEN); ieee80211_if_parse_tkip_mic_test()
333 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); ieee80211_if_parse_tkip_mic_test()
361 if (!ieee80211_sdata_running(sdata) || !sdata->vif.bss_conf.assoc) ieee80211_if_parse_beacon_loss()
364 ieee80211_beacon_loss(&sdata->vif); ieee80211_if_parse_beacon_loss()
557 debugfs_create_file(#name, mode, sdata->vif.debugfs_dir, \
616 sdata->vif.debugfs_dir); add_mesh_stats()
632 sdata->vif.debugfs_dir); add_mesh_config()
669 if (!sdata->vif.debugfs_dir) add_files()
678 if (sdata->vif.type != NL80211_IFTYPE_MONITOR) add_files()
681 switch (sdata->vif.type) { add_files()
711 sdata->vif.debugfs_dir = debugfs_create_dir(buf, ieee80211_debugfs_add_netdev()
713 if (sdata->vif.debugfs_dir) ieee80211_debugfs_add_netdev()
715 sdata->vif.debugfs_dir); ieee80211_debugfs_add_netdev()
721 if (!sdata->vif.debugfs_dir) ieee80211_debugfs_remove_netdev()
724 debugfs_remove_recursive(sdata->vif.debugfs_dir); ieee80211_debugfs_remove_netdev()
725 sdata->vif.debugfs_dir = NULL; ieee80211_debugfs_remove_netdev()
734 dir = sdata->vif.debugfs_dir; ieee80211_debugfs_rename_netdev()
H A Dchan.c72 conf = rcu_dereference_protected(sdata->vif.chanctx_conf, ieee80211_vif_get_chanctx()
118 compat = &sdata->vif.bss_conf.chandef; ieee80211_chanctx_non_reserved_chandef()
121 &sdata->vif.bss_conf.chandef, compat); ieee80211_chanctx_non_reserved_chandef()
253 struct ieee80211_vif *vif = &sdata->vif; ieee80211_get_chanctx_max_required_bw() local
259 if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) ieee80211_get_chanctx_max_required_bw()
262 switch (vif->type) { ieee80211_get_chanctx_max_required_bw()
274 width = vif->bss_conf.chandef.width; ieee80211_get_chanctx_max_required_bw()
288 if (sdata && rcu_access_pointer(sdata->vif.chanctx_conf) == conf) ieee80211_get_chanctx_max_required_bw()
424 if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) ieee80211_chanctx_radar_required()
571 if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) ieee80211_recalc_chanctx_chantype()
573 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) ieee80211_recalc_chanctx_chantype()
577 compat = &sdata->vif.bss_conf.chandef; ieee80211_recalc_chanctx_chantype()
580 &sdata->vif.bss_conf.chandef, compat); ieee80211_recalc_chanctx_chantype()
624 conf = rcu_dereference_protected(sdata->vif.chanctx_conf, ieee80211_assign_vif_chanctx()
646 rcu_assign_pointer(sdata->vif.chanctx_conf, conf); ieee80211_assign_vif_chanctx()
648 sdata->vif.bss_conf.idle = !conf; ieee80211_assign_vif_chanctx()
662 if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && ieee80211_assign_vif_chanctx()
663 sdata->vif.type != NL80211_IFTYPE_MONITOR) ieee80211_assign_vif_chanctx()
688 if (rcu_access_pointer(sdata->vif.chanctx_conf) != ieee80211_recalc_smps_chanctx()
692 switch (sdata->vif.type) { ieee80211_recalc_smps_chanctx()
737 rcu_access_pointer(sdata->vif.chanctx_conf) == &chanctx->conf) ieee80211_recalc_smps_chanctx()
769 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP)) __ieee80211_vif_copy_chanctx_to_vlans()
780 conf = rcu_dereference_protected(sdata->vif.chanctx_conf, __ieee80211_vif_copy_chanctx_to_vlans()
788 rcu_assign_pointer(vlan->vif.chanctx_conf, conf); __ieee80211_vif_copy_chanctx_to_vlans()
864 * Another vif already requested this context ieee80211_vif_reserve_chanctx()
937 switch (sdata->vif.type) { ieee80211_vif_chanctx_reservation_complete()
968 sdata->vif.bss_conf.chandef = *chandef; ieee80211_vif_update_chandef()
970 if (sdata->vif.type != NL80211_IFTYPE_AP) ieee80211_vif_update_chandef()
974 vlan->vif.bss_conf.chandef = *chandef; ieee80211_vif_update_chandef()
1011 vif_chsw[0].vif = &sdata->vif; ieee80211_vif_use_reserved_reassign()
1028 rcu_assign_pointer(sdata->vif.chanctx_conf, &new_ctx->conf); ieee80211_vif_use_reserved_reassign()
1030 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_vif_use_reserved_reassign()
1036 if (sdata->vif.bss_conf.chandef.width != sdata->reserved_chandef.width) ieee80211_vif_use_reserved_reassign()
1174 vif_chsw[i].vif = &sdata->vif; ieee80211_chsw_switch_vifs()
1373 rcu_assign_pointer(sdata->vif.chanctx_conf, &ctx->conf); ieee80211_vif_use_reserved_switch()
1375 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_vif_use_reserved_switch()
1381 if (sdata->vif.bss_conf.chandef.width != ieee80211_vif_use_reserved_switch()
1490 conf = rcu_dereference_protected(sdata->vif.chanctx_conf, __ieee80211_vif_release_channel()
1657 if (cfg80211_chandef_identical(chandef, &sdata->vif.bss_conf.chandef)) { ieee80211_vif_change_bandwidth()
1663 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT) { ieee80211_vif_change_bandwidth()
1668 conf = rcu_dereference_protected(sdata->vif.chanctx_conf, ieee80211_vif_change_bandwidth()
1731 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->bss)) ieee80211_vif_vlan_copy_chanctx()
1738 conf = rcu_dereference_protected(ap->vif.chanctx_conf, ieee80211_vif_vlan_copy_chanctx()
1740 rcu_assign_pointer(sdata->vif.chanctx_conf, conf); ieee80211_vif_vlan_copy_chanctx()
H A Dcfg.c75 if (sdata->vif.type == NL80211_IFTYPE_MONITOR && flags) { ieee80211_change_iface()
175 cs = ieee80211_cs_get(local, params->cipher, sdata->vif.type); ieee80211_add_key()
191 if (ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_add_key()
212 switch (sdata->vif.type) { ieee80211_add_key()
454 int shift = ieee80211_vif_get_shift(&sta->sdata->vif); sta_set_rate_info_tx()
487 int shift = ieee80211_vif_get_shift(&sta->sdata->vif); sta_set_rate_info_rx()
760 sdata->vif.type); ieee80211_start_ap()
770 vlan->vif.type); ieee80211_start_ap()
773 sdata->vif.bss_conf.beacon_int = params->beacon_interval; ieee80211_start_ap()
774 sdata->vif.bss_conf.dtim_period = params->dtim_period; ieee80211_start_ap()
775 sdata->vif.bss_conf.enable_beacon = true; ieee80211_start_ap()
777 sdata->vif.bss_conf.ssid_len = params->ssid_len; ieee80211_start_ap()
779 memcpy(sdata->vif.bss_conf.ssid, params->ssid, ieee80211_start_ap()
781 sdata->vif.bss_conf.hidden_ssid = ieee80211_start_ap()
784 memset(&sdata->vif.bss_conf.p2p_noa_attr, 0, ieee80211_start_ap()
785 sizeof(sdata->vif.bss_conf.p2p_noa_attr)); ieee80211_start_ap()
786 sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow = ieee80211_start_ap()
789 sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow |= ieee80211_start_ap()
833 if (sdata->vif.csa_active) ieee80211_change_beacon()
865 sdata->vif.csa_active = false; ieee80211_stop_ap()
893 sdata->vif.bss_conf.enable_beacon = false; ieee80211_stop_ap()
894 sdata->vif.bss_conf.ssid_len = 0; ieee80211_stop_ap()
899 chandef = sdata->vif.bss_conf.chandef; ieee80211_stop_ap()
1039 if (ieee80211_vif_is_mesh(&sdata->vif)) { sta_apply_parameters()
1126 ieee80211_parse_bitrates(&sdata->vif.bss_conf.chandef, sta_apply_parameters()
1149 if (ieee80211_vif_is_mesh(&sdata->vif)) { sta_apply_parameters()
1229 if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN && ieee80211_add_station()
1230 sdata->vif.type != NL80211_IFTYPE_AP) ieee80211_add_station()
1235 if (ether_addr_equal(mac, sdata->vif.addr)) ieee80211_add_station()
1269 layer2_update = sdata->vif.type == NL80211_IFTYPE_AP_VLAN || ieee80211_add_station()
1270 sdata->vif.type == NL80211_IFTYPE_AP; ieee80211_add_station()
1319 switch (sdata->vif.type) { ieee80211_change_station()
1368 if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && ieee80211_change_station()
1393 if ((sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_change_station()
1394 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && ieee80211_change_station()
1404 sta->sdata->vif.bss_conf.bssid); ieee80211_change_station()
1407 if (sdata->vif.type == NL80211_IFTYPE_STATION && ieee80211_change_station()
1677 memcpy(sdata->vif.bss_conf.mcast_rate, setup->mcast_rate, copy_mesh_setup()
1679 sdata->vif.bss_conf.basic_rates = setup->basic_rates; copy_mesh_setup()
1681 sdata->vif.bss_conf.beacon_int = setup->beacon_interval; copy_mesh_setup()
1682 sdata->vif.bss_conf.dtim_period = setup->dtim_period; copy_mesh_setup()
1773 sdata->vif.bss_conf.ht_operation_mode = nconf->ht_opmode; ieee80211_update_mesh_config()
1852 sdata->vif.bss_conf.use_cts_prot = params->use_cts_prot; ieee80211_change_bss()
1856 sdata->vif.bss_conf.use_short_preamble = ieee80211_change_bss()
1861 if (!sdata->vif.bss_conf.use_short_slot && ieee80211_change_bss()
1863 sdata->vif.bss_conf.use_short_slot = true; ieee80211_change_bss()
1868 sdata->vif.bss_conf.use_short_slot = ieee80211_change_bss()
1874 ieee80211_parse_bitrates(&sdata->vif.bss_conf.chandef, ieee80211_change_bss()
1878 &sdata->vif.bss_conf.basic_rates); ieee80211_change_bss()
1890 sdata->vif.bss_conf.ht_operation_mode = ieee80211_change_bss()
1896 sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow &= ieee80211_change_bss()
1898 sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow |= ieee80211_change_bss()
1904 sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow |= ieee80211_change_bss()
1908 sdata->vif.bss_conf.p2p_noa_attr.oppps_ctwindow &= ieee80211_change_bss()
1980 switch (ieee80211_vif_type_p2p(&sdata->vif)) { ieee80211_scan()
2090 memcpy(sdata->vif.bss_conf.mcast_rate, rate, ieee80211_set_mcast_rate()
2169 if (txp_type != sdata->vif.bss_conf.txpower_type) { ieee80211_set_tx_power()
2171 sdata->vif.bss_conf.txpower_type = txp_type; ieee80211_set_tx_power()
2195 if (txp_type != sdata->vif.bss_conf.txpower_type) ieee80211_set_tx_power()
2197 sdata->vif.bss_conf.txpower_type = txp_type; ieee80211_set_tx_power()
2219 *dbm = sdata->vif.bss_conf.txpower; ieee80211_get_tx_power()
2247 struct ieee80211_vif *vif = NULL; ieee80211_testmode_cmd() local
2257 vif = &sdata->vif; ieee80211_testmode_cmd()
2260 return local->ops->testmode_cmd(&local->hw, vif, data, len); ieee80211_testmode_cmd()
2283 if (WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_AP)) __ieee80211_request_smps_ap()
2286 if (sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT) __ieee80211_request_smps_ap()
2342 sdata->vif.bss_conf.bssid); __ieee80211_request_smps_ap()
2361 if (WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION)) __ieee80211_request_smps_mgd()
2377 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT) __ieee80211_request_smps_mgd()
2404 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_set_power_mgmt()
2436 struct ieee80211_vif *vif = &sdata->vif; ieee80211_set_cqm_rssi_config() local
2437 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; ieee80211_set_cqm_rssi_config()
2448 sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI) ieee80211_set_cqm_rssi_config()
2866 void ieee80211_csa_finish(struct ieee80211_vif *vif) ieee80211_csa_finish() argument
2868 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_csa_finish()
2880 switch (sdata->vif.type) { ieee80211_set_after_csa_beacon()
2925 * with multi-vif. once reservation is complete it will re-schedule the __ieee80211_csa_finalize()
2932 * with multi-vif csa driver may call ieee80211_csa_finish() __ieee80211_csa_finalize()
2942 if (!cfg80211_chandef_identical(&sdata->vif.bss_conf.chandef, __ieee80211_csa_finalize()
2946 sdata->vif.csa_active = false; __ieee80211_csa_finalize()
2990 if (!sdata->vif.csa_active) ieee80211_csa_finalize_work()
3011 switch (sdata->vif.type) { ieee80211_set_csa_beacon()
3058 if (!sdata->vif.bss_conf.ibss_joined) ieee80211_set_csa_beacon()
3098 if (params->chandef.width != sdata->vif.bss_conf.chandef.width) ieee80211_set_csa_beacon()
3102 if (sdata->vif.bss_conf.chandef.chan->band != ieee80211_set_csa_beacon()
3159 &sdata->vif.bss_conf.chandef)) __ieee80211_channel_switch()
3163 if (sdata->vif.csa_active) __ieee80211_channel_switch()
3167 conf = rcu_dereference_protected(sdata->vif.chanctx_conf, __ieee80211_channel_switch()
3211 sdata->vif.csa_active = true; __ieee80211_channel_switch()
3270 switch (sdata->vif.type) { ieee80211_mgmt_tx()
3272 if (!sdata->vif.bss_conf.ibss_joined) ieee80211_mgmt_tx()
3277 if (ieee80211_vif_is_mesh(&sdata->vif) && ieee80211_mgmt_tx()
3285 if (sdata->vif.type != NL80211_IFTYPE_ADHOC && ieee80211_mgmt_tx()
3286 !ieee80211_vif_is_mesh(&sdata->vif) && ieee80211_mgmt_tx()
3325 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_mgmt_tx()
3357 if (sdata->vif.csa_active && ieee80211_mgmt_tx()
3358 (sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_mgmt_tx()
3359 sdata->vif.type == NL80211_IFTYPE_MESH_POINT || ieee80211_mgmt_tx()
3360 sdata->vif.type == NL80211_IFTYPE_ADHOC) && ieee80211_mgmt_tx()
3367 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_mgmt_tx()
3369 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) ieee80211_mgmt_tx()
3371 else if (ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_mgmt_tx()
3490 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_probe_client()
3529 memcpy(nullfunc->addr2, sdata->vif.addr, ETH_ALEN); ieee80211_probe_client()
3530 memcpy(nullfunc->addr3, sdata->vif.addr, ETH_ALEN); ieee80211_probe_client()
3563 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_cfg_get_channel()
3565 *chandef = sdata->vif.bss_conf.chandef; ieee80211_cfg_get_channel()
3569 sdata->vif.type == NL80211_IFTYPE_MONITOR) { ieee80211_cfg_get_channel()
3636 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_add_tx_ts()
H A Dutil.c179 struct ieee80211_vif *vif, ieee80211_generic_frame_duration()
190 if (vif) { ieee80211_generic_frame_duration()
191 sdata = vif_to_sdata(vif); ieee80211_generic_frame_duration()
192 short_preamble = sdata->vif.bss_conf.use_short_preamble; ieee80211_generic_frame_duration()
195 shift = ieee80211_vif_get_shift(vif); ieee80211_generic_frame_duration()
206 struct ieee80211_vif *vif, size_t frame_len, ieee80211_rts_duration()
224 if (vif) { ieee80211_rts_duration()
225 sdata = vif_to_sdata(vif); ieee80211_rts_duration()
226 short_preamble = sdata->vif.bss_conf.use_short_preamble; ieee80211_rts_duration()
229 shift = ieee80211_vif_get_shift(vif); ieee80211_rts_duration()
249 struct ieee80211_vif *vif, ieee80211_ctstoself_duration()
267 if (vif) { ieee80211_ctstoself_duration()
268 sdata = vif_to_sdata(vif); ieee80211_ctstoself_duration()
269 short_preamble = sdata->vif.bss_conf.use_short_preamble; ieee80211_ctstoself_duration()
272 shift = ieee80211_vif_get_shift(vif); ieee80211_ctstoself_duration()
304 if (sdata->vif.cab_queue != IEEE80211_INVAL_HW_QUEUE && ieee80211_propagate_queue_wake()
305 local->queue_stop_reasons[sdata->vif.cab_queue] != 0) ieee80211_propagate_queue_wake()
309 int ac_queue = sdata->vif.hw_queue[ac]; ieee80211_propagate_queue_wake()
317 (sdata->vif.cab_queue == queue && ieee80211_propagate_queue_wake()
411 if (sdata->vif.hw_queue[ac] == queue || __ieee80211_stop_queue()
412 sdata->vif.cab_queue == queue) __ieee80211_stop_queue()
447 if (WARN_ON(!info->control.vif)) { ieee80211_add_pending_skb()
473 if (WARN_ON(!info->control.vif)) { ieee80211_add_pending_skbs()
573 queues |= BIT(sdata->vif.hw_queue[ac]); ieee80211_get_vif_queues()
574 if (sdata->vif.cab_queue != IEEE80211_INVAL_HW_QUEUE) ieee80211_get_vif_queues()
575 queues |= BIT(sdata->vif.cab_queue); ieee80211_get_vif_queues()
636 struct ieee80211_vif *vif), __iterate_interfaces()
643 switch (sdata->vif.type) { __iterate_interfaces()
657 iterator(data, sdata->vif.addr, __iterate_interfaces()
658 &sdata->vif); __iterate_interfaces()
667 iterator(data, sdata->vif.addr, &sdata->vif); __iterate_interfaces()
673 struct ieee80211_vif *vif), ieee80211_iterate_interfaces()
687 struct ieee80211_vif *vif), ieee80211_iterate_active_interfaces_atomic()
702 struct ieee80211_vif *vif), ieee80211_iterate_active_interfaces_rtnl()
749 return &sdata->vif; wdev_to_ieee80211_vif()
753 struct wireless_dev *ieee80211_vif_to_wdev(struct ieee80211_vif *vif) ieee80211_vif_to_wdev() argument
755 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_vif_to_wdev()
1170 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_set_wmm_default()
1181 enable_qos = (sdata->vif.type != NL80211_IFTYPE_STATION); ieee80211_set_wmm_default()
1183 is_ocb = (sdata->vif.type == NL80211_IFTYPE_OCB); ieee80211_set_wmm_default()
1257 if (sdata->vif.type != NL80211_IFTYPE_MONITOR && ieee80211_set_wmm_default()
1258 sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE) { ieee80211_set_wmm_default()
1259 sdata->vif.bss_conf.qos = enable_qos; ieee80211_set_wmm_default()
1290 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_send_auth()
1322 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_send_deauth_disassoc()
1339 if (sdata->vif.type != NL80211_IFTYPE_STATION || ieee80211_send_deauth_disassoc()
1580 chandef.width = sdata->vif.bss_conf.chandef.width; ieee80211_build_probe_req()
1640 rate_flags = ieee80211_chandef_rate_flags(&sdata->vif.bss_conf.chandef); ieee80211_sta_get_rates()
1641 shift = ieee80211_vif_get_shift(&sdata->vif); ieee80211_sta_get_rates()
1742 conf = rcu_dereference_protected(sdata->vif.chanctx_conf, ieee80211_assign_chanctx()
1832 if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN && ieee80211_reconfig()
1833 sdata->vif.type != NL80211_IFTYPE_MONITOR && ieee80211_reconfig()
1847 if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN && ieee80211_reconfig()
1848 sdata->vif.type != NL80211_IFTYPE_MONITOR && ieee80211_reconfig()
1884 if (sta->sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_reconfig()
1897 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN || ieee80211_reconfig()
1898 sdata->vif.type == NL80211_IFTYPE_MONITOR || ieee80211_reconfig()
1933 switch (sdata->vif.type) { ieee80211_reconfig()
1957 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_reconfig()
1966 if (sdata->vif.bss_conf.enable_beacon) { ieee80211_reconfig()
1997 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_reconfig()
2014 if (sta->sdata->vif.type != NL80211_IFTYPE_AP) ieee80211_reconfig()
2121 if (sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_reconfig()
2133 void ieee80211_resume_disconnect(struct ieee80211_vif *vif) ieee80211_resume_disconnect() argument
2139 if (WARN_ON(!vif)) ieee80211_resume_disconnect()
2142 sdata = vif_to_sdata(vif); ieee80211_resume_disconnect()
2148 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION)) ieee80211_resume_disconnect()
2168 chanctx_conf = rcu_dereference_protected(sdata->vif.chanctx_conf, ieee80211_recalc_smps()
2188 chanctx_conf = rcu_dereference_protected(sdata->vif.chanctx_conf, ieee80211_recalc_min_chandef()
2216 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION)) _ieee80211_enable_rssi_reports()
2228 void ieee80211_enable_rssi_reports(struct ieee80211_vif *vif, ieee80211_enable_rssi_reports() argument
2232 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_enable_rssi_reports()
2242 void ieee80211_disable_rssi_reports(struct ieee80211_vif *vif) ieee80211_disable_rssi_reports() argument
2244 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_disable_rssi_reports()
2482 u32 basic_rates = sdata->vif.bss_conf.basic_rates; ieee80211_add_srates_ie()
2485 shift = ieee80211_vif_get_shift(&sdata->vif); ieee80211_add_srates_ie()
2486 rate_flags = ieee80211_chandef_rate_flags(&sdata->vif.bss_conf.chandef); ieee80211_add_srates_ie()
2527 u32 basic_rates = sdata->vif.bss_conf.basic_rates; ieee80211_add_ext_srates_ie()
2530 rate_flags = ieee80211_chandef_rate_flags(&sdata->vif.bss_conf.chandef); ieee80211_add_ext_srates_ie()
2531 shift = ieee80211_vif_get_shift(&sdata->vif); ieee80211_add_ext_srates_ie()
2568 int ieee80211_ave_rssi(struct ieee80211_vif *vif) ieee80211_ave_rssi() argument
2570 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_ave_rssi()
2573 if (WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION)) { ieee80211_ave_rssi()
2696 chandef = sdata->vif.bss_conf.chandef; ieee80211_dfs_cac_cancel()
2841 if (sdata->vif.type != NL80211_IFTYPE_ADHOC && ieee80211_send_action_csa()
2842 sdata->vif.type != NL80211_IFTYPE_MESH_POINT) ieee80211_send_action_csa()
2859 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_send_action_csa()
2860 if (ieee80211_vif_is_mesh(&sdata->vif)) { ieee80211_send_action_csa()
2861 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); ieee80211_send_action_csa()
2889 if (ieee80211_vif_is_mesh(&sdata->vif)) { ieee80211_send_action_csa()
3130 u16 beacon_int = sdata->vif.bss_conf.beacon_int * 1024; ieee80211_recalc_dtim()
3131 u8 dtim_period = sdata->vif.bss_conf.dtim_period; ieee80211_recalc_dtim()
3138 if (sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_recalc_dtim()
3139 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_recalc_dtim()
3144 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { ieee80211_recalc_dtim()
3190 radar_detect |= BIT(sdata->vif.bss_conf.chandef.width); ieee80211_chanctx_radar_detect()
3336 txqi->txq.vif = &sdata->vif; ieee80211_init_tx_queue()
3343 sdata->vif.txq = &txqi->txq; ieee80211_init_tx_queue()
178 ieee80211_generic_frame_duration(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_band band, size_t frame_len, struct ieee80211_rate *rate) ieee80211_generic_frame_duration() argument
205 ieee80211_rts_duration(struct ieee80211_hw *hw, struct ieee80211_vif *vif, size_t frame_len, const struct ieee80211_tx_info *frame_txctl) ieee80211_rts_duration() argument
248 ieee80211_ctstoself_duration(struct ieee80211_hw *hw, struct ieee80211_vif *vif, size_t frame_len, const struct ieee80211_tx_info *frame_txctl) ieee80211_ctstoself_duration() argument
633 __iterate_interfaces(struct ieee80211_local *local, u32 iter_flags, void (*iterator)(void *data, u8 *mac, struct ieee80211_vif *vif), void *data) __iterate_interfaces() argument
670 ieee80211_iterate_interfaces( struct ieee80211_hw *hw, u32 iter_flags, void (*iterator)(void *data, u8 *mac, struct ieee80211_vif *vif), void *data) ieee80211_iterate_interfaces() argument
684 ieee80211_iterate_active_interfaces_atomic( struct ieee80211_hw *hw, u32 iter_flags, void (*iterator)(void *data, u8 *mac, struct ieee80211_vif *vif), void *data) ieee80211_iterate_active_interfaces_atomic() argument
699 ieee80211_iterate_active_interfaces_rtnl( struct ieee80211_hw *hw, u32 iter_flags, void (*iterator)(void *data, u8 *mac, struct ieee80211_vif *vif), void *data) ieee80211_iterate_active_interfaces_rtnl() argument
H A Dht.c56 switch (sdata->vif.type) { ieee80211_apply_htcap_overrides()
157 if (sdata->vif.type == NL80211_IFTYPE_STATION || ieee80211_ht_cap_ie_to_sta_ht_cap()
158 sdata->vif.type == NL80211_IFTYPE_ADHOC) ieee80211_ht_cap_ie_to_sta_ht_cap()
238 switch (sdata->vif.bss_conf.chandef.width) { ieee80211_ht_cap_ie_to_sta_ht_cap()
375 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_send_delba()
376 if (sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_send_delba()
377 sdata->vif.type == NL80211_IFTYPE_AP_VLAN || ieee80211_send_delba()
378 sdata->vif.type == NL80211_IFTYPE_MESH_POINT) ieee80211_send_delba()
379 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); ieee80211_send_delba()
380 else if (sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_send_delba()
382 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) ieee80211_send_delba()
495 void ieee80211_request_smps(struct ieee80211_vif *vif, ieee80211_request_smps() argument
498 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_request_smps()
500 if (WARN_ON_ONCE(vif->type != NL80211_IFTYPE_STATION && ieee80211_request_smps()
501 vif->type != NL80211_IFTYPE_AP)) ieee80211_request_smps()
504 if (vif->type == NL80211_IFTYPE_STATION) { ieee80211_request_smps()
H A Dpm.c76 if (sdata->vif.type != NL80211_IFTYPE_STATION) __ieee80211_suspend()
117 switch (sdata->vif.type) { __ieee80211_suspend()
171 void ieee80211_report_wowlan_wakeup(struct ieee80211_vif *vif, ieee80211_report_wowlan_wakeup() argument
175 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_report_wowlan_wakeup()
H A Dmesh.c91 if (sdata->vif.bss_conf.basic_rates != basic_rates) mesh_matches_local()
94 ieee80211_ht_oper_to_chandef(sdata->vif.bss_conf.chandef.chan, mesh_matches_local()
97 if (!cfg80211_chandef_compatible(&sdata->vif.bss_conf.chandef, mesh_matches_local()
397 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); mesh_add_ds_params_ie()
423 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || mesh_add_ht_cap_ie()
424 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || mesh_add_ht_cap_ie()
425 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) mesh_add_ht_cap_ie()
444 cfg80211_get_chandef_type(&sdata->vif.bss_conf.chandef); mesh_add_ht_oper_ie()
450 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); mesh_add_ht_oper_ie()
468 ieee80211_ie_build_ht_oper(pos, ht_cap, &sdata->vif.bss_conf.chandef, mesh_add_ht_oper_ie()
469 sdata->vif.bss_conf.ht_operation_mode); mesh_add_ht_oper_ie()
626 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_mesh_build_beacon()
665 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_mesh_build_beacon()
666 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); ieee80211_mesh_build_beacon()
669 cpu_to_le16(sdata->vif.bss_conf.beacon_int); ieee80211_mesh_build_beacon()
800 sdata->vif.bss_conf.ht_operation_mode = ieee80211_start_mesh()
802 sdata->vif.bss_conf.enable_beacon = true; ieee80211_start_mesh()
828 sdata->vif.bss_conf.enable_beacon = false; ieee80211_stop_mesh()
871 switch (sdata->vif.bss_conf.chandef.width) { ieee80211_mesh_process_chnswitch()
884 sta_flags, sdata->vif.addr, ieee80211_mesh_process_chnswitch()
898 sdata->vif.addr, ieee80211_mesh_process_chnswitch()
918 &sdata->vif.bss_conf.chandef)) { ieee80211_mesh_process_chnswitch()
972 if ((!ether_addr_equal(mgmt->da, sdata->vif.addr) && ieee80211_mesh_rx_probe_req()
1022 !ether_addr_equal(mgmt->da, sdata->vif.addr)) ieee80211_mesh_rx_bcn_presp()
1056 !sdata->vif.csa_active) ieee80211_mesh_rx_bcn_presp()
1083 sdata->vif.bss_conf.chandef.chan->center_freq); ieee80211_mesh_finish_csa()
1140 memcpy(mgmt_fwd->sa, sdata->vif.addr, ETH_ALEN); mesh_fwd_csa_frame()
1141 memcpy(mgmt_fwd->bssid, sdata->vif.addr, ETH_ALEN); mesh_fwd_csa_frame()
1176 if (!sdata->vif.csa_active && mesh_rx_csa_frame()
1259 if (sdata->vif.bss_conf.enable_beacon && mesh_bss_info_changed()
1337 sdata->vif.bss_conf.bssid = zero_addr; ieee80211_mesh_init_sdata()
H A Dagg-rx.c111 void ieee80211_stop_rx_ba_session(struct ieee80211_vif *vif, u16 ba_rx_bitmap, ieee80211_stop_rx_ba_session() argument
114 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_stop_rx_ba_session()
202 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_send_addba_resp()
203 if (sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_send_addba_resp()
204 sdata->vif.type == NL80211_IFTYPE_AP_VLAN || ieee80211_send_addba_resp()
205 sdata->vif.type == NL80211_IFTYPE_MESH_POINT) ieee80211_send_addba_resp()
206 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); ieee80211_send_addba_resp()
207 else if (sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_send_addba_resp()
209 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) ieee80211_send_addba_resp()
386 void ieee80211_start_rx_ba_session_offl(struct ieee80211_vif *vif, ieee80211_start_rx_ba_session_offl() argument
389 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_start_rx_ba_session_offl()
407 void ieee80211_stop_rx_ba_session_offl(struct ieee80211_vif *vif, ieee80211_stop_rx_ba_session_offl() argument
410 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_stop_rx_ba_session_offl()
H A Dibss.c79 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_ibss_build_presp()
246 if (sdata->vif.bss_conf.ibss_joined) { __ieee80211_sta_join_ibss()
247 sdata->vif.bss_conf.ibss_joined = false; __ieee80211_sta_join_ibss()
248 sdata->vif.bss_conf.ibss_creator = false; __ieee80211_sta_join_ibss()
249 sdata->vif.bss_conf.enable_beacon = false; __ieee80211_sta_join_ibss()
325 sdata->vif.bss_conf.enable_beacon = true; __ieee80211_sta_join_ibss()
326 sdata->vif.bss_conf.beacon_int = beacon_int; __ieee80211_sta_join_ibss()
327 sdata->vif.bss_conf.basic_rates = basic_rates; __ieee80211_sta_join_ibss()
328 sdata->vif.bss_conf.ssid_len = ifibss->ssid_len; __ieee80211_sta_join_ibss()
329 memcpy(sdata->vif.bss_conf.ssid, ifibss->ssid, ifibss->ssid_len); __ieee80211_sta_join_ibss()
350 sdata->vif.bss_conf.use_short_slot = chan->band == IEEE80211_BAND_5GHZ; __ieee80211_sta_join_ibss()
361 sdata->vif.bss_conf.ibss_joined = true; __ieee80211_sta_join_ibss()
362 sdata->vif.bss_conf.ibss_creator = creator; __ieee80211_sta_join_ibss()
366 sdata->vif.bss_conf.ibss_joined = false; __ieee80211_sta_join_ibss()
367 sdata->vif.bss_conf.ibss_creator = false; __ieee80211_sta_join_ibss()
368 sdata->vif.bss_conf.enable_beacon = false; __ieee80211_sta_join_ibss()
369 sdata->vif.bss_conf.ssid_len = 0; __ieee80211_sta_join_ibss()
443 shift = ieee80211_vif_get_shift(&sdata->vif); ieee80211_sta_join_ibss()
516 sdata->vif.bss_conf.beacon_int, ieee80211_ibss_csa_beacon()
517 sdata->vif.bss_conf.basic_rates, ieee80211_ibss_csa_beacon()
636 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); __acquires()
722 sdata->vif.bss_conf.ibss_joined = false; ieee80211_ibss_disconnect()
723 sdata->vif.bss_conf.ibss_creator = false; ieee80211_ibss_disconnect()
724 sdata->vif.bss_conf.enable_beacon = false; ieee80211_ibss_disconnect()
725 sdata->vif.bss_conf.ssid_len = 0; ieee80211_ibss_disconnect()
882 &sdata->vif.bss_conf.chandef)) { ieee80211_ibss_process_chanswitch()
933 if (!sdata->vif.csa_active) ieee80211_rx_mgmt_spectrum_mgmt()
996 if (sdata->vif.type != NL80211_IFTYPE_ADHOC) ieee80211_update_sta_info()
1144 if (sdata->vif.csa_active || ieee80211_rx_bss_info()
1221 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_ibss_rx_no_sta()
1325 bssid[i] ^= sdata->vif.addr[i]; ieee80211_sta_create_ibss()
1337 __ieee80211_sta_join_ibss(sdata, bssid, sdata->vif.bss_conf.beacon_int, ieee80211_sta_create_ibss()
1727 if (sdata->vif.type != NL80211_IFTYPE_ADHOC) ieee80211_ibss_notify_scan_completed()
1787 memcpy(sdata->vif.bss_conf.mcast_rate, params->mcast_rate, ieee80211_ibss_join()
1790 sdata->vif.bss_conf.beacon_int = params->beacon_interval; ieee80211_ibss_join()
1823 sdata->vif.bss_conf.ht_operation_mode |= ieee80211_ibss_join()
H A Dagg-tx.c81 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_send_addba_request()
82 if (sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_send_addba_request()
83 sdata->vif.type == NL80211_IFTYPE_AP_VLAN || ieee80211_send_addba_request()
84 sdata->vif.type == NL80211_IFTYPE_MESH_POINT) ieee80211_send_addba_request()
85 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); ieee80211_send_addba_request()
86 else if (sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_send_addba_request()
88 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) ieee80211_send_addba_request()
113 void ieee80211_send_bar(struct ieee80211_vif *vif, u8 *ra, u16 tid, u16 ssn) ieee80211_send_bar() argument
115 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_send_bar()
131 memcpy(bar->ta, sdata->vif.addr, ETH_ALEN); ieee80211_send_bar()
166 int queue = sdata->vif.hw_queue[ieee80211_ac_from_tid(tid)]; __acquires()
181 int queue = sdata->vif.hw_queue[ieee80211_ac_from_tid(tid)]; __releases()
237 int queue = sdata->vif.hw_queue[ieee80211_ac_from_tid(tid)]; __acquires()
574 if (sdata->vif.type != NL80211_IFTYPE_STATION && ieee80211_start_tx_ba_session()
575 sdata->vif.type != NL80211_IFTYPE_MESH_POINT && ieee80211_start_tx_ba_session()
576 sdata->vif.type != NL80211_IFTYPE_AP_VLAN && ieee80211_start_tx_ba_session()
577 sdata->vif.type != NL80211_IFTYPE_AP && ieee80211_start_tx_ba_session()
578 sdata->vif.type != NL80211_IFTYPE_ADHOC) ieee80211_start_tx_ba_session()
600 if (sta->sdata->vif.type == NL80211_IFTYPE_ADHOC && ieee80211_start_tx_ba_session()
718 void ieee80211_start_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u16 tid) ieee80211_start_tx_ba_cb() argument
720 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_start_tx_ba_cb()
760 void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, ieee80211_start_tx_ba_cb_irqsafe() argument
763 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_start_tx_ba_cb_irqsafe()
837 void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid) ieee80211_stop_tx_ba_cb() argument
839 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_stop_tx_ba_cb()
891 void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, ieee80211_stop_tx_ba_cb_irqsafe() argument
894 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_stop_tx_ba_cb_irqsafe()
H A Dmlme.c118 if (sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER) ieee80211_sta_reset_beacon_monitor()
307 cfg80211_chandef_identical(chandef, &sdata->vif.bss_conf.chandef)) ieee80211_determine_chantype()
375 if (sdata->vif.bss_conf.ht_operation_mode != ht_opmode) { ieee80211_config_bw()
377 sdata->vif.bss_conf.ht_operation_mode = ht_opmode; ieee80211_config_bw()
380 chan = sdata->vif.bss_conf.chandef.chan; ieee80211_config_bw()
405 if (cfg80211_chandef_identical(&chandef, &sdata->vif.bss_conf.chandef)) ieee80211_config_bw()
615 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_send_assoc()
624 shift = ieee80211_vif_get_shift(&sdata->vif); ieee80211_send_assoc()
691 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_send_assoc()
902 skb = ieee80211_pspoll_get(&local->hw, &sdata->vif); ieee80211_send_pspoll()
921 skb = ieee80211_nullfunc_get(&local->hw, &sdata->vif); ieee80211_send_nullfunc()
948 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION)) ieee80211_send_4addr_nullfunc()
963 memcpy(nullfunc->addr2, sdata->vif.addr, ETH_ALEN); ieee80211_send_4addr_nullfunc()
965 memcpy(nullfunc->addr4, sdata->vif.addr, ETH_ALEN); ieee80211_send_4addr_nullfunc()
990 if (!sdata->vif.csa_active) ieee80211_chswitch_work()
995 * with multi-vif. once reservation is complete it will re-schedule the ieee80211_chswitch_work()
1002 * with multi-vif csa driver may call ieee80211_csa_finish() ieee80211_chswitch_work()
1022 if (!cfg80211_chandef_identical(&sdata->vif.bss_conf.chandef, ieee80211_chswitch_work()
1053 WARN_ON(!sdata->vif.csa_active); ieee80211_chswitch_post_beacon()
1061 sdata->vif.csa_active = false; ieee80211_chswitch_post_beacon()
1076 void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success) ieee80211_chswitch_done() argument
1078 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_chswitch_done()
1126 if (sdata->vif.csa_active) ieee80211_sta_process_chanswitch()
1154 &sdata->vif.bss_conf.chandef)) { ieee80211_sta_process_chanswitch()
1166 conf = rcu_dereference_protected(sdata->vif.chanctx_conf, ieee80211_sta_process_chanswitch()
1170 "no channel context assigned to vif?, disconnecting\n"); ieee80211_sta_process_chanswitch()
1205 sdata->vif.csa_active = true; ieee80211_sta_process_chanswitch()
1461 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_recalc_ps()
1462 /* If an AP vif is found, then disable PS ieee80211_recalc_ps()
1469 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_recalc_ps()
1482 found->vif.bss_conf.beacon_int); ieee80211_recalc_ps()
1529 if (sdata->vif.bss_conf.ps != ps_allowed) { ieee80211_recalc_ps_vif()
1530 sdata->vif.bss_conf.ps = ps_allowed; ieee80211_recalc_ps_vif()
1635 struct cfg80211_chan_def chandef = sdata->vif.bss_conf.chandef; ieee80211_dfs_cac_timer_work()
1834 sdata->vif.bss_conf.qos = true; ieee80211_sta_wmm_params()
1856 struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; ieee80211_handle_bss_capability()
1898 struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; ieee80211_set_associated()
1912 if (sdata->vif.p2p) { ieee80211_set_associated()
1957 if (sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI && ieee80211_set_associated()
2009 /* disable per-vif ps */ ieee80211_set_disassoc()
2044 sdata->vif.bss_conf.assoc = false; ieee80211_set_disassoc()
2047 memset(&sdata->vif.bss_conf.p2p_noa_attr, 0, ieee80211_set_disassoc()
2048 sizeof(sdata->vif.bss_conf.p2p_noa_attr)); ieee80211_set_disassoc()
2062 if (sdata->vif.bss_conf.arp_addr_cnt) ieee80211_set_disassoc()
2065 sdata->vif.bss_conf.qos = false; ieee80211_set_disassoc()
2080 sdata->vif.bss_conf.dtim_period = 0; ieee80211_set_disassoc()
2081 sdata->vif.bss_conf.beacon_rate = NULL; ieee80211_set_disassoc()
2089 sdata->vif.csa_active = false; ieee80211_set_disassoc()
2249 ieee80211_send_probe_req(sdata, sdata->vif.addr, dst, ieee80211_mgd_probe_ap_send()
2286 ieee80211_cqm_beacon_loss_notify(&sdata->vif, GFP_KERNEL); ieee80211_mgd_probe_ap()
2321 struct ieee80211_vif *vif) ieee80211_ap_probereq_get()
2323 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_ap_probereq_get()
2330 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION)) ieee80211_ap_probereq_get()
2351 skb = ieee80211_build_probe_req(sdata, sdata->vif.addr, cbss->bssid, ieee80211_ap_probereq_get()
2395 sdata->vif.csa_active = false; __ieee80211_disconnect()
2444 void ieee80211_beacon_loss(struct ieee80211_vif *vif) ieee80211_beacon_loss() argument
2446 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_beacon_loss()
2456 void ieee80211_connection_loss(struct ieee80211_vif *vif) ieee80211_connection_loss() argument
2458 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_connection_loss()
2830 struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; ieee80211_assoc_success()
3180 sdata->vif.bss_conf.beacon_rate = bss->beacon_rate; ieee80211_rx_bss_info()
3199 if (!ether_addr_equal(mgmt->da, sdata->vif.addr)) ieee80211_rx_mgmt_probe_resp()
3255 struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; ieee80211_rx_mgmt_beacon()
3277 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_rx_mgmt_beacon()
3303 sdata->vif.bss_conf.sync_tsf = ieee80211_rx_mgmt_beacon()
3305 sdata->vif.bss_conf.sync_device_ts = ieee80211_rx_mgmt_beacon()
3308 sdata->vif.bss_conf.sync_dtim_count = ieee80211_rx_mgmt_beacon()
3311 sdata->vif.bss_conf.sync_dtim_count = 0; ieee80211_rx_mgmt_beacon()
3369 !(sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI)) { ieee80211_rx_mgmt_beacon()
3378 &sdata->vif, ieee80211_rx_mgmt_beacon()
3385 &sdata->vif, ieee80211_rx_mgmt_beacon()
3436 if (sdata->vif.p2p) { ieee80211_rx_mgmt_beacon()
3477 sdata->vif.bss_conf.sync_tsf = ieee80211_rx_mgmt_beacon()
3479 sdata->vif.bss_conf.sync_device_ts = ieee80211_rx_mgmt_beacon()
3482 sdata->vif.bss_conf.sync_dtim_count = ieee80211_rx_mgmt_beacon()
3485 sdata->vif.bss_conf.sync_dtim_count = 0; ieee80211_rx_mgmt_beacon()
3740 ieee80211_send_probe_req(sdata, sdata->vif.addr, NULL, ieee80211_probe_auth()
3963 if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) ieee80211_sta_bcn_mon_timer()
3978 if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) ieee80211_sta_conn_mon_timer()
3997 if (sdata->vif.type == NL80211_IFTYPE_STATION) { ieee80211_restart_sta_timer()
4358 int shift = ieee80211_vif_get_shift(&sdata->vif); ieee80211_prep_connection()
4362 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_prep_connection()
4393 sdata->vif.bss_conf.basic_rates = basic_rates; ieee80211_prep_connection()
4405 sdata->vif.bss_conf.beacon_int = cbss->beacon_interval; ieee80211_prep_connection()
4411 sdata->vif.bss_conf.sync_tsf = ies->tsf; ieee80211_prep_connection()
4412 sdata->vif.bss_conf.sync_device_ts = ieee80211_prep_connection()
4417 sdata->vif.bss_conf.sync_dtim_count = tim_ie[2]; ieee80211_prep_connection()
4419 sdata->vif.bss_conf.sync_dtim_count = 0; ieee80211_prep_connection()
4424 sdata->vif.bss_conf.sync_tsf = ies->tsf; ieee80211_prep_connection()
4425 sdata->vif.bss_conf.sync_device_ts = ieee80211_prep_connection()
4427 sdata->vif.bss_conf.sync_dtim_count = 0; ieee80211_prep_connection()
4429 sdata->vif.bss_conf.sync_tsf = 0; ieee80211_prep_connection()
4430 sdata->vif.bss_conf.sync_device_ts = 0; ieee80211_prep_connection()
4431 sdata->vif.bss_conf.sync_dtim_count = 0; ieee80211_prep_connection()
4802 if (WARN((sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_UAPSD) && ieee80211_mgd_assoc()
4805 sdata->vif.driver_flags &= ~IEEE80211_VIF_SUPPORTS_UAPSD; ieee80211_mgd_assoc()
4808 (sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_UAPSD)) { ieee80211_mgd_assoc()
4840 sdata->vif.type); ieee80211_mgd_assoc()
4883 sdata->vif.bss_conf.sync_tsf = beacon_ies->tsf; ieee80211_mgd_assoc()
4884 sdata->vif.bss_conf.sync_device_ts = ieee80211_mgd_assoc()
4886 sdata->vif.bss_conf.sync_dtim_count = dtim_count; ieee80211_mgd_assoc()
5050 void ieee80211_cqm_rssi_notify(struct ieee80211_vif *vif, ieee80211_cqm_rssi_notify() argument
5054 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_cqm_rssi_notify()
5062 void ieee80211_cqm_beacon_loss_notify(struct ieee80211_vif *vif, gfp_t gfp) ieee80211_cqm_beacon_loss_notify() argument
5064 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_cqm_beacon_loss_notify()
2320 ieee80211_ap_probereq_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ieee80211_ap_probereq_get() argument
H A Dsta_info.c95 if (sta->sdata->vif.type == NL80211_IFTYPE_AP || __cleanup_single_sta()
96 sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) __cleanup_single_sta()
98 else if (ieee80211_vif_is_mesh(&sdata->vif)) __cleanup_single_sta()
126 if (ieee80211_vif_is_mesh(&sdata->vif)) __cleanup_single_sta()
315 if (ieee80211_vif_is_mesh(&sdata->vif) && sta_info_alloc()
373 if (sdata->vif.type == NL80211_IFTYPE_AP || sta_info_alloc()
374 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { sta_info_alloc()
422 if (WARN_ON(ether_addr_equal(sta->sta.addr, sdata->vif.addr) || sta_info_insert_check()
452 if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { sta_info_insert_drv_state()
524 if (ieee80211_vif_is_mesh(&sdata->vif)) __acquires()
629 if (sta->sdata->vif.type == NL80211_IFTYPE_AP || __sta_info_recalc_tim()
630 sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { __sta_info_recalc_tim()
637 } else if (ieee80211_vif_is_mesh(&sta->sdata->vif)) { __sta_info_recalc_tim()
722 sta->sdata->vif.bss_conf.beacon_int * sta_info_buffer_expired()
816 !ieee80211_vif_is_mesh(&sta->sdata->vif)) sta_info_cleanup_expire_buffered()
868 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN && __sta_info_destroy_part1()
1028 WARN_ON(vlans && sdata->vif.type != NL80211_IFTYPE_AP); __sta_info_flush()
1067 if (ieee80211_vif_is_mesh(&sdata->vif) && ieee80211_sta_expire()
1095 !ether_addr_equal(sta->sdata->vif.addr, localaddr)) for_each_sta_info()
1106 struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *vif, ieee80211_find_sta() argument
1111 if (!vif) ieee80211_find_sta()
1114 sta = sta_info_get_bss(vif_to_sdata(vif), addr); ieee80211_find_sta()
1135 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) ieee80211_sta_ps_deliver_wakeup()
1139 if (sdata->vif.type == NL80211_IFTYPE_AP) ieee80211_sta_ps_deliver_wakeup()
1141 else if (ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_sta_ps_deliver_wakeup()
1203 if (!ieee80211_vif_is_mesh(&sdata->vif) && ieee80211_sta_ps_deliver_wakeup()
1213 sdata->vif.bss_conf.bssid); ieee80211_sta_ps_deliver_wakeup()
1260 memcpy(nullfunc->addr2, sdata->vif.addr, ETH_ALEN); ieee80211_send_null_response()
1261 memcpy(nullfunc->addr3, sdata->vif.addr, ETH_ALEN); ieee80211_send_null_response()
1295 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_send_null_response()
1737 if (sta->sdata->vif.type == NL80211_IFTYPE_AP || sta_info_move_state()
1738 (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sta_info_move_state()
1746 if (sta->sdata->vif.type == NL80211_IFTYPE_AP || sta_info_move_state()
1747 (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sta_info_move_state()
1815 if (sdata->vif.type == NL80211_IFTYPE_STATION) sta_set_sinfo()
1870 if (sdata->vif.type == NL80211_IFTYPE_STATION && sta_set_sinfo()
1871 !(sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER)) { sta_set_sinfo()
1874 sinfo->rx_beacon_signal_avg = ieee80211_ave_rssi(&sdata->vif); sta_set_sinfo()
1945 if (ieee80211_vif_is_mesh(&sdata->vif)) { sta_set_sinfo()
1968 if (sdata->vif.bss_conf.use_cts_prot) sta_set_sinfo()
1970 if (sdata->vif.bss_conf.use_short_preamble) sta_set_sinfo()
1972 if (sdata->vif.bss_conf.use_short_slot) sta_set_sinfo()
1974 sinfo->bss_param.dtim_period = sdata->vif.bss_conf.dtim_period; sta_set_sinfo()
1975 sinfo->bss_param.beacon_interval = sdata->vif.bss_conf.beacon_int; sta_set_sinfo()
H A Drx.c514 if (sdata->vif.type != NL80211_IFTYPE_MONITOR) ieee80211_rx_monitor()
698 char *dev_addr = rx->sdata->vif.addr; ieee80211_rx_mesh_check()
1108 if (ieee80211_vif_is_mesh(&rx->sdata->vif)) ieee80211_rx_h_check()
1113 rx->sdata->vif.type != NL80211_IFTYPE_ADHOC && ieee80211_rx_h_check()
1114 rx->sdata->vif.type != NL80211_IFTYPE_WDS && ieee80211_rx_h_check()
1115 rx->sdata->vif.type != NL80211_IFTYPE_OCB && ieee80211_rx_h_check()
1122 if (rx->sta && rx->sdata->vif.type == NL80211_IFTYPE_STATION && ieee80211_rx_h_check()
1137 if (rx->sdata->vif.type == NL80211_IFTYPE_AP && ieee80211_rx_h_check()
1190 if (sta->sdata->vif.type == NL80211_IFTYPE_AP || sta_ps_start()
1191 sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sta_ps_start()
1271 if (sdata->vif.type != NL80211_IFTYPE_AP && ieee80211_rx_h_uapsd_and_pspoll()
1272 sdata->vif.type != NL80211_IFTYPE_AP_VLAN) ieee80211_rx_h_uapsd_and_pspoll()
1355 if (rx->sdata->vif.type == NL80211_IFTYPE_ADHOC) { ieee80211_rx_h_sta_process()
1369 } else if (rx->sdata->vif.type == NL80211_IFTYPE_OCB) { ieee80211_rx_h_sta_process()
1392 if (rx->sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_rx_h_sta_process()
1422 (rx->sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_rx_h_sta_process()
1423 rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && ieee80211_rx_h_sta_process()
1440 if (ieee80211_vif_is_mesh(&rx->sdata->vif)) ieee80211_rx_h_sta_process()
1458 (rx->sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_rx_h_sta_process()
1459 (rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && ieee80211_rx_h_sta_process()
2010 sdata->vif.type == NL80211_IFTYPE_AP_VLAN && !sdata->u.vlan.sta) __ieee80211_data_to_8023()
2013 if (sdata->vif.type == NL80211_IFTYPE_STATION && __ieee80211_data_to_8023()
2023 sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata->u.vlan.sta) __ieee80211_data_to_8023()
2026 ret = ieee80211_data_to_8023(rx->skb, sdata->vif.addr, sdata->vif.type); __ieee80211_data_to_8023()
2053 (ether_addr_equal(ehdr->h_dest, rx->sdata->vif.addr) || ieee80211_frame_allowed()
2083 if ((sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_deliver_skb()
2084 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && ieee80211_deliver_skb()
2087 (sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->u.vlan.sta)) { ieee80211_deliver_skb()
2183 rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && ieee80211_rx_h_amsdu()
2188 ((rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && ieee80211_rx_h_amsdu()
2190 (rx->sdata->vif.type == NL80211_IFTYPE_STATION && ieee80211_rx_h_amsdu()
2201 rx->sdata->vif.type, ieee80211_rx_h_amsdu()
2297 ether_addr_equal(sdata->vif.addr, hdr->addr3)) ieee80211_rx_h_mesh_fwding()
2327 info->control.vif = &rx->sdata->vif; ieee80211_rx_h_mesh_fwding()
2331 memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN); ieee80211_rx_h_mesh_fwding()
2390 sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_rx_h_data()
2426 if (rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && ieee80211_rx_h_data()
2513 if (!ether_addr_equal(mgmt->da, sdata->vif.addr)) { ieee80211_process_sa_query_req()
2537 memcpy(resp->sa, sdata->vif.addr, ETH_ALEN); ieee80211_process_sa_query_req()
2568 if (rx->sdata->vif.type == NL80211_IFTYPE_AP && ieee80211_rx_h_mgmt_check()
2621 if (sdata->vif.type != NL80211_IFTYPE_STATION && ieee80211_rx_h_action()
2622 sdata->vif.type != NL80211_IFTYPE_MESH_POINT && ieee80211_rx_h_action()
2623 sdata->vif.type != NL80211_IFTYPE_AP_VLAN && ieee80211_rx_h_action()
2624 sdata->vif.type != NL80211_IFTYPE_AP && ieee80211_rx_h_action()
2625 sdata->vif.type != NL80211_IFTYPE_ADHOC) ieee80211_rx_h_action()
2700 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_rx_h_action()
2714 if (sdata->vif.type != NL80211_IFTYPE_STATION && ieee80211_rx_h_action()
2715 sdata->vif.type != NL80211_IFTYPE_MESH_POINT && ieee80211_rx_h_action()
2716 sdata->vif.type != NL80211_IFTYPE_AP_VLAN && ieee80211_rx_h_action()
2717 sdata->vif.type != NL80211_IFTYPE_AP && ieee80211_rx_h_action()
2718 sdata->vif.type != NL80211_IFTYPE_ADHOC) ieee80211_rx_h_action()
2745 if (sdata->vif.type != NL80211_IFTYPE_STATION && ieee80211_rx_h_action()
2746 sdata->vif.type != NL80211_IFTYPE_MESH_POINT && ieee80211_rx_h_action()
2747 sdata->vif.type != NL80211_IFTYPE_AP_VLAN && ieee80211_rx_h_action()
2748 sdata->vif.type != NL80211_IFTYPE_AP && ieee80211_rx_h_action()
2749 sdata->vif.type != NL80211_IFTYPE_ADHOC) ieee80211_rx_h_action()
2791 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_rx_h_action()
2802 if (sdata->vif.type != NL80211_IFTYPE_STATION && ieee80211_rx_h_action()
2803 sdata->vif.type != NL80211_IFTYPE_ADHOC && ieee80211_rx_h_action()
2804 sdata->vif.type != NL80211_IFTYPE_MESH_POINT) ieee80211_rx_h_action()
2807 if (sdata->vif.type == NL80211_IFTYPE_STATION) ieee80211_rx_h_action()
2809 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) ieee80211_rx_h_action()
2811 else if (sdata->vif.type == NL80211_IFTYPE_MESH_POINT) ieee80211_rx_h_action()
2830 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_rx_h_action()
2845 if (!ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_rx_h_action()
2853 if (!ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_rx_h_action()
2863 if (!ieee80211_vif_is_mesh(&sdata->vif)) ieee80211_rx_h_action()
2947 (sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_rx_h_action_return()
2948 sdata->vif.type == NL80211_IFTYPE_AP_VLAN)) ieee80211_rx_h_action_return()
2965 memcpy(nmgmt->sa, rx->sdata->vif.addr, ETH_ALEN); ieee80211_rx_h_action_return()
2969 if (rx->sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE) { ieee80211_rx_h_action_return()
2996 if (!ieee80211_vif_is_mesh(&sdata->vif) && ieee80211_rx_h_mgmt()
2997 sdata->vif.type != NL80211_IFTYPE_ADHOC && ieee80211_rx_h_mgmt()
2998 sdata->vif.type != NL80211_IFTYPE_OCB && ieee80211_rx_h_mgmt()
2999 sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_rx_h_mgmt()
3017 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_rx_h_mgmt()
3022 if (sdata->vif.type != NL80211_IFTYPE_ADHOC && ieee80211_rx_h_mgmt()
3023 sdata->vif.type != NL80211_IFTYPE_MESH_POINT) ieee80211_rx_h_mgmt()
3085 if (sdata->vif.type != NL80211_IFTYPE_MONITOR || ieee80211_rx_cooked_monitor()
3185 if (ieee80211_vif_is_mesh(&rx->sdata->vif)) ieee80211_rx_handlers()
3278 u8 *bssid = ieee80211_get_bssid(hdr, skb->len, sdata->vif.type); prepare_for_handlers()
3281 switch (sdata->vif.type) { prepare_for_handlers()
3286 !ether_addr_equal(sdata->vif.addr, hdr->addr1)) { prepare_for_handlers()
3296 if (ether_addr_equal(sdata->vif.addr, hdr->addr2) || prepare_for_handlers()
3304 !ether_addr_equal(sdata->vif.addr, hdr->addr1)) { prepare_for_handlers()
3347 !ether_addr_equal(sdata->vif.addr, hdr->addr1)) { prepare_for_handlers()
3357 if (!ether_addr_equal(sdata->vif.addr, hdr->addr1)) prepare_for_handlers()
3359 } else if (!ieee80211_bssid_match(bssid, sdata->vif.addr)) { prepare_for_handlers()
3367 !ether_addr_equal(sdata->vif.addr, hdr->addr1)) prepare_for_handlers()
3397 if (!ether_addr_equal(sdata->vif.addr, hdr->addr1) && prepare_for_handlers()
3531 if (sdata->vif.type == NL80211_IFTYPE_MONITOR || __ieee80211_rx_handle_packet()
3532 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) __ieee80211_rx_handle_packet()
H A Doffchannel.c131 if (sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE) ieee80211_offchannel_stop_vifs()
134 if (sdata->vif.type != NL80211_IFTYPE_MONITOR) ieee80211_offchannel_stop_vifs()
138 if (sdata->vif.bss_conf.enable_beacon) { ieee80211_offchannel_stop_vifs()
141 sdata->vif.bss_conf.enable_beacon = false; ieee80211_offchannel_stop_vifs()
146 if (sdata->vif.type == NL80211_IFTYPE_STATION && ieee80211_offchannel_stop_vifs()
162 if (sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE) ieee80211_offchannel_return()
165 if (sdata->vif.type != NL80211_IFTYPE_MONITOR) ieee80211_offchannel_return()
172 if (sdata->vif.type == NL80211_IFTYPE_STATION && ieee80211_offchannel_return()
178 sdata->vif.bss_conf.enable_beacon = true; ieee80211_offchannel_return()
H A Dkey.c66 if (sdata->vif.type != NL80211_IFTYPE_AP) update_vlan_tailroom_need_count()
164 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_key_enable_hw_accel()
680 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_enable_keys()
702 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_reset_crypto_tx_tailroom()
711 struct ieee80211_vif *vif, ieee80211_iter_keys()
713 struct ieee80211_vif *vif, ieee80211_iter_keys()
726 if (vif) { ieee80211_iter_keys()
727 sdata = vif_to_sdata(vif); ieee80211_iter_keys()
729 iter(hw, &sdata->vif, ieee80211_iter_keys()
736 iter(hw, &sdata->vif, ieee80211_iter_keys()
780 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_free_keys()
790 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_free_keys()
804 if (sdata->vif.type == NL80211_IFTYPE_AP) { ieee80211_free_keys()
873 void ieee80211_gtk_rekey_notify(struct ieee80211_vif *vif, const u8 *bssid, ieee80211_gtk_rekey_notify() argument
876 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_gtk_rekey_notify()
1140 ieee80211_gtk_rekey_add(struct ieee80211_vif *vif, ieee80211_gtk_rekey_add() argument
1143 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_gtk_rekey_add()
1151 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION)) ieee80211_gtk_rekey_add()
710 ieee80211_iter_keys(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void (*iter)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key, void *data), void *iter_data) ieee80211_iter_keys() argument
H A Dmesh_hwmp.c131 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); mesh_path_sel_frame_tx()
133 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); mesh_path_sel_frame_tx()
219 info->control.vif = &sdata->vif; prepare_frame_for_deferred_tx()
268 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); mesh_path_error_tx()
270 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); mesh_path_error_tx()
424 if (ether_addr_equal(orig_addr, sdata->vif.addr)) { hwmp_route_info_get()
538 if (ether_addr_equal(target_addr, sdata->vif.addr)) { hwmp_preq_frame_process()
557 target_addr = sdata->vif.addr; hwmp_preq_frame_process()
661 if (ether_addr_equal(orig_addr, sdata->vif.addr)) hwmp_prep_frame_process()
780 if (ether_addr_equal(orig_addr, sdata->vif.addr)) hwmp_rann_frame_process()
1043 mesh_path_sel_frame_tx(MPATH_PREQ, 0, sdata->vif.addr, ifmsh->sn, mesh_path_start_discovery()
1141 ether_addr_equal(sdata->vif.addr, hdr->addr4) && mesh_nexthop_lookup()
1149 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); mesh_nexthop_lookup()
1203 mesh_path_sel_frame_tx(MPATH_RANN, flags, sdata->vif.addr, mesh_path_tx_root_frame()
1214 mesh_path_sel_frame_tx(MPATH_PREQ, flags, sdata->vif.addr, mesh_path_tx_root_frame()
H A Drate.c282 if (ieee80211_vif_is_mesh(&sta->sdata->vif)) rate_control_send_low()
431 static void rate_fixup_ratelist(struct ieee80211_vif *vif, rate_fixup_ratelist() argument
451 u32 basic_rates = vif->bss_conf.basic_rates; rate_fixup_ratelist()
594 ieee80211_chandef_rate_flags(&sdata->vif.bss_conf.chandef); rate_control_apply_mask()
620 chan_width = sdata->vif.bss_conf.chandef.width; rate_control_apply_mask()
631 void ieee80211_get_tx_rates(struct ieee80211_vif *vif, ieee80211_get_tx_rates() argument
644 if (!vif) ieee80211_get_tx_rates()
647 sdata = vif_to_sdata(vif); ieee80211_get_tx_rates()
658 rate_fixup_ratelist(vif, sband, info, dest, max_rates); ieee80211_get_tx_rates()
691 ieee80211_get_tx_rates(&sdata->vif, ista, txrc->skb, rate_control_get_rate()
H A Ddebugfs_key.c353 if (!sdata->vif.debugfs_dir) ieee80211_debugfs_key_update_default()
367 sdata->vif.debugfs_dir, buf); ieee80211_debugfs_key_update_default()
379 sdata->vif.debugfs_dir, buf); ieee80211_debugfs_key_update_default()
388 if (!sdata->vif.debugfs_dir) ieee80211_debugfs_key_add_mgmt_default()
397 sdata->vif.debugfs_dir, buf); ieee80211_debugfs_key_add_mgmt_default()
H A Dstatus.c65 info->control.vif = &sta->sdata->vif; ieee80211_handle_filtered_frame()
175 ieee80211_send_bar(&sta->sdata->vif, addr, tid, tid_tx->failed_bar_ssn); ieee80211_check_pending_bar()
214 if (sdata->vif.type == NL80211_IFTYPE_STATION) { ieee80211_frame_acked()
224 } else if (sdata->vif.type == NL80211_IFTYPE_AP || ieee80211_frame_acked()
225 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { ieee80211_frame_acked()
680 if (!ether_addr_equal(hdr->addr2, sta->sdata->vif.addr)) ieee80211_tx_status()
683 shift = ieee80211_vif_get_shift(&sta->sdata->vif); ieee80211_tx_status()
700 if (ieee80211_vif_is_mesh(&sta->sdata->vif) && ieee80211_tx_status()
720 ieee80211_send_bar(&sta->sdata->vif, hdr->addr1, ieee80211_tx_status()
766 if (ieee80211_vif_is_mesh(&sta->sdata->vif)) ieee80211_tx_status()
772 if ((sta->sdata->vif.type == NL80211_IFTYPE_STATION) && ieee80211_tx_status()
876 if (sdata->vif.type == NL80211_IFTYPE_MONITOR) { ieee80211_tx_status()
H A Dethtool.c105 if (sdata->vif.type == NL80211_IFTYPE_STATION) { ieee80211_get_stats()
151 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); ieee80211_get_stats()
H A Drate.h86 chanctx_conf = rcu_dereference(sta->sdata->vif.chanctx_conf); rate_control_rate_init()
112 chanctx_conf = rcu_dereference(sta->sdata->vif.chanctx_conf); rate_control_rate_update()
H A Dspectmgmt.c119 switch (sdata->vif.bss_conf.chandef.width) { ieee80211_parse_ch_switch_ie()
123 sdata->vif.bss_conf.chandef.width; ieee80211_parse_ch_switch_ie()
203 memcpy(msr_report->sa, sdata->vif.addr, ETH_ALEN); ieee80211_send_refuse_measurement_request()
H A Dvht.c36 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_apply_vhtcap_overrides()
148 if (sdata->vif.type == NL80211_IFTYPE_STATION && ieee80211_vht_cap_ie_to_sta_vht_cap()
312 bw = ieee80211_chan_width_to_rx_bw(sdata->vif.bss_conf.chandef.width); ieee80211_sta_cur_vht_bw()
H A Dtdls.c145 if (!ieee80211_chandef_to_operating_class(&sdata->vif.bss_conf.chandef, ieee80211_tdls_add_oper_classes()
197 init_addr = sdata->vif.addr; ieee80211_tdls_add_link_ie()
201 rsp_addr = sdata->vif.addr; ieee80211_tdls_add_link_ie()
531 rcu_dereference(sdata->vif.chanctx_conf); ieee80211_tdls_add_setup_cfm_ies()
547 rcu_dereference(sdata->vif.chanctx_conf); ieee80211_tdls_add_setup_cfm_ies()
681 memcpy(tf->sa, sdata->vif.addr, ETH_ALEN); ieee80211_prep_tdls_encap_data()
763 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); ieee80211_prep_tdls_direct()
1119 if (sdata->vif.type != NL80211_IFTYPE_STATION || ieee80211_tdls_mgmt()
1178 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_tdls_oper()
1243 void ieee80211_tdls_oper_request(struct ieee80211_vif *vif, const u8 *peer, ieee80211_tdls_oper_request() argument
1247 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); ieee80211_tdls_oper_request()
1249 if (vif->type != NL80211_IFTYPE_STATION || !vif->bss_conf.assoc) { ieee80211_tdls_oper_request()
1535 !memcmp(elems.lnk_id->init_sta, sdata->vif.addr, ETH_ALEN); ieee80211_process_tdls_channel_switch_resp()
1655 !memcmp(elems.lnk_id->init_sta, sdata->vif.addr, ETH_ALEN); ieee80211_process_tdls_channel_switch_req()
H A Dmain.c150 if (!rcu_access_pointer(sdata->vif.chanctx_conf)) ieee80211_hw_conf_chan()
152 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) ieee80211_hw_conf_chan()
154 power = min(power, sdata->vif.bss_conf.txpower); ieee80211_hw_conf_chan()
205 if (!changed || sdata->vif.type == NL80211_IFTYPE_AP_VLAN) ieee80211_bss_info_change_notify()
208 drv_bss_info_changed(local, sdata, &sdata->vif.bss_conf, changed); ieee80211_bss_info_change_notify()
213 sdata->vif.bss_conf.use_cts_prot = false; ieee80211_reset_erp_info()
214 sdata->vif.bss_conf.use_short_preamble = false; ieee80211_reset_erp_info()
215 sdata->vif.bss_conf.use_short_slot = false; ieee80211_reset_erp_info()
317 bss_conf = &sdata->vif.bss_conf; ieee80211_ifa_changed()
320 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_ifa_changed()
374 if (sdata->vif.type != NL80211_IFTYPE_STATION) ieee80211_ifa6_changed()
H A Dtrace.h26 #define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
27 __entry->p2p = sdata->vif.p2p; \
29 #define VIF_PR_FMT " vif:%s(%d%s)"
104 memcpy(__entry->addr, sdata->vif.addr, ETH_ALEN);
1428 struct trace_vif_entry vif; member in struct:trace_switch_entry
1462 sdata = container_of(vifs[i].vif,
1464 vif);
1466 SWITCH_ENTRY_ASSIGN(vif.vif_type, vif->type);
1467 SWITCH_ENTRY_ASSIGN(vif.p2p, vif->p2p);
1468 strncpy(local_vifs[i].vif.vif_name,
1470 sizeof(local_vifs[i].vif.vif_name));
H A Dmesh_plink.c135 if (sdata->vif.bss_conf.use_short_slot != short_slot) { mesh_set_short_slot_time()
136 sdata->vif.bss_conf.use_short_slot = short_slot; mesh_set_short_slot_time()
139 sdata->vif.addr, short_slot); mesh_set_short_slot_time()
161 switch (sdata->vif.bss_conf.chandef.width) { mesh_set_ht_prot_mode()
194 sdata->vif.bss_conf.chandef.width > NL80211_CHAN_WIDTH_20) mesh_set_ht_prot_mode()
199 if (sdata->vif.bss_conf.ht_operation_mode == ht_opmode) mesh_set_ht_prot_mode()
202 sdata->vif.bss_conf.ht_operation_mode = ht_opmode; mesh_set_ht_prot_mode()
294 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); mesh_plink_frame_tx()
295 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); mesh_plink_frame_tx()
H A Dmesh_sync.c53 /* sdata->vif.bss_conf.beacon_int in 1024us units, 0.04% */ mesh_sync_adjust_tbtt()
54 u64 beacon_int_fraction = sdata->vif.bss_conf.beacon_int * 1024 / 2500; mesh_sync_adjust_tbtt()
H A Dwme.c161 switch (sdata->vif.type) { ieee80211_select_queue()
259 if (ieee80211_vif_is_mesh(&sdata->vif)) { ieee80211_set_qos_hdr()
H A Dmesh_ps.c36 sdata->vif.addr); mps_qos_null_get()
437 info->control.vif = &sdata->vif; mpsp_qos_null_append()
H A Dtkip.c171 tkip_mixing_phase1(tk, ctx, sdata->vif.addr, iv32); ieee80211_compute_tkip_p1k()
290 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) ieee80211_tkip_decrypt_data()
H A Dscan.c197 (ether_addr_equal(mgmt->da, sdata1->vif.addr) || ieee80211_scan_rx()
200 (ether_addr_equal(mgmt->da, sdata2->vif.addr) || ieee80211_scan_rx()
451 if (sdata->vif.type == NL80211_IFTYPE_STATION && ieee80211_can_scan()
581 memcpy(local->scan_addr, sdata->vif.addr, ETH_ALEN); __ieee80211_start_scan()
680 if (sdata->vif.type == NL80211_IFTYPE_STATION) { ieee80211_scan_state_decision()
/linux-4.1.27/drivers/net/wireless/ti/wlcore/
H A Devent.c35 struct ieee80211_vif *vif; wlcore_event_rssi_trigger() local
48 vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_for_each_wlvif_sta()
50 ieee80211_cqm_rssi_notify(vif, event, GFP_KERNEL); wl12xx_for_each_wlvif_sta()
58 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl1271_stop_ba_event() local
64 ieee80211_stop_rx_ba_session(vif, wl->links[hlid].ba_bitmap, wl1271_stop_ba_event()
65 vif->bss_conf.bssid); wl1271_stop_ba_event()
75 ieee80211_stop_rx_ba_session(vif, wl1271_stop_ba_event()
137 struct ieee80211_vif *vif; wlcore_event_channel_switch() local
151 vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_for_each_wlvif()
154 ieee80211_chswitch_done(vif, success); wl12xx_for_each_wlvif()
158 ieee80211_csa_finish(vif); wl12xx_for_each_wlvif()
180 struct ieee80211_vif *vif; wlcore_disconnect_sta() local
187 /* find the ap vif connected to this sta */ wl12xx_for_each_wlvif_ap()
197 vif = wl12xx_wlvif_to_vif(wlvif);
201 sta = ieee80211_find_sta(vif, addr);
239 struct ieee80211_vif *vif; wlcore_event_beacon_loss() local
250 vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_for_each_wlvif_sta()
254 ieee80211_connection_loss(vif); wl12xx_for_each_wlvif_sta()
267 ieee80211_cqm_beacon_loss_notify(vif, GFP_KERNEL); wl12xx_for_each_wlvif_sta()
H A Dinit.c185 struct ieee80211_vif *vif) wl1271_ap_init_null_template()
187 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_ap_init_null_template()
204 memcpy(nullfunc->addr2, vif->addr, ETH_ALEN); wl1271_ap_init_null_template()
205 memcpy(nullfunc->addr3, vif->addr, ETH_ALEN); wl1271_ap_init_null_template()
218 struct ieee80211_vif *vif) wl1271_ap_init_qos_null_template()
220 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_ap_init_qos_null_template()
237 memcpy(qosnull->addr2, vif->addr, ETH_ALEN); wl1271_ap_init_qos_null_template()
238 memcpy(qosnull->addr3, vif->addr, ETH_ALEN); wl1271_ap_init_qos_null_template()
350 /* generic sta initialization (non vif-specific) */ wl1271_sta_hw_init()
373 struct ieee80211_vif *vif) wl1271_sta_hw_init_post_mem()
375 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_sta_hw_init_post_mem()
386 /* generic ap initialization (non vif-specific) */ wl1271_ap_hw_init()
403 int wl1271_ap_init_templates(struct wl1271 *wl, struct ieee80211_vif *vif) wl1271_ap_init_templates() argument
405 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_ap_init_templates()
412 ret = wl1271_ap_init_null_template(wl, vif); wl1271_ap_init_templates()
416 ret = wl1271_ap_init_qos_null_template(wl, vif); wl1271_ap_init_templates()
432 struct ieee80211_vif *vif) wl1271_ap_hw_init_post_mem()
434 return wl1271_ap_init_templates(wl, vif); wl1271_ap_hw_init_post_mem()
515 /* vif-specifc initialization */ wl12xx_init_sta_role()
547 /* vif-specific intialization */ wl12xx_init_ap_role()
564 int wl1271_init_vif_specific(struct wl1271 *wl, struct ieee80211_vif *vif) wl1271_init_vif_specific() argument
566 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_init_vif_specific()
649 ret = wl1271_ap_hw_init_post_mem(wl, vif); wl1271_init_vif_specific()
651 ret = wl1271_sta_hw_init_post_mem(wl, vif); wl1271_init_vif_specific()
184 wl1271_ap_init_null_template(struct wl1271 *wl, struct ieee80211_vif *vif) wl1271_ap_init_null_template() argument
217 wl1271_ap_init_qos_null_template(struct wl1271 *wl, struct ieee80211_vif *vif) wl1271_ap_init_qos_null_template() argument
372 wl1271_sta_hw_init_post_mem(struct wl1271 *wl, struct ieee80211_vif *vif) wl1271_sta_hw_init_post_mem() argument
431 wl1271_ap_hw_init_post_mem(struct wl1271 *wl, struct ieee80211_vif *vif) wl1271_ap_hw_init_post_mem() argument
H A Dinit.h35 int wl1271_init_vif_specific(struct wl1271 *wl, struct ieee80211_vif *vif);
37 int wl1271_ap_init_templates(struct wl1271 *wl, struct ieee80211_vif *vif);
H A Dmain.c53 struct ieee80211_vif *vif,
713 struct ieee80211_vif *vif) wl12xx_vif_count_iter()
718 if (counter->cur_vif == vif) wl12xx_vif_count_iter()
940 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wlcore_save_freed_pkts_addr() local
947 sta = ieee80211_find_sta(vif, addr); wlcore_save_freed_pkts_addr()
987 struct ieee80211_vif *vif; wl1271_recovery_work() local
1015 vif = wl12xx_wlvif_to_vif(wlvif); wl1271_recovery_work()
1020 vif->bss_conf.bssid); wl1271_recovery_work()
1023 __wl1271_op_remove_interface(wl, vif, false); wl1271_recovery_work()
1258 struct ieee80211_vif *vif = info->control.vif; wl1271_op_tx() local
1264 if (!vif) { wl1271_op_tx()
1265 wl1271_debug(DEBUG_TX, "DROP skb with no vif"); wl1271_op_tx()
1270 wlvif = wl12xx_vif_to_data(vif); wl1271_op_tx()
2078 struct ieee80211_vif *vif; wlcore_channel_switch_work() local
2097 vif = wl12xx_wlvif_to_vif(wlvif); wlcore_channel_switch_work()
2098 ieee80211_chswitch_done(vif, false); wlcore_channel_switch_work()
2115 struct ieee80211_vif *vif; wlcore_connection_loss_work() local
2133 vif = wl12xx_wlvif_to_vif(wlvif); wlcore_connection_loss_work()
2134 ieee80211_connection_loss(vif); wlcore_connection_loss_work()
2246 static int wl12xx_init_vif_data(struct wl1271 *wl, struct ieee80211_vif *vif) wl12xx_init_vif_data() argument
2248 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl12xx_init_vif_data()
2254 switch (ieee80211_vif_type_p2p(vif)) { wl12xx_init_vif_data()
2432 /* increase the vif count if this is a new vif */ wl12xx_need_fw_change()
2469 /* current vif */
2470 struct ieee80211_vif *vif; member in struct:wlcore_hw_queue_iter_data
2471 /* is the current vif among those iterated */
2476 struct ieee80211_vif *vif) wlcore_hw_queue_iter()
2480 if (WARN_ON_ONCE(vif->hw_queue[0] == IEEE80211_INVAL_HW_QUEUE)) wlcore_hw_queue_iter()
2483 if (iter_data->cur_running || vif == iter_data->vif) { wlcore_hw_queue_iter()
2488 __set_bit(vif->hw_queue[0] / NUM_TX_QUEUES, iter_data->hw_queue_map); wlcore_hw_queue_iter()
2494 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wlcore_allocate_hw_queue_base() local
2498 iter_data.vif = vif; wlcore_allocate_hw_queue_base()
2505 /* the current vif is already running in mac80211 (resume/recovery) */ wlcore_allocate_hw_queue_base()
2507 wlvif->hw_queue_base = vif->hw_queue[0]; wlcore_allocate_hw_queue_base()
2528 vif->hw_queue[i] = wlvif->hw_queue_base + i; wlcore_allocate_hw_queue_base()
2534 vif->cab_queue = NUM_TX_QUEUES * WLCORE_NUM_MAC_ADDRESSES + wlcore_allocate_hw_queue_base()
2537 vif->cab_queue = IEEE80211_INVAL_HW_QUEUE; wlcore_allocate_hw_queue_base()
2543 struct ieee80211_vif *vif) wl1271_op_add_interface()
2546 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_add_interface()
2556 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER | wl1271_op_add_interface()
2561 ieee80211_vif_type_p2p(vif), vif->addr); wl1271_op_add_interface()
2563 wl12xx_get_vif_count(hw, vif, &vif_count); wl1271_op_add_interface()
2582 ret = wl12xx_init_vif_data(wl, vif); wl1271_op_add_interface()
2614 memcpy(wl->addresses[0].addr, vif->addr, ETH_ALEN); wl1271_op_add_interface()
2621 ret = wl12xx_cmd_role_enable(wl, vif->addr, wl1271_op_add_interface()
2626 ret = wl1271_init_vif_specific(wl, vif); wl1271_op_add_interface()
2646 struct ieee80211_vif *vif, __wl1271_op_remove_interface()
2649 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); __wl1271_op_remove_interface()
2682 if (wl->roc_vif == vif) { __wl1271_op_remove_interface()
2782 struct ieee80211_vif *vif) wl1271_op_remove_interface()
2785 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_remove_interface()
2789 wl12xx_get_vif_count(hw, vif, &vif_count); wl1271_op_remove_interface()
2797 * wl->vif can be null here if someone shuts down the interface wl1271_op_remove_interface()
2804 __wl1271_op_remove_interface(wl, vif, true); wl12xx_for_each_wlvif()
2818 struct ieee80211_vif *vif, wl12xx_op_change_interface()
2825 wl1271_op_remove_interface(hw, vif); wl12xx_op_change_interface()
2827 vif->type = new_type; wl12xx_op_change_interface()
2828 vif->p2p = p2p; wl12xx_op_change_interface()
2829 ret = wl1271_op_add_interface(hw, vif); wl12xx_op_change_interface()
2901 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wlcore_set_ssid() local
2909 skb = ieee80211_ap_probereq_get(wl->hw, vif); wlcore_set_ssid()
3046 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wlcore_unset_assoc() local
3049 ieee80211_chswitch_done(vif, false); wlcore_unset_assoc()
3414 struct ieee80211_vif *vif, wlcore_op_set_key()
3444 ret = wlcore_hw_set_key(wl, cmd, vif, sta, key_conf); wlcore_op_set_key()
3458 struct ieee80211_vif *vif, wlcore_set_key()
3462 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_set_key()
3565 struct ieee80211_vif *vif, wl1271_op_set_default_key_idx()
3569 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_set_default_key_idx()
3636 struct ieee80211_vif *vif, wl1271_op_hw_scan()
3675 ret = wlcore_scan(hw->priv, vif, ssid, len, req); wl1271_op_hw_scan()
3685 struct ieee80211_vif *vif) wl1271_op_cancel_hw_scan()
3688 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_cancel_hw_scan()
3732 struct ieee80211_vif *vif, wl1271_op_sched_scan_start()
3737 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_sched_scan_start()
3767 struct ieee80211_vif *vif) wl1271_op_sched_scan_stop()
3770 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_sched_scan_stop()
3883 struct ieee80211_vif *vif) wl1271_ap_set_probe_resp_tmpl()
3885 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_ap_set_probe_resp_tmpl()
3889 skb = ieee80211_proberesp_get(wl->hw, vif); wl1271_ap_set_probe_resp_tmpl()
3911 struct ieee80211_vif *vif, wl1271_ap_set_probe_resp_tmpl_legacy()
3916 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_ap_set_probe_resp_tmpl_legacy()
3917 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; wl1271_ap_set_probe_resp_tmpl_legacy()
3969 struct ieee80211_vif *vif, wl1271_bss_erp_info_changed()
3973 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_bss_erp_info_changed()
4012 struct ieee80211_vif *vif, wlcore_set_beacon_template()
4015 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_set_beacon_template()
4020 struct sk_buff *beacon = ieee80211_beacon_get(wl->hw, vif); wlcore_set_beacon_template()
4078 ret = wl1271_ap_set_probe_resp_tmpl_legacy(wl, vif, wlcore_set_beacon_template()
4098 struct ieee80211_vif *vif, wl1271_bss_beacon_info_changed()
4102 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_bss_beacon_info_changed()
4116 wl1271_ap_set_probe_resp_tmpl(wl, rate, vif); wl1271_bss_beacon_info_changed()
4120 ret = wlcore_set_beacon_template(wl, vif, is_ap); wl1271_bss_beacon_info_changed()
4139 struct ieee80211_vif *vif, wl1271_bss_info_changed_ap()
4143 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_bss_info_changed_ap()
4160 ret = wl1271_ap_init_templates(wl, vif); wl1271_bss_info_changed_ap()
4164 ret = wl1271_ap_set_probe_resp_tmpl(wl, wlvif->basic_rate, vif); wl1271_bss_info_changed_ap()
4168 ret = wlcore_set_beacon_template(wl, vif, true); wl1271_bss_info_changed_ap()
4173 ret = wl1271_bss_beacon_info_changed(wl, vif, bss_conf, changed); wl1271_bss_info_changed_ap()
4212 ret = wl1271_bss_erp_info_changed(wl, vif, bss_conf, changed); wl1271_bss_info_changed_ap()
4306 struct ieee80211_vif *vif, wl1271_bss_info_changed_sta()
4310 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_bss_info_changed_sta()
4321 ret = wl1271_bss_beacon_info_changed(wl, vif, bss_conf, wl1271_bss_info_changed_sta()
4369 sta = ieee80211_find_sta(vif, bss_conf->bssid); wl1271_bss_info_changed_sta()
4430 ret = wl1271_bss_erp_info_changed(wl, vif, bss_conf, changed); wl1271_bss_info_changed_sta()
4554 struct ieee80211_vif *vif, wl1271_op_bss_info_changed()
4559 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_bss_info_changed()
4600 wl1271_bss_info_changed_ap(wl, vif, bss_conf, changed); wl1271_op_bss_info_changed()
4602 wl1271_bss_info_changed_sta(wl, vif, bss_conf, changed); wl1271_op_bss_info_changed()
4648 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_for_each_wlvif() local
4651 if (rcu_access_pointer(vif->chanctx_conf) != ctx) { wl12xx_for_each_wlvif()
4674 struct ieee80211_vif *vif, wlcore_op_assign_vif_chanctx()
4678 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_op_assign_vif_chanctx()
4723 struct ieee80211_vif *vif, wlcore_op_unassign_vif_chanctx()
4727 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_op_unassign_vif_chanctx()
4769 "switch vif (role %d) %d -> %d chan_type: %d", __wlcore_switch_vif_chan()
4818 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vifs[i].vif); wlcore_op_switch_vif_chanctx()
4833 struct ieee80211_vif *vif, u16 queue, wl1271_op_conf_tx()
4837 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_conf_tx()
4883 struct ieee80211_vif *vif) wl1271_op_get_tsf()
4887 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_get_tsf()
5189 struct ieee80211_vif *vif, wl12xx_op_sta_state()
5195 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl12xx_op_sta_state()
5223 struct ieee80211_vif *vif, wl1271_op_ampdu_action()
5229 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_op_ampdu_action()
5343 struct ieee80211_vif *vif, wl12xx_set_bitrate_mask()
5346 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl12xx_set_bitrate_mask()
5386 struct ieee80211_vif *vif, wl12xx_op_channel_switch()
5390 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl12xx_op_channel_switch()
5401 ieee80211_chswitch_done(vif, false); wl12xx_op_channel_switch()
5411 /* TODO: change mac80211 to pass vif as param */ wl12xx_op_channel_switch()
5470 struct ieee80211_vif *vif, wlcore_op_channel_switch_beacon()
5474 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_op_channel_switch_beacon()
5514 static void wlcore_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, wlcore_op_flush() argument
5523 struct ieee80211_vif *vif, wlcore_op_remain_on_channel()
5528 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_op_remain_on_channel()
5558 wl->roc_vif = vif; wlcore_op_remain_on_channel()
5637 /* TODO: per-vif */ wlcore_op_cancel_remain_on_channel()
5651 struct ieee80211_vif *vif, wlcore_op_sta_rc_update()
5655 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_op_sta_rc_update()
5668 struct ieee80211_vif *vif, wlcore_op_sta_statistics()
5673 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_op_sta_statistics()
712 wl12xx_vif_count_iter(void *data, u8 *mac, struct ieee80211_vif *vif) wl12xx_vif_count_iter() argument
2475 wlcore_hw_queue_iter(void *data, u8 *mac, struct ieee80211_vif *vif) wlcore_hw_queue_iter() argument
2542 wl1271_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wl1271_op_add_interface() argument
2645 __wl1271_op_remove_interface(struct wl1271 *wl, struct ieee80211_vif *vif, bool reset_tx_queues) __wl1271_op_remove_interface() argument
2781 wl1271_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wl1271_op_remove_interface() argument
2817 wl12xx_op_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum nl80211_iftype new_type, bool p2p) wl12xx_op_change_interface() argument
3413 wlcore_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key_conf) wlcore_op_set_key() argument
3457 wlcore_set_key(struct wl1271 *wl, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key_conf) wlcore_set_key() argument
3564 wl1271_op_set_default_key_idx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int key_idx) wl1271_op_set_default_key_idx() argument
3635 wl1271_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) wl1271_op_hw_scan() argument
3684 wl1271_op_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wl1271_op_cancel_hw_scan() argument
3731 wl1271_op_sched_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_sched_scan_request *req, struct ieee80211_scan_ies *ies) wl1271_op_sched_scan_start() argument
3766 wl1271_op_sched_scan_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wl1271_op_sched_scan_stop() argument
3882 wl1271_ap_set_probe_resp_tmpl(struct wl1271 *wl, u32 rates, struct ieee80211_vif *vif) wl1271_ap_set_probe_resp_tmpl() argument
3910 wl1271_ap_set_probe_resp_tmpl_legacy(struct wl1271 *wl, struct ieee80211_vif *vif, u8 *probe_rsp_data, size_t probe_rsp_len, u32 rates) wl1271_ap_set_probe_resp_tmpl_legacy() argument
3968 wl1271_bss_erp_info_changed(struct wl1271 *wl, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) wl1271_bss_erp_info_changed() argument
4011 wlcore_set_beacon_template(struct wl1271 *wl, struct ieee80211_vif *vif, bool is_ap) wlcore_set_beacon_template() argument
4097 wl1271_bss_beacon_info_changed(struct wl1271 *wl, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) wl1271_bss_beacon_info_changed() argument
4138 wl1271_bss_info_changed_ap(struct wl1271 *wl, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) wl1271_bss_info_changed_ap() argument
4305 wl1271_bss_info_changed_sta(struct wl1271 *wl, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) wl1271_bss_info_changed_sta() argument
4553 wl1271_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) wl1271_op_bss_info_changed() argument
4673 wlcore_op_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *ctx) wlcore_op_assign_vif_chanctx() argument
4722 wlcore_op_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *ctx) wlcore_op_unassign_vif_chanctx() argument
4832 wl1271_op_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) wl1271_op_conf_tx() argument
4882 wl1271_op_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wl1271_op_get_tsf() argument
5188 wl12xx_op_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, enum ieee80211_sta_state old_state, enum ieee80211_sta_state new_state) wl12xx_op_sta_state() argument
5222 wl1271_op_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) wl1271_op_ampdu_action() argument
5342 wl12xx_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const struct cfg80211_bitrate_mask *mask) wl12xx_set_bitrate_mask() argument
5385 wl12xx_op_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel_switch *ch_switch) wl12xx_op_channel_switch() argument
5469 wlcore_op_channel_switch_beacon(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_chan_def *chandef) wlcore_op_channel_switch_beacon() argument
5522 wlcore_op_remain_on_channel(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel *chan, int duration, enum ieee80211_roc_type type) wlcore_op_remain_on_channel() argument
5650 wlcore_op_sta_rc_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, u32 changed) wlcore_op_sta_rc_update() argument
5667 wlcore_op_sta_statistics(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct station_info *sinfo) wlcore_op_sta_statistics() argument
H A Dtestmode.h29 int wl1271_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
H A Dcmd.c513 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_cmd_role_start_sta() local
535 memcpy(cmd->sta.bssid, vif->bss_conf.bssid, ETH_ALEN); wl12xx_cmd_role_start_sta()
625 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_cmd_role_start_ap() local
626 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; wl12xx_cmd_role_start_ap()
762 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_cmd_role_start_ibss() local
764 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; wl12xx_cmd_role_start_ibss()
785 memcpy(cmd->ibss.bssid, vif->bss_conf.bssid, ETH_ALEN); wl12xx_cmd_role_start_ibss()
801 wl1271_debug(DEBUG_CMD, "vif->bss_conf.bssid = %pM", wl12xx_cmd_role_start_ibss()
802 vif->bss_conf.bssid); wl12xx_cmd_role_start_ibss()
1092 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_cmd_build_klv_null_data() local
1096 skb = ieee80211_nullfunc_get(wl->hw, vif); wl12xx_cmd_build_klv_null_data()
1117 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl1271_cmd_build_ps_poll() local
1121 skb = ieee80211_pspoll_get(wl->hw, vif); wl1271_cmd_build_ps_poll()
1140 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_cmd_build_probe_req() local
1149 skb = ieee80211_probereq_get(wl->hw, vif->addr, ssid, ssid_len, wl12xx_cmd_build_probe_req()
1186 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl1271_cmd_build_ap_probe_req() local
1191 skb = ieee80211_ap_probereq_get(wl->hw, vif); wl1271_cmd_build_ap_probe_req()
1218 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl1271_cmd_build_arp_rsp() local
1249 memcpy(tmpl->sender_hw, vif->addr, ETH_ALEN); wl1271_cmd_build_arp_rsp()
1294 memcpy(hdr->addr1, vif->bss_conf.bssid, ETH_ALEN); wl1271_cmd_build_arp_rsp()
1295 memcpy(hdr->addr2, vif->addr, ETH_ALEN); wl1271_cmd_build_arp_rsp()
1306 int wl1271_build_qos_null_data(struct wl1271 *wl, struct ieee80211_vif *vif) wl1271_build_qos_null_data() argument
1308 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl1271_build_qos_null_data()
1313 memcpy(template.addr1, vif->bss_conf.bssid, ETH_ALEN); wl1271_build_qos_null_data()
1314 memcpy(template.addr2, vif->addr, ETH_ALEN); wl1271_build_qos_null_data()
1315 memcpy(template.addr3, vif->bss_conf.bssid, ETH_ALEN); wl1271_build_qos_null_data()
H A Dps.c277 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_ps_link_start() local
291 sta = ieee80211_find_sta(vif, wl->links[hlid].addr); wl12xx_ps_link_start()
312 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); wl12xx_ps_link_end() local
322 sta = ieee80211_find_sta(vif, wl->links[hlid].addr); wl12xx_ps_link_end()
H A Dscan.c93 struct ieee80211_vif *vif) wlcore_started_vifs_iter()
95 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_started_vifs_iter()
340 int wlcore_scan(struct wl1271 *wl, struct ieee80211_vif *vif, wlcore_scan() argument
344 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wlcore_scan()
92 wlcore_started_vifs_iter(void *data, u8 *mac, struct ieee80211_vif *vif) wlcore_started_vifs_iter() argument
H A Dwlcore_i.h386 /* counters of packets per AC, across all links in the vif */
456 * This vif's queues are mapped to mac80211 HW queues as:
494 static inline struct wl12xx_vif *wl12xx_vif_to_data(struct ieee80211_vif *vif) wl12xx_vif_to_data() argument
496 WARN_ON(!vif); wl12xx_vif_to_data()
497 return (struct wl12xx_vif *)vif->drv_priv; wl12xx_vif_to_data()
H A Dhw_ops.h194 struct ieee80211_vif *vif, wlcore_hw_set_key()
201 return wl->ops->set_key(wl, cmd, vif, sta, key_conf); wlcore_hw_set_key()
193 wlcore_hw_set_key(struct wl1271 *wl, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key_conf) wlcore_hw_set_key() argument
H A Dscan.h29 int wlcore_scan(struct wl1271 *wl, struct ieee80211_vif *vif,
H A Dtx.c664 /* ensure proper round robin in the vif/link levels */
785 wlvif = wl12xx_vif_to_data(info->control.vif); wlcore_tx_work_locked()
914 struct ieee80211_vif *vif; wl1271_tx_complete_packet() local
937 vif = info->control.vif; wl1271_tx_complete_packet()
938 wlvif = wl12xx_vif_to_data(vif); wl1271_tx_complete_packet()
/linux-4.1.27/drivers/net/wireless/ath/ath9k/
H A Dmain.c346 struct ieee80211_vif *vif) ath_node_attach()
353 an->vif = vif; ath_node_attach()
915 u8 *mac, struct ieee80211_vif *vif) ath9k_vif_iter()
917 struct ath_vif *avp = (struct ath_vif *)vif->drv_priv; ath9k_vif_iter()
929 if (!vif->bss_conf.use_short_slot) ath9k_vif_iter()
932 switch (vif->type) { ath9k_vif_iter()
939 iter_data->primary_sta = vif; ath9k_vif_iter()
943 if (vif->bss_conf.enable_beacon) ath9k_vif_iter()
948 if (vif->bss_conf.enable_beacon) ath9k_vif_iter()
974 if (!avp->vif->p2p || !iter_data->has_hw_macaddr) ath9k_update_bssid_mask()
1003 ath9k_vif_iter(iter_data, avp->vif->addr, avp->vif); ath9k_calculate_iter_data()
1009 struct ieee80211_vif *vif, bool changed) ath9k_set_assoc_state()
1012 struct ath_vif *avp = (struct ath_vif *)vif->drv_priv; ath9k_set_assoc_state()
1035 vif->addr, common->curbssid); ath9k_set_assoc_state()
1043 struct ieee80211_vif *vif = NULL; ath9k_set_offchannel_state() local
1048 vif = sc->offchannel.scan_vif; ath9k_set_offchannel_state()
1050 vif = sc->offchannel.roc_vif; ath9k_set_offchannel_state()
1052 if (WARN_ON(!vif)) ath9k_set_offchannel_state()
1057 memcpy(common->macaddr, vif->addr, ETH_ALEN); ath9k_set_offchannel_state()
1059 ah->opmode = vif->type; ath9k_set_offchannel_state()
1177 static void ath9k_tpc_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif) ath9k_tpc_vif_iter() argument
1181 if (*power < vif->bss_conf.txpower) ath9k_tpc_vif_iter()
1182 *power = vif->bss_conf.txpower; ath9k_tpc_vif_iter()
1186 void ath9k_set_txpower(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_set_txpower() argument
1194 power = (vif) ? vif->bss_conf.txpower : -1; ath9k_set_txpower()
1210 struct ieee80211_vif *vif) ath9k_assign_hw_queues()
1218 vif->hw_queue[i] = i; ath9k_assign_hw_queues()
1220 if (vif->type == NL80211_IFTYPE_AP || ath9k_assign_hw_queues()
1221 vif->type == NL80211_IFTYPE_MESH_POINT) ath9k_assign_hw_queues()
1222 vif->cab_queue = hw->queues - 2; ath9k_assign_hw_queues()
1224 vif->cab_queue = IEEE80211_INVAL_HW_QUEUE; ath9k_assign_hw_queues()
1228 struct ieee80211_vif *vif) ath9k_add_interface()
1233 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_add_interface()
1243 sc->tx99_vif = vif; ath9k_add_interface()
1246 ath_dbg(common, CONFIG, "Attach a VIF of type: %d\n", vif->type); ath9k_add_interface()
1249 if (ath9k_uses_beacons(vif->type)) ath9k_add_interface()
1250 ath9k_beacon_assign_slot(sc, vif); ath9k_add_interface()
1252 avp->vif = vif; ath9k_add_interface()
1260 ath9k_assign_hw_queues(hw, vif); ath9k_add_interface()
1262 ath9k_set_txpower(sc, vif); ath9k_add_interface()
1266 an->vif = vif; ath9k_add_interface()
1275 struct ieee80211_vif *vif, ath9k_change_interface()
1281 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_change_interface()
1292 if (ath9k_uses_beacons(vif->type)) ath9k_change_interface()
1293 ath9k_beacon_remove_slot(sc, vif); ath9k_change_interface()
1295 vif->type = new_type; ath9k_change_interface()
1296 vif->p2p = p2p; ath9k_change_interface()
1298 if (ath9k_uses_beacons(vif->type)) ath9k_change_interface()
1299 ath9k_beacon_assign_slot(sc, vif); ath9k_change_interface()
1301 ath9k_assign_hw_queues(hw, vif); ath9k_change_interface()
1304 ath9k_set_txpower(sc, vif); ath9k_change_interface()
1311 struct ieee80211_vif *vif) ath9k_remove_interface()
1315 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_remove_interface()
1321 ath9k_p2p_remove_vif(sc, vif); ath9k_remove_interface()
1328 if (ath9k_uses_beacons(vif->type)) ath9k_remove_interface()
1329 ath9k_beacon_remove_slot(sc, vif); ath9k_remove_interface()
1482 struct ieee80211_vif *vif, ath9k_sta_add()
1491 ath_node_attach(sc, sta, vif); ath9k_sta_add()
1493 if (vif->type != NL80211_IFTYPE_AP && ath9k_sta_add()
1494 vif->type != NL80211_IFTYPE_AP_VLAN) ath9k_sta_add()
1497 key = ath_key_config(common, vif, sta, &ps_key); ath9k_sta_add()
1507 struct ieee80211_vif *vif, ath9k_del_ps_key()
1523 struct ieee80211_vif *vif, ath9k_sta_remove()
1528 ath9k_del_ps_key(sc, vif, sta); ath9k_sta_remove()
1535 struct ieee80211_vif *vif, ath9k_sta_state()
1546 ret = ath9k_sta_add(hw, vif, sta); ath9k_sta_state()
1551 ret = ath9k_sta_remove(hw, vif, sta); ath9k_sta_state()
1557 if (vif->type == NL80211_IFTYPE_STATION) { ath9k_sta_state()
1560 ath_chanctx_event(sc, vif, ath9k_sta_state()
1582 struct ieee80211_vif *vif, ath9k_sta_notify()
1604 struct ieee80211_vif *vif, u16 queue, ath9k_conf_tx()
1646 struct ieee80211_vif *vif, ath9k_set_key()
1658 if ((vif->type == NL80211_IFTYPE_ADHOC || ath9k_set_key()
1659 vif->type == NL80211_IFTYPE_MESH_POINT) && ath9k_set_key()
1682 ath9k_del_ps_key(sc, vif, sta); ath9k_set_key()
1685 ret = ath_key_config(common, vif, sta, key); ath9k_set_key()
1730 struct ieee80211_vif *vif, ath9k_bss_info_changed()
1742 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_bss_info_changed()
1768 ath9k_beacon_config(sc, vif, changed); ath9k_bss_info_changed()
1779 if (vif->type == NL80211_IFTYPE_AP) { ath9k_bss_info_changed()
1794 ath9k_p2p_bss_info_changed(sc, vif); ath9k_bss_info_changed()
1800 ath_dbg(common, CONFIG, "vif %pM power %d dbm power_type %d\n", ath9k_bss_info_changed()
1801 vif->addr, bss_conf->txpower, bss_conf->txpower_type); ath9k_bss_info_changed()
1802 ath9k_set_txpower(sc, vif); ath9k_bss_info_changed()
1811 static u64 ath9k_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_get_tsf() argument
1826 struct ieee80211_vif *vif, ath9k_set_tsf()
1838 static void ath9k_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_reset_tsf() argument
1852 struct ieee80211_vif *vif, ath9k_ampdu_action()
1879 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); ath9k_ampdu_action()
1889 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); ath9k_ampdu_action()
2007 static void ath9k_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ath9k_flush() argument
2024 * The vif queues have been stopped in mac80211, ath9k_flush()
2097 struct ieee80211_vif *vif; ath9k_tx_last_beacon() local
2104 vif = sc->beacon.bslot[0]; ath9k_tx_last_beacon()
2105 if (!vif) ath9k_tx_last_beacon()
2108 if (!vif->bss_conf.enable_beacon) ath9k_tx_last_beacon()
2111 avp = (void *)vif->drv_priv; ath9k_tx_last_beacon()
2222 struct ieee80211_vif *vif, ath9k_sw_scan_start()
2231 struct ieee80211_vif *vif) ath9k_sw_scan_complete()
2262 static int ath9k_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ath9k_hw_scan() argument
2279 sc->offchannel.scan_vif = vif; ath9k_hw_scan()
2283 ath_dbg(common, CHAN_CTX, "HW scan request received on vif: %pM\n", ath9k_hw_scan()
2284 vif->addr); ath9k_hw_scan()
2298 struct ieee80211_vif *vif) ath9k_cancel_hw_scan()
2303 ath_dbg(common, CHAN_CTX, "Cancel HW scan on vif: %pM\n", vif->addr); ath9k_cancel_hw_scan()
2312 struct ieee80211_vif *vif, ath9k_remain_on_channel()
2328 sc->offchannel.roc_vif = vif; ath9k_remain_on_channel()
2333 "RoC request on vif: %pM, type: %d duration: %d\n", ath9k_remain_on_channel()
2334 vif->addr, type, duration); ath9k_remain_on_channel()
2439 struct ieee80211_vif *vif, ath9k_assign_vif_chanctx()
2444 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_assign_vif_chanctx()
2454 vif->addr, vif->type, vif->p2p, ath9k_assign_vif_chanctx()
2462 vif->hw_queue[i] = ctx->hw_queue_base + i; ath9k_assign_vif_chanctx()
2470 struct ieee80211_vif *vif, ath9k_unassign_vif_chanctx()
2475 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_unassign_vif_chanctx()
2485 vif->addr, vif->type, vif->p2p, ath9k_unassign_vif_chanctx()
2493 vif->hw_queue[ac] = IEEE80211_INVAL_HW_QUEUE; ath9k_unassign_vif_chanctx()
2499 struct ieee80211_vif *vif) ath9k_mgd_prepare_tx()
2503 struct ath_vif *avp = (struct ath_vif *) vif->drv_priv; ath9k_mgd_prepare_tx()
2560 "%s: Set chanctx state to FORCE_ACTIVE for vif: %pM\n", ath9k_mgd_prepare_tx()
2561 __func__, vif->addr); ath9k_mgd_prepare_tx()
2592 static int ath9k_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ath9k_get_txpower() argument
2596 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_get_txpower()
345 ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta, struct ieee80211_vif *vif) ath_node_attach() argument
914 ath9k_vif_iter(struct ath9k_vif_iter_data *iter_data, u8 *mac, struct ieee80211_vif *vif) ath9k_vif_iter() argument
1008 ath9k_set_assoc_state(struct ath_softc *sc, struct ieee80211_vif *vif, bool changed) ath9k_set_assoc_state() argument
1209 ath9k_assign_hw_queues(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_assign_hw_queues() argument
1227 ath9k_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_add_interface() argument
1274 ath9k_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum nl80211_iftype new_type, bool p2p) ath9k_change_interface() argument
1310 ath9k_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_remove_interface() argument
1481 ath9k_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) ath9k_sta_add() argument
1506 ath9k_del_ps_key(struct ath_softc *sc, struct ieee80211_vif *vif, struct ieee80211_sta *sta) ath9k_del_ps_key() argument
1522 ath9k_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) ath9k_sta_remove() argument
1534 ath9k_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, enum ieee80211_sta_state old_state, enum ieee80211_sta_state new_state) ath9k_sta_state() argument
1581 ath9k_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta) ath9k_sta_notify() argument
1603 ath9k_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) ath9k_conf_tx() argument
1644 ath9k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) ath9k_set_key() argument
1729 ath9k_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) ath9k_bss_info_changed() argument
1825 ath9k_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u64 tsf) ath9k_set_tsf() argument
1851 ath9k_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) ath9k_ampdu_action() argument
2221 ath9k_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) ath9k_sw_scan_start() argument
2230 ath9k_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_sw_scan_complete() argument
2297 ath9k_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_cancel_hw_scan() argument
2311 ath9k_remain_on_channel(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel *chan, int duration, enum ieee80211_roc_type type) ath9k_remain_on_channel() argument
2438 ath9k_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *conf) ath9k_assign_vif_chanctx() argument
2469 ath9k_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *conf) ath9k_unassign_vif_chanctx() argument
2498 ath9k_mgd_prepare_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_mgd_prepare_tx() argument
H A Dbeacon.c72 static void ath9k_beacon_setup(struct ath_softc *sc, struct ieee80211_vif *vif, ath9k_beacon_setup() argument
85 if (vif->bss_conf.use_short_preamble) ath9k_beacon_setup()
113 struct ieee80211_vif *vif) ath9k_beacon_generate()
118 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_beacon_generate()
138 skb = ieee80211_beacon_get(hw, vif); ath9k_beacon_generate()
151 if (vif->p2p) ath9k_beacon_generate()
164 skb = ieee80211_get_buffered_bc(hw, vif); ath9k_beacon_generate()
169 * 1) if there is only one vif let the cab traffic continue. ath9k_beacon_generate()
170 * 2) if there are more than one vif and we are using staggered ath9k_beacon_generate()
186 ath9k_beacon_setup(sc, vif, bf, info->control.rates[0].idx); ath9k_beacon_generate()
189 ath_tx_cabq(hw, vif, skb); ath9k_beacon_generate()
194 void ath9k_beacon_assign_slot(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_beacon_assign_slot() argument
197 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_beacon_assign_slot()
210 sc->beacon.bslot[avp->av_bslot] = vif; ath9k_beacon_assign_slot()
217 void ath9k_beacon_remove_slot(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_beacon_remove_slot() argument
220 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_beacon_remove_slot()
276 static void ath9k_set_tsfadjust(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_set_tsfadjust() argument
279 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_set_tsfadjust()
294 bool ath9k_csa_is_finished(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_csa_is_finished() argument
296 if (!vif || !vif->csa_active) ath9k_csa_is_finished()
299 if (!ieee80211_csa_is_complete(vif)) ath9k_csa_is_finished()
302 ieee80211_csa_finish(vif); ath9k_csa_is_finished()
306 static void ath9k_csa_update_vif(void *data, u8 *mac, struct ieee80211_vif *vif) ath9k_csa_update_vif() argument
309 ath9k_csa_is_finished(sc, vif); ath9k_csa_update_vif()
325 struct ieee80211_vif *vif; ath9k_beacon_tasklet() local
373 vif = sc->beacon.bslot[slot]; ath9k_beacon_tasklet()
382 if (ath9k_csa_is_finished(sc, vif)) ath9k_beacon_tasklet()
386 if (!vif || !vif->bss_conf.enable_beacon) ath9k_beacon_tasklet()
390 ath_chanctx_event(sc, vif, ATH_CHANCTX_EVENT_BEACON_PREPARE); ath9k_beacon_tasklet()
393 bf = ath9k_beacon_generate(sc->hw, vif); ath9k_beacon_tasklet()
510 struct ieee80211_vif *vif) ath9k_allow_beacon_config()
513 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_allow_beacon_config()
527 if (vif->type != NL80211_IFTYPE_AP) { ath9k_allow_beacon_config()
535 if ((vif->type == NL80211_IFTYPE_STATION) && ath9k_allow_beacon_config()
537 vif != sc->cur_chan->primary_sta) { ath9k_allow_beacon_config()
584 void ath9k_beacon_config(struct ath_softc *sc, struct ieee80211_vif *vif, ath9k_beacon_config() argument
587 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; ath9k_beacon_config()
590 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_beacon_config()
600 if (vif->type == NL80211_IFTYPE_AP) ath9k_beacon_config()
601 ath9k_set_tsfadjust(sc, vif); ath9k_beacon_config()
603 if (!ath9k_allow_beacon_config(sc, vif)) ath9k_beacon_config()
606 if (vif->type == NL80211_IFTYPE_STATION) { ath9k_beacon_config()
112 ath9k_beacon_generate(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_beacon_generate() argument
509 ath9k_allow_beacon_config(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_allow_beacon_config() argument
H A Dhtc_drv_beacon.c141 struct ieee80211_vif *vif; ath9k_htc_send_buffered() local
148 vif = priv->beacon.bslot[slot]; ath9k_htc_send_buffered()
150 skb = ieee80211_get_buffered_bc(priv->hw, vif); ath9k_htc_send_buffered()
185 skb = ieee80211_get_buffered_bc(priv->hw, vif); ath9k_htc_send_buffered()
195 struct ieee80211_vif *vif; ath9k_htc_send_beacon() local
209 vif = priv->beacon.bslot[slot]; ath9k_htc_send_beacon()
210 avp = (struct ath9k_htc_vif *)vif->drv_priv; ath9k_htc_send_beacon()
218 beacon = ieee80211_beacon_get(priv->hw, vif); ath9k_htc_send_beacon()
321 struct ieee80211_vif *vif) ath9k_htc_assign_bslot()
324 struct ath9k_htc_vif *avp = (struct ath9k_htc_vif *)vif->drv_priv; ath9k_htc_assign_bslot()
335 priv->beacon.bslot[avp->bslot] = vif; ath9k_htc_assign_bslot()
343 struct ieee80211_vif *vif) ath9k_htc_remove_bslot()
346 struct ath9k_htc_vif *avp = (struct ath9k_htc_vif *)vif->drv_priv; ath9k_htc_remove_bslot()
361 struct ieee80211_vif *vif) ath9k_htc_set_tsfadjust()
364 struct ath9k_htc_vif *avp = (struct ath9k_htc_vif *)vif->drv_priv; ath9k_htc_set_tsfadjust()
383 static void ath9k_htc_beacon_iter(void *data, u8 *mac, struct ieee80211_vif *vif) ath9k_htc_beacon_iter() argument
386 struct ath9k_htc_vif *avp = (struct ath9k_htc_vif *) vif->drv_priv; ath9k_htc_beacon_iter()
388 if (vif->type == NL80211_IFTYPE_STATION && ath9k_htc_beacon_iter()
394 struct ieee80211_vif *vif) ath9k_htc_check_beacon_config()
398 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; ath9k_htc_check_beacon_config()
408 (vif->type == NL80211_IFTYPE_AP) && ath9k_htc_check_beacon_config()
420 (vif->type != NL80211_IFTYPE_AP)) { ath9k_htc_check_beacon_config()
432 (vif->type == NL80211_IFTYPE_STATION)) { ath9k_htc_check_beacon_config()
449 struct ieee80211_vif *vif) ath9k_htc_beacon_config()
453 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; ath9k_htc_beacon_config()
454 struct ath9k_htc_vif *avp = (struct ath9k_htc_vif *) vif->drv_priv; ath9k_htc_beacon_config()
456 if (!ath9k_htc_check_beacon_config(priv, vif)) ath9k_htc_beacon_config()
467 switch (vif->type) { ath9k_htc_beacon_config()
320 ath9k_htc_assign_bslot(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif) ath9k_htc_assign_bslot() argument
342 ath9k_htc_remove_bslot(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif) ath9k_htc_remove_bslot() argument
360 ath9k_htc_set_tsfadjust(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif) ath9k_htc_set_tsfadjust() argument
393 ath9k_htc_check_beacon_config(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif) ath9k_htc_check_beacon_config() argument
448 ath9k_htc_beacon_config(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif) ath9k_htc_beacon_config() argument
H A Dhtc_drv_main.c91 static void ath9k_htc_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif) ath9k_htc_vif_iter() argument
94 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; ath9k_htc_vif_iter()
96 if ((vif->type == NL80211_IFTYPE_AP || ath9k_htc_vif_iter()
97 vif->type == NL80211_IFTYPE_MESH_POINT) && ath9k_htc_vif_iter()
127 static void ath9k_htc_bssid_iter(void *data, u8 *mac, struct ieee80211_vif *vif) ath9k_htc_bssid_iter() argument
141 struct ieee80211_vif *vif) ath9k_htc_set_mac_bssid_mask()
154 if (vif) ath9k_htc_set_mac_bssid_mask()
155 ath9k_htc_bssid_iter(&iter_data, vif->addr, vif); ath9k_htc_set_mac_bssid_mask()
470 struct ieee80211_vif *vif, ath9k_htc_add_station()
475 struct ath9k_htc_vif *avp = (struct ath9k_htc_vif *) vif->drv_priv; ath9k_htc_add_station()
500 memcpy(&tsta.macaddr, vif->addr, ETH_ALEN); ath9k_htc_add_station()
536 struct ieee80211_vif *vif, ath9k_htc_remove_station()
540 struct ath9k_htc_vif *avp = (struct ath9k_htc_vif *) vif->drv_priv; ath9k_htc_remove_station()
679 struct ieee80211_vif *vif, ath9k_htc_update_rate()
690 sta = ieee80211_find_sta(vif, bss_conf->bssid); ath9k_htc_update_rate()
706 struct ieee80211_vif *vif, ath9k_htc_tx_aggr_oper()
1031 struct ieee80211_vif *vif) ath9k_htc_add_interface()
1034 struct ath9k_htc_vif *avp = (void *)vif->drv_priv; ath9k_htc_add_interface()
1044 memcpy(&hvif.myaddr, vif->addr, ETH_ALEN); ath9k_htc_add_interface()
1046 switch (vif->type) { ath9k_htc_add_interface()
1061 "Interface type %d not yet supported\n", vif->type); ath9k_htc_add_interface()
1077 ret = ath9k_htc_add_station(priv, vif, NULL); ath9k_htc_add_interface()
1083 ath9k_htc_set_mac_bssid_mask(priv, vif); ath9k_htc_add_interface()
1088 INC_VIF(priv, vif->type); ath9k_htc_add_interface()
1090 if ((vif->type == NL80211_IFTYPE_AP) || ath9k_htc_add_interface()
1091 (vif->type == NL80211_IFTYPE_MESH_POINT) || ath9k_htc_add_interface()
1092 (vif->type == NL80211_IFTYPE_ADHOC)) ath9k_htc_add_interface()
1093 ath9k_htc_assign_bslot(priv, vif); ath9k_htc_add_interface()
1104 vif->type, avp->index); ath9k_htc_add_interface()
1114 struct ieee80211_vif *vif) ath9k_htc_remove_interface()
1118 struct ath9k_htc_vif *avp = (void *)vif->drv_priv; ath9k_htc_remove_interface()
1127 memcpy(&hvif.myaddr, vif->addr, ETH_ALEN); ath9k_htc_remove_interface()
1137 ath9k_htc_remove_station(priv, vif, NULL); ath9k_htc_remove_interface()
1139 DEC_VIF(priv, vif->type); ath9k_htc_remove_interface()
1141 if ((vif->type == NL80211_IFTYPE_AP) || ath9k_htc_remove_interface()
1142 vif->type == NL80211_IFTYPE_MESH_POINT || ath9k_htc_remove_interface()
1143 (vif->type == NL80211_IFTYPE_ADHOC)) ath9k_htc_remove_interface()
1144 ath9k_htc_remove_bslot(priv, vif); ath9k_htc_remove_interface()
1148 ath9k_htc_set_mac_bssid_mask(priv, vif); ath9k_htc_remove_interface()
1153 if ((vif->type == NL80211_IFTYPE_AP) && (priv->num_ap_vif == 0)) { ath9k_htc_remove_interface()
1311 struct ieee80211_vif *vif, ath9k_htc_sta_add()
1320 ret = ath9k_htc_add_station(priv, vif, sta); ath9k_htc_sta_add()
1333 struct ieee80211_vif *vif, ath9k_htc_sta_remove()
1345 ret = ath9k_htc_remove_station(priv, vif, sta); ath9k_htc_sta_remove()
1353 struct ieee80211_vif *vif, ath9k_htc_sta_rc_update()
1365 struct ieee80211_vif *vif, u16 queue, ath9k_htc_conf_tx()
1411 struct ieee80211_vif *vif, ath9k_htc_set_key()
1422 if ((vif->type == NL80211_IFTYPE_ADHOC || ath9k_htc_set_key()
1423 vif->type == NL80211_IFTYPE_MESH_POINT) && ath9k_htc_set_key()
1443 ret = ath_key_config(common, vif, sta, key); ath9k_htc_set_key()
1478 static void ath9k_htc_bss_iter(void *data, u8 *mac, struct ieee80211_vif *vif) ath9k_htc_bss_iter() argument
1482 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; ath9k_htc_bss_iter()
1484 if ((vif->type == NL80211_IFTYPE_STATION) && bss_conf->assoc) { ath9k_htc_bss_iter()
1503 struct ieee80211_vif *vif, ath9k_htc_bss_info_changed()
1545 ath9k_htc_set_tsfadjust(priv, vif); ath9k_htc_bss_info_changed()
1547 ath9k_htc_beacon_config(priv, vif); ath9k_htc_bss_info_changed()
1561 ath9k_htc_beacon_config(priv, vif); ath9k_htc_bss_info_changed()
1571 vif->type == NL80211_IFTYPE_AP && ath9k_htc_bss_info_changed()
1574 vif->type == NL80211_IFTYPE_MESH_POINT && ath9k_htc_bss_info_changed()
1581 ath9k_htc_beacon_config(priv, vif); ath9k_htc_bss_info_changed()
1589 if (vif->type == NL80211_IFTYPE_AP) { ath9k_htc_bss_info_changed()
1604 ath9k_htc_update_rate(priv, vif, bss_conf); ath9k_htc_bss_info_changed()
1611 struct ieee80211_vif *vif) ath9k_htc_get_tsf()
1626 struct ieee80211_vif *vif, u64 tsf) ath9k_htc_set_tsf()
1638 struct ieee80211_vif *vif) ath9k_htc_reset_tsf()
1650 struct ieee80211_vif *vif, ath9k_htc_ampdu_action()
1668 ret = ath9k_htc_tx_aggr_oper(priv, vif, sta, action, tid); ath9k_htc_ampdu_action()
1670 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); ath9k_htc_ampdu_action()
1675 ath9k_htc_tx_aggr_oper(priv, vif, sta, action, tid); ath9k_htc_ampdu_action()
1676 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); ath9k_htc_ampdu_action()
1695 struct ieee80211_vif *vif, ath9k_htc_sw_scan_start()
1711 struct ieee80211_vif *vif) ath9k_htc_sw_scan_complete()
1750 struct ieee80211_vif *vif, ath9k_htc_set_bitrate_mask()
1756 struct ath9k_htc_vif *avp = (void *)vif->drv_priv; ath9k_htc_set_bitrate_mask()
140 ath9k_htc_set_mac_bssid_mask(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif) ath9k_htc_set_mac_bssid_mask() argument
469 ath9k_htc_add_station(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif, struct ieee80211_sta *sta) ath9k_htc_add_station() argument
535 ath9k_htc_remove_station(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif, struct ieee80211_sta *sta) ath9k_htc_remove_station() argument
678 ath9k_htc_update_rate(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf) ath9k_htc_update_rate() argument
705 ath9k_htc_tx_aggr_oper(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif, struct ieee80211_sta *sta, enum ieee80211_ampdu_mlme_action action, u16 tid) ath9k_htc_tx_aggr_oper() argument
1030 ath9k_htc_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_htc_add_interface() argument
1113 ath9k_htc_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_htc_remove_interface() argument
1310 ath9k_htc_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) ath9k_htc_sta_add() argument
1332 ath9k_htc_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) ath9k_htc_sta_remove() argument
1352 ath9k_htc_sta_rc_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, u32 changed) ath9k_htc_sta_rc_update() argument
1364 ath9k_htc_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) ath9k_htc_conf_tx() argument
1409 ath9k_htc_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) ath9k_htc_set_key() argument
1502 ath9k_htc_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) ath9k_htc_bss_info_changed() argument
1610 ath9k_htc_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_htc_get_tsf() argument
1625 ath9k_htc_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u64 tsf) ath9k_htc_set_tsf() argument
1637 ath9k_htc_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_htc_reset_tsf() argument
1649 ath9k_htc_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) ath9k_htc_ampdu_action() argument
1694 ath9k_htc_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) ath9k_htc_sw_scan_start() argument
1710 ath9k_htc_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath9k_htc_sw_scan_complete() argument
1749 ath9k_htc_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const struct cfg80211_bitrate_mask *mask) ath9k_htc_set_bitrate_mask() argument
H A Dchannel.c157 struct ieee80211_vif *vif; ath_is_go_chanctx_present() local
166 vif = avp->vif; ath_for_each_chanctx()
168 if (ieee80211_vif_type_p2p(vif) == NL80211_IFTYPE_P2P_GO) { ath_for_each_chanctx()
263 struct ieee80211_vif *vif = avp->vif; ath_chanctx_check_active() local
265 switch (vif->type) { ath_chanctx_check_active()
474 void ath_chanctx_event(struct ath_softc *sc, struct ieee80211_vif *vif, ath_chanctx_event() argument
485 if (vif) ath_chanctx_event()
486 avp = (struct ath_vif *) vif->drv_priv; ath_chanctx_event()
558 ath_dbg(common, CHAN_CTX, "Preparing beacon for vif: %pM\n", vif->addr); ath_chanctx_event()
891 struct ieee80211_vif *vif; ath_offchannel_next() local
894 vif = sc->offchannel.scan_vif; ath_offchannel_next()
895 sc->offchannel.chan.txpower = vif->bss_conf.txpower; ath_offchannel_next()
898 vif = sc->offchannel.roc_vif; ath_offchannel_next()
899 sc->offchannel.chan.txpower = vif->bss_conf.txpower; ath_offchannel_next()
960 struct ieee80211_vif *vif = sc->offchannel.scan_vif; ath_scan_send_probe() local
966 skb = ieee80211_probereq_get(sc->hw, vif->addr, ath_scan_send_probe()
980 if (!ieee80211_tx_prepare_skb(sc->hw, vif, skb, band, NULL)) ath_scan_send_probe()
1072 struct ieee80211_vif *vif = avp->vif; ath_chanctx_send_vif_ps_frame() local
1079 switch (vif->type) { ath_chanctx_send_vif_ps_frame()
1084 skb = ieee80211_nullfunc_get(sc->hw, vif); ath_chanctx_send_vif_ps_frame()
1094 if (!ieee80211_tx_prepare_skb(sc->hw, vif, skb, band, &sta)) { ath_chanctx_send_vif_ps_frame()
1415 static void ath9k_update_p2p_ps(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_update_p2p_ps() argument
1417 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_update_p2p_ps()
1423 if (vif->type != NL80211_IFTYPE_STATION || !vif->p2p) ath9k_update_p2p_ps()
1428 ieee80211_parse_p2p_noa(&vif->bss_conf.p2p_noa_attr, &avp->noa, tsf); ath9k_update_p2p_ps()
1446 ctwin = avp->vif->bss_conf.p2p_noa_attr.oppps_ctwindow; ath9k_get_ctwin()
1515 struct ieee80211_vif *vif; ath9k_p2p_ps_timer() local
1539 vif = avp->vif; ath9k_p2p_ps_timer()
1540 sta = ieee80211_find_sta(vif, avp->bssid); ath9k_p2p_ps_timer()
1559 struct ieee80211_vif *vif) ath9k_p2p_bss_info_changed()
1566 ath9k_update_p2p_ps(sc, vif); ath9k_p2p_bss_info_changed()
1574 ath9k_update_p2p_ps(sc, sc->p2p_ps_vif->vif); ath9k_p2p_beacon_sync()
1578 struct ieee80211_vif *vif) ath9k_p2p_remove_vif()
1580 struct ath_vif *avp = (void *)vif->drv_priv; ath9k_p2p_remove_vif()
1558 ath9k_p2p_bss_info_changed(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_p2p_bss_info_changed() argument
1577 ath9k_p2p_remove_vif(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_p2p_remove_vif() argument
H A Ddebug.h258 struct ieee80211_vif *vif, int sset);
260 struct ieee80211_vif *vif,
263 struct ieee80211_vif *vif,
266 struct ieee80211_vif *vif,
H A Dhtc.h366 struct ieee80211_vif *vif,
369 struct ieee80211_vif *vif, int sset);
371 struct ieee80211_vif *vif,
544 struct ieee80211_vif *vif);
546 struct ieee80211_vif *vif);
548 struct ieee80211_vif *vif);
551 struct ieee80211_vif *vif);
H A Dath9k.h262 struct ieee80211_vif *vif; /* interface with which we're associated */ member in struct:ath_node
454 struct ieee80211_vif *vif);
457 struct ieee80211_vif *vif);
469 void ath_chanctx_event(struct ath_softc *sc, struct ieee80211_vif *vif,
504 struct ieee80211_vif *vif, ath_chanctx_event()
516 struct ieee80211_vif *vif) ath9k_p2p_remove_vif()
523 struct ieee80211_vif *vif) ath9k_p2p_bss_info_changed()
572 void ath_tx_cabq(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
606 struct ieee80211_vif *vif; member in struct:ath_vif
629 u8 hw_macaddr[ETH_ALEN]; /* address of the first vif */
648 void ath9k_set_txpower(struct ath_softc *sc, struct ieee80211_vif *vif);
688 void ath9k_beacon_config(struct ath_softc *sc, struct ieee80211_vif *vif,
690 void ath9k_beacon_assign_slot(struct ath_softc *sc, struct ieee80211_vif *vif);
691 void ath9k_beacon_remove_slot(struct ath_softc *sc, struct ieee80211_vif *vif);
693 bool ath9k_csa_is_finished(struct ath_softc *sc, struct ieee80211_vif *vif);
503 ath_chanctx_event(struct ath_softc *sc, struct ieee80211_vif *vif, enum ath_chanctx_event ev) ath_chanctx_event() argument
515 ath9k_p2p_remove_vif(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_p2p_remove_vif() argument
522 ath9k_p2p_bss_info_changed(struct ath_softc *sc, struct ieee80211_vif *vif) ath9k_p2p_bss_info_changed() argument
H A Dhtc_drv_txrx.c261 struct ieee80211_vif *vif, ath9k_htc_tx_data()
312 (vif && vif->bss_conf.use_cts_prot)) ath9k_htc_tx_data()
342 struct ieee80211_vif *vif = tx_info->control.vif; ath9k_htc_tx_start() local
353 if (vif) { ath9k_htc_tx_start()
354 avp = (struct ath9k_htc_vif *) vif->drv_priv; ath9k_htc_tx_start()
377 ath9k_htc_tx_data(priv, vif, skb, ath9k_htc_tx_start()
401 struct ieee80211_vif *vif, ath9k_htc_check_tx_aggr()
413 sta = ieee80211_find_sta(vif, hdr->addr1); ath9k_htc_check_tx_aggr()
444 struct ieee80211_vif *vif; ath9k_htc_tx_process() local
462 vif = tx_info->control.vif; ath9k_htc_tx_process()
471 if (!txok || !vif || !txs) ath9k_htc_tx_process()
501 ath9k_htc_check_tx_aggr(priv, vif, skb); ath9k_htc_tx_process()
260 ath9k_htc_tx_data(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif, struct sk_buff *skb, u8 sta_idx, u8 vif_idx, u8 slot, bool is_cab) ath9k_htc_tx_data() argument
400 ath9k_htc_check_tx_aggr(struct ath9k_htc_priv *priv, struct ieee80211_vif *vif, struct sk_buff *skb) ath9k_htc_check_tx_aggr() argument
H A Dxmit.c111 struct ath_vif *avp = (struct ath_vif *) tid->an->vif->drv_priv; ath_tx_queue_tid()
145 ieee80211_send_bar(tid->an->vif, tid->an->sta->addr, tid->tidno, ath_send_bar()
149 static void ath_set_rates(struct ieee80211_vif *vif, struct ieee80211_sta *sta, ath_set_rates() argument
152 ieee80211_get_tx_rates(vif, sta, bf->bf_mpdu, bf->rates, ath_set_rates()
1433 ath_set_rates(tid->an->vif, tid->an->sta, bf); ath_tx_form_burst()
1464 ath_set_rates(tid->an->vif, tid->an->sta, bf); ath_tx_sched_aggr()
1656 ath_set_rates(tid->an->vif, tid->an->sta, bf); ath9k_release_buffered_frames()
2126 if (tx_info->control.vif && setup_frame_info()
2127 tx_info->control.vif->bss_conf.use_short_preamble) setup_frame_info()
2136 if (tx_info->control.vif) { setup_frame_info()
2137 struct ieee80211_vif *vif = tx_info->control.vif; setup_frame_info() local
2139 txpower = 2 * vif->bss_conf.txpower; setup_frame_info()
2240 struct ieee80211_vif *vif = info->control.vif; ath_assign_seq() local
2246 if (!vif) ath_assign_seq()
2249 avp = (struct ath_vif *)vif->drv_priv; ath_assign_seq()
2264 struct ieee80211_vif *vif = info->control.vif; ath_tx_prepare() local
2273 else if (vif && ieee80211_is_data(hdr->frame_control)) { ath_tx_prepare()
2274 avp = (void *)vif->drv_priv; ath_tx_prepare()
2283 if ((vif && vif->type != NL80211_IFTYPE_AP && ath_tx_prepare()
2284 vif->type != NL80211_IFTYPE_AP_VLAN) || ath_tx_prepare()
2311 struct ieee80211_vif *vif = info->control.vif; ath_tx_start() local
2321 if (vif) ath_tx_start()
2322 avp = (void *)vif->drv_priv; ath_tx_start()
2335 * At this point, the vif, hw_key and sta pointers in the tx control ath_tx_start()
2409 ath_set_rates(vif, sta, bf); ath_tx_start()
2418 void ath_tx_cabq(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ath_tx_cabq() argument
2448 ath_set_rates(vif, NULL, bf); ath_tx_cabq()
2461 skb = ieee80211_get_buffered_bc(hw, vif); ath_tx_cabq()
H A Dhtc_drv_debug.c427 struct ieee80211_vif *vif, ath9k_htc_get_et_strings()
436 struct ieee80211_vif *vif, int sset) ath9k_htc_get_et_sset_count()
454 struct ieee80211_vif *vif, ath9k_htc_get_et_stats()
426 ath9k_htc_get_et_strings(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 sset, u8 *data) ath9k_htc_get_et_strings() argument
435 ath9k_htc_get_et_sset_count(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int sset) ath9k_htc_get_et_sset_count() argument
453 ath9k_htc_get_et_stats(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ethtool_stats *stats, u64 *data) ath9k_htc_get_et_stats() argument
/linux-4.1.27/drivers/net/wireless/brcm80211/brcmfmac/
H A Dp2p.c468 struct brcmf_if *pri_ifp = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif->ifp; brcmf_p2p_generate_bss_mac()
549 struct brcmf_cfg80211_vif *vif; brcmf_p2p_deinit_discovery() local
554 vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_p2p_deinit_discovery()
555 (void)brcmf_p2p_set_discover_state(vif->ifp, WL_P2P_DISC_ST_SCAN, 0, 0); brcmf_p2p_deinit_discovery()
558 vif = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif; brcmf_p2p_deinit_discovery()
559 (void)brcmf_fil_iovar_int_set(vif->ifp, "p2p_disc", 0); brcmf_p2p_deinit_discovery()
573 struct brcmf_cfg80211_vif *vif; brcmf_p2p_enable_discovery() local
577 vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_p2p_enable_discovery()
578 if (!vif) { brcmf_p2p_enable_discovery()
590 vif = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif; brcmf_p2p_enable_discovery()
591 ret = brcmf_fil_iovar_int_set(vif->ifp, "p2p_disc", 1); brcmf_p2p_enable_discovery()
596 vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_p2p_enable_discovery()
597 ret = brcmf_p2p_set_discover_state(vif->ifp, WL_P2P_DISC_ST_SCAN, 0, 0); brcmf_p2p_enable_discovery()
609 ret = brcmf_fil_bsscfg_int_set(vif->ifp, "wsec", AES_ENABLED); brcmf_p2p_enable_discovery()
641 struct brcmf_cfg80211_vif *vif; brcmf_p2p_escan() local
651 vif = p2p->bss_idx[bss_type].vif; brcmf_p2p_escan()
652 if (vif == NULL) { brcmf_p2p_escan()
653 brcmf_err("no vif for bss type %d\n", bss_type); brcmf_p2p_escan()
684 brcmf_p2p_set_discover_state(vif->ifp, search_state, 0, 0); brcmf_p2p_escan()
747 ret = brcmf_fil_bsscfg_data_set(vif->ifp, "p2p_scan", memblk, memsize); brcmf_p2p_escan()
774 struct brcmf_cfg80211_vif *vif; brcmf_p2p_run_escan() local
793 vif = p2p->bss_idx[P2PAPI_BSSCFG_CONNECTION].vif; brcmf_p2p_run_escan()
794 if (vif) brcmf_p2p_run_escan()
795 dev = vif->wdev.netdev; brcmf_p2p_run_escan()
804 vif->wdev.iftype == NL80211_IFTYPE_P2P_GO) { brcmf_p2p_run_escan()
880 * @vif: vif on which scan request is to be executed.
887 struct brcmf_cfg80211_vif *vif) brcmf_p2p_scan_prep()
909 vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_p2p_scan_prep()
914 err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_PRBREQ_FLAG, brcmf_p2p_scan_prep()
931 struct brcmf_cfg80211_vif *vif; brcmf_p2p_discover_listen() local
935 vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_p2p_discover_listen()
936 if (!vif) { brcmf_p2p_discover_listen()
951 err = brcmf_p2p_set_discover_state(vif->ifp, WL_P2P_DISC_ST_LISTEN, brcmf_p2p_discover_listen()
1025 cfg80211_remain_on_channel_expired(&ifp->vif->wdev, brcmf_p2p_notify_listen_complete()
1154 pri_vif = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif; brcmf_p2p_af_searching_channel()
1319 ifp = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif->ifp; brcmf_p2p_gon_req_collision()
1372 brcmf_dbg(INFO, "ifp->vif->mgmt_rx_reg %04x\n", ifp->vif->mgmt_rx_reg); brcmf_p2p_notify_action_frame_rx()
1374 if ((ifp->vif->mgmt_rx_reg & BIT(mgmt_type)) == 0) brcmf_p2p_notify_action_frame_rx()
1436 wdev = &ifp->vif->wdev; brcmf_p2p_notify_action_frame_rx()
1489 * @p2p: p2p info struct for vif.
1501 struct brcmf_cfg80211_vif *vif; brcmf_p2p_tx_action_frame() local
1511 vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_p2p_tx_action_frame()
1512 err = brcmf_fil_bsscfg_data_set(vif->ifp, "actframe", af_params, brcmf_p2p_tx_action_frame()
1729 &p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif->sme_state)) brcmf_p2p_send_action_frame()
1753 p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif->saved_ie.probe_req_ie_len) { brcmf_p2p_send_action_frame()
1854 struct brcmf_cfg80211_vif *vif = ifp->vif; brcmf_p2p_notify_rx_mgmt_p2p_probereq() local
1889 brcmf_dbg(INFO, "vif->mgmt_rx_reg %04x\n", vif->mgmt_rx_reg); brcmf_p2p_notify_rx_mgmt_p2p_probereq()
1891 if ((vif->mgmt_rx_reg & BIT(mgmt_type)) == 0) brcmf_p2p_notify_rx_mgmt_p2p_probereq()
1901 cfg80211_rx_mgmt(&vif->wdev, freq, 0, mgmt_frame, mgmt_frame_len, 0); brcmf_p2p_notify_rx_mgmt_p2p_probereq()
1933 p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif = pri_ifp->vif; brcmf_p2p_attach()
1939 brcmf_err("could not create discovery vif\n"); brcmf_p2p_attach()
1945 p2p_ifp->vif = p2p_vif; brcmf_p2p_attach()
1950 p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif = p2p_vif; brcmf_p2p_attach()
1995 struct brcmf_cfg80211_vif *vif; brcmf_p2p_detach() local
1997 vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_p2p_detach()
1998 if (vif != NULL) { brcmf_p2p_detach()
1999 brcmf_p2p_cancel_remain_on_channel(vif->ifp); brcmf_p2p_detach()
2002 brcmf_free_vif(vif); brcmf_p2p_detach()
2003 p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif = NULL; brcmf_p2p_detach()
2024 ifp = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif->ifp; brcmf_p2p_get_current_chanspec()
2058 struct brcmf_cfg80211_vif *vif; brcmf_p2p_ifchange() local
2065 vif = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif; brcmf_p2p_ifchange()
2066 if (!vif) { brcmf_p2p_ifchange()
2067 brcmf_err("vif for P2PAPI_BSSCFG_PRIMARY does not exist\n"); brcmf_p2p_ifchange()
2070 brcmf_notify_escan_complete(cfg, vif->ifp, true, true); brcmf_p2p_ifchange()
2071 vif = p2p->bss_idx[P2PAPI_BSSCFG_CONNECTION].vif; brcmf_p2p_ifchange()
2072 if (!vif) { brcmf_p2p_ifchange()
2073 brcmf_err("vif for P2PAPI_BSSCFG_CONNECTION does not exist\n"); brcmf_p2p_ifchange()
2076 brcmf_set_mpc(vif->ifp, 0); brcmf_p2p_ifchange()
2087 brcmf_cfg80211_arm_vif_event(cfg, vif); brcmf_p2p_ifchange()
2088 err = brcmf_fil_iovar_data_set(vif->ifp, "p2p_ifupd", &if_request, brcmf_p2p_ifchange()
2103 err = brcmf_fil_cmd_int_set(vif->ifp, BRCMF_C_SET_SCB_TIMEOUT, brcmf_p2p_ifchange()
2133 static int brcmf_p2p_disable_p2p_if(struct brcmf_cfg80211_vif *vif) brcmf_p2p_disable_p2p_if() argument
2135 struct brcmf_cfg80211_info *cfg = wdev_to_cfg(&vif->wdev); brcmf_p2p_disable_p2p_if()
2138 u8 *addr = vif->wdev.netdev->dev_addr; brcmf_p2p_disable_p2p_if()
2143 static int brcmf_p2p_release_p2p_if(struct brcmf_cfg80211_vif *vif) brcmf_p2p_release_p2p_if() argument
2145 struct brcmf_cfg80211_info *cfg = wdev_to_cfg(&vif->wdev); brcmf_p2p_release_p2p_if()
2148 u8 *addr = vif->wdev.netdev->dev_addr; brcmf_p2p_release_p2p_if()
2170 if (p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif) brcmf_p2p_create_p2pdev()
2176 brcmf_err("could not create discovery vif\n"); brcmf_p2p_create_p2pdev()
2180 pri_ifp = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif->ifp; brcmf_p2p_create_p2pdev()
2206 p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif = p2p_vif; brcmf_p2p_create_p2pdev()
2234 * @vif: virtual interface object to delete.
2237 struct brcmf_cfg80211_vif *vif) brcmf_p2p_delete_p2pdev()
2239 cfg80211_unregister_wdev(&vif->wdev); brcmf_p2p_delete_p2pdev()
2240 p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif = NULL; brcmf_p2p_delete_p2pdev()
2241 brcmf_free_vif(vif); brcmf_p2p_delete_p2pdev()
2261 struct brcmf_cfg80211_vif *vif; brcmf_p2p_add_vif() local
2268 brcmf_dbg(INFO, "adding vif \"%s\" (type=%d)\n", name, type); brcmf_p2p_add_vif()
2284 vif = brcmf_alloc_vif(cfg, type, false); brcmf_p2p_add_vif()
2285 if (IS_ERR(vif)) brcmf_p2p_add_vif()
2286 return (struct wireless_dev *)vif; brcmf_p2p_add_vif()
2287 brcmf_cfg80211_arm_vif_event(cfg, vif); brcmf_p2p_add_vif()
2307 ifp = vif->ifp; brcmf_p2p_add_vif()
2322 cfg->p2p.bss_idx[P2PAPI_BSSCFG_CONNECTION].vif = vif; brcmf_p2p_add_vif()
2330 return &ifp->vif->wdev; brcmf_p2p_add_vif()
2333 brcmf_free_vif(vif); brcmf_p2p_add_vif()
2347 struct brcmf_cfg80211_vif *vif; brcmf_p2p_del_vif() local
2352 brcmf_dbg(TRACE, "delete P2P vif\n"); brcmf_p2p_del_vif()
2353 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_p2p_del_vif()
2355 switch (vif->wdev.iftype) { brcmf_p2p_del_vif()
2357 if (test_bit(BRCMF_VIF_STATUS_DISCONNECTING, &vif->sme_state)) brcmf_p2p_del_vif()
2362 if (!brcmf_p2p_disable_p2p_if(vif)) brcmf_p2p_del_vif()
2367 brcmf_p2p_delete_p2pdev(p2p, vif); brcmf_p2p_del_vif()
2380 brcmf_vif_clear_mgmt_ies(vif); brcmf_p2p_del_vif()
2382 brcmf_cfg80211_arm_vif_event(cfg, vif); brcmf_p2p_del_vif()
2383 err = brcmf_p2p_release_p2p_if(vif); brcmf_p2p_del_vif()
2394 p2p->bss_idx[P2PAPI_BSSCFG_CONNECTION].vif = NULL; brcmf_p2p_del_vif()
2403 struct brcmf_cfg80211_vif *vif; brcmf_p2p_start_device() local
2406 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_p2p_start_device()
2410 set_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state); brcmf_p2p_start_device()
2419 struct brcmf_cfg80211_vif *vif; brcmf_p2p_stop_device() local
2421 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_p2p_stop_device()
2425 clear_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state); brcmf_p2p_stop_device()
885 brcmf_p2p_scan_prep(struct wiphy *wiphy, struct cfg80211_scan_request *request, struct brcmf_cfg80211_vif *vif) brcmf_p2p_scan_prep() argument
2236 brcmf_p2p_delete_p2pdev(struct brcmf_p2p_info *p2p, struct brcmf_cfg80211_vif *vif) brcmf_p2p_delete_p2pdev() argument
H A Dcfg80211.c99 static bool check_vif_up(struct brcmf_cfg80211_vif *vif) check_vif_up() argument
101 if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state)) { check_vif_up()
103 vif->sme_state); check_vif_up()
508 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_update_proto_addr_mode() local
511 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_cfg80211_update_proto_addr_mode()
512 ifp = vif->ifp; brcmf_cfg80211_update_proto_addr_mode()
561 struct brcmf_cfg80211_vif *vif; brcmf_ap_add_vif() local
567 brcmf_dbg(INFO, "Adding vif \"%s\"\n", name); brcmf_ap_add_vif()
569 vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_AP, false); brcmf_ap_add_vif()
570 if (IS_ERR(vif)) brcmf_ap_add_vif()
571 return (struct wireless_dev *)vif; brcmf_ap_add_vif()
573 brcmf_cfg80211_arm_vif_event(cfg, vif); brcmf_ap_add_vif()
592 ifp = vif->ifp; brcmf_ap_add_vif()
606 return &ifp->vif->wdev; brcmf_ap_add_vif()
609 brcmf_free_vif(vif); brcmf_ap_add_vif()
613 static bool brcmf_is_apmode(struct brcmf_cfg80211_vif *vif) brcmf_is_apmode() argument
617 iftype = vif->wdev.iftype; brcmf_is_apmode()
621 static bool brcmf_is_ibssmode(struct brcmf_cfg80211_vif *vif) brcmf_is_ibssmode() argument
623 return vif->wdev.iftype == NL80211_IFTYPE_ADHOC; brcmf_is_ibssmode()
672 if (check_vif_up(ifp->vif)) { brcmf_set_mpc()
749 /* vif event pending in firmware */ brcmf_cfg80211_del_iface()
789 struct brcmf_cfg80211_vif *vif = ifp->vif; brcmf_cfg80211_change_iface() local
807 if ((vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT) || brcmf_cfg80211_change_iface()
808 (vif->wdev.iftype == NL80211_IFTYPE_P2P_GO)) { brcmf_cfg80211_change_iface()
835 set_bit(BRCMF_VIF_STATUS_AP_CREATING, &vif->sme_state); brcmf_cfg80211_change_iface()
845 brcmf_dbg(INFO, "IF Type = %s\n", brcmf_is_ibssmode(vif) ? brcmf_cfg80211_change_iface()
850 brcmf_cfg80211_update_proto_addr_mode(&vif->wdev); brcmf_cfg80211_change_iface()
1015 brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif, brcmf_cfg80211_escan() argument
1019 struct brcmf_if *ifp = vif->ifp; brcmf_cfg80211_escan()
1045 if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state)) { brcmf_cfg80211_escan()
1046 brcmf_err("Connecting: status (%lu)\n", ifp->vif->sme_state); brcmf_cfg80211_escan()
1051 if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif) brcmf_cfg80211_escan()
1052 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif; brcmf_cfg80211_escan()
1069 err = brcmf_p2p_scan_prep(wiphy, request, vif); brcmf_cfg80211_escan()
1073 err = brcmf_do_escan(cfg, wiphy, vif->ifp, request); brcmf_cfg80211_escan()
1127 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_scan() local
1131 vif = container_of(request->wdev, struct brcmf_cfg80211_vif, wdev); brcmf_cfg80211_scan()
1132 if (!check_vif_up(vif)) brcmf_cfg80211_scan()
1135 err = brcmf_cfg80211_escan(wiphy, vif, request, NULL); brcmf_cfg80211_scan()
1189 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_set_wiphy_params()
1249 static void brcmf_link_down(struct brcmf_cfg80211_vif *vif, u16 reason) brcmf_link_down() argument
1251 struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(vif->wdev.wiphy); brcmf_link_down()
1256 if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &vif->sme_state)) { brcmf_link_down()
1258 err = brcmf_fil_cmd_data_set(vif->ifp, brcmf_link_down()
1263 clear_bit(BRCMF_VIF_STATUS_CONNECTED, &vif->sme_state); brcmf_link_down()
1264 cfg80211_disconnected(vif->wdev.netdev, reason, NULL, 0, brcmf_link_down()
1268 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &vif->sme_state); brcmf_link_down()
1270 brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_ENABLED, 0); brcmf_link_down()
1280 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; brcmf_cfg80211_join_ibss()
1289 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_join_ibss()
1299 set_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); brcmf_cfg80211_join_ibss()
1421 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); brcmf_cfg80211_join_ibss()
1432 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_leave_ibss()
1435 brcmf_link_down(ifp->vif, WLAN_REASON_DEAUTH_LEAVING); brcmf_cfg80211_leave_ibss()
1724 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; brcmf_cfg80211_connect()
1737 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_connect()
1745 if (ifp->vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif) { brcmf_cfg80211_connect()
1767 err = brcmf_vif_set_mgmt_ie(ifp->vif, BRCMF_VNDR_IE_ASSOCREQ_FLAG, brcmf_cfg80211_connect()
1774 set_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); brcmf_cfg80211_connect()
1911 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); brcmf_cfg80211_connect()
1921 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; brcmf_cfg80211_disconnect()
1926 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_disconnect()
1929 clear_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state); brcmf_cfg80211_disconnect()
1930 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); brcmf_cfg80211_disconnect()
1958 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_set_tx_power()
2005 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_get_tx_power()
2033 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_config_default_key()
2086 if (!brcmf_is_apmode(ifp->vif) && brcmf_add_keyext()
2151 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_add_key()
2167 key = &ifp->vif->profile.key[key_idx]; brcmf_cfg80211_add_key()
2193 if (!brcmf_is_apmode(ifp->vif)) { brcmf_cfg80211_add_key()
2249 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_del_key()
2279 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; brcmf_cfg80211_get_key()
2286 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_get_key()
2343 key = &ifp->vif->profile.key[key_idx]; brcmf_cfg80211_reconfigure_wep()
2372 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; brcmf_cfg80211_get_station()
2383 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_get_station()
2386 if (brcmf_is_apmode(ifp->vif)) { brcmf_cfg80211_get_station()
2403 } else if (ifp->vif->wdev.iftype == NL80211_IFTYPE_STATION) { brcmf_cfg80211_get_station()
2422 &ifp->vif->sme_state)) { brcmf_cfg80211_get_station()
2486 if (!check_vif_up(ifp->vif)) { brcmf_cfg80211_set_power_mgmt()
2494 if (ifp->vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT) { brcmf_cfg80211_set_power_mgmt()
2704 if (brcmf_is_ibssmode(ifp->vif)) brcmf_update_bss_info()
3038 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_suspend() local
3045 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_suspend()
3054 list_for_each_entry(vif, &cfg->vif_list, list) { brcmf_cfg80211_suspend()
3055 if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state)) brcmf_cfg80211_suspend()
3061 brcmf_link_down(vif, WLAN_REASON_UNSPECIFIED); brcmf_cfg80211_suspend()
3119 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_set_pmksa()
3158 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_del_pmksa()
3207 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_flush_pmksa()
3769 s32 brcmf_vif_set_mgmt_ie(struct brcmf_cfg80211_vif *vif, s32 pktflag, brcmf_vif_set_mgmt_ie() argument
3790 if (!vif) brcmf_vif_set_mgmt_ie()
3792 ifp = vif->ifp; brcmf_vif_set_mgmt_ie()
3793 saved_ie = &vif->saved_ie; brcmf_vif_set_mgmt_ie()
3930 s32 brcmf_vif_clear_mgmt_ies(struct brcmf_cfg80211_vif *vif) brcmf_vif_clear_mgmt_ies() argument
3940 brcmf_vif_set_mgmt_ie(vif, pktflags[i], NULL, 0); brcmf_vif_clear_mgmt_ies()
3942 memset(&vif->saved_ie, 0, sizeof(vif->saved_ie)); brcmf_vif_clear_mgmt_ies()
3947 brcmf_config_ap_mgmt_ie(struct brcmf_cfg80211_vif *vif, brcmf_config_ap_mgmt_ie() argument
3953 err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_BEACON_FLAG, brcmf_config_ap_mgmt_ie()
3962 err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_PRBRSP_FLAG, brcmf_config_ap_mgmt_ie()
4000 dev_role = ifp->vif->wdev.iftype; brcmf_cfg80211_start_ap()
4001 mbss = ifp->vif->mbss; brcmf_cfg80211_start_ap()
4004 brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_REGULATORY, &ifp->vif->is_11d); brcmf_cfg80211_start_ap()
4063 brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon); brcmf_cfg80211_start_ap()
4075 if (is_11d != ifp->vif->is_11d) { brcmf_cfg80211_start_ap()
4115 } else if (WARN_ON(is_11d != ifp->vif->is_11d)) { brcmf_cfg80211_start_ap()
4168 clear_bit(BRCMF_VIF_STATUS_AP_CREATING, &ifp->vif->sme_state); brcmf_cfg80211_start_ap()
4169 set_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); brcmf_cfg80211_start_ap()
4188 if (ifp->vif->wdev.iftype == NL80211_IFTYPE_AP) { brcmf_cfg80211_stop_ap()
4193 if (ifp->vif->mbss) { brcmf_cfg80211_stop_ap()
4215 ifp->vif->is_11d); brcmf_cfg80211_stop_ap()
4233 set_bit(BRCMF_VIF_STATUS_AP_CREATING, &ifp->vif->sme_state); brcmf_cfg80211_stop_ap()
4234 clear_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); brcmf_cfg80211_stop_ap()
4248 err = brcmf_config_ap_mgmt_ie(ifp->vif, info); brcmf_cfg80211_change_beacon()
4267 if (ifp->vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif) brcmf_cfg80211_del_station()
4268 ifp = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif->ifp; brcmf_cfg80211_del_station()
4269 if (!check_vif_up(ifp->vif)) brcmf_cfg80211_del_station()
4317 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_mgmt_frame_register() local
4323 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_cfg80211_mgmt_frame_register()
4325 vif->mgmt_rx_reg |= BIT(mgmt_type); brcmf_cfg80211_mgmt_frame_register()
4327 vif->mgmt_rx_reg &= ~BIT(mgmt_type); brcmf_cfg80211_mgmt_frame_register()
4340 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_mgmt_tx() local
4361 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_cfg80211_mgmt_tx()
4368 /* vif. Since this is only reason for a probe */ brcmf_cfg80211_mgmt_tx()
4369 /* response to be sent, the vif is taken from cfg. */ brcmf_cfg80211_mgmt_tx()
4378 if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif) brcmf_cfg80211_mgmt_tx()
4379 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_cfg80211_mgmt_tx()
4380 err = brcmf_vif_set_mgmt_ie(vif, brcmf_cfg80211_mgmt_tx()
4407 brcmf_fil_cmd_int_get(vif->ifp, BRCMF_C_GET_CHANNEL, brcmf_cfg80211_mgmt_tx()
4440 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_cancel_remain_on_channel() local
4445 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif; brcmf_cfg80211_cancel_remain_on_channel()
4446 if (vif == NULL) { brcmf_cfg80211_cancel_remain_on_channel()
4451 brcmf_p2p_cancel_remain_on_channel(vif->ifp); brcmf_cfg80211_cancel_remain_on_channel()
4462 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_crit_proto_start() local
4464 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_cfg80211_crit_proto_start()
4474 return brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_DISABLED, duration); brcmf_cfg80211_crit_proto_start()
4481 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_crit_proto_stop() local
4483 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_cfg80211_crit_proto_stop()
4485 brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_ENABLED, 0); brcmf_cfg80211_crit_proto_stop()
4604 struct brcmf_cfg80211_vif *vif; brcmf_alloc_vif() local
4608 sizeof(*vif)); brcmf_alloc_vif()
4609 vif = kzalloc(sizeof(*vif), GFP_KERNEL); brcmf_alloc_vif()
4610 if (!vif) brcmf_alloc_vif()
4613 vif->wdev.wiphy = cfg->wiphy; brcmf_alloc_vif()
4614 vif->wdev.iftype = type; brcmf_alloc_vif()
4616 vif->pm_block = pm_block; brcmf_alloc_vif()
4617 vif->roam_off = -1; brcmf_alloc_vif()
4619 brcmf_init_prof(&vif->profile); brcmf_alloc_vif()
4629 vif->mbss = mbss; brcmf_alloc_vif()
4632 list_add_tail(&vif->list, &cfg->vif_list); brcmf_alloc_vif()
4633 return vif; brcmf_alloc_vif()
4636 void brcmf_free_vif(struct brcmf_cfg80211_vif *vif) brcmf_free_vif() argument
4638 list_del(&vif->list); brcmf_free_vif()
4639 kfree(vif); brcmf_free_vif()
4644 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_free_netdev() local
4648 vif = ifp->vif; brcmf_cfg80211_free_netdev()
4650 brcmf_free_vif(vif); brcmf_cfg80211_free_netdev()
4778 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; brcmf_bss_roaming_done()
4828 set_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state); brcmf_bss_roaming_done()
4839 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; brcmf_bss_connect_done()
4845 &ifp->vif->sme_state)) { brcmf_bss_connect_done()
4851 &ifp->vif->sme_state); brcmf_bss_connect_done()
4885 if (ifp->vif->mbss) brcmf_notify_connect_status_ap()
4916 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; brcmf_notify_connect_status()
4927 if (brcmf_is_apmode(ifp->vif)) { brcmf_notify_connect_status()
4931 if (brcmf_is_ibssmode(ifp->vif)) { brcmf_notify_connect_status()
4937 &ifp->vif->sme_state); brcmf_notify_connect_status()
4939 &ifp->vif->sme_state); brcmf_notify_connect_status()
4944 if (!brcmf_is_ibssmode(ifp->vif)) { brcmf_notify_connect_status()
4947 brcmf_link_down(ifp->vif, brcmf_map_fw_linkdown_reason(e)); brcmf_notify_connect_status()
4952 if (brcmf_is_ibssmode(ifp->vif)) brcmf_notify_connect_status()
4954 &ifp->vif->sme_state); brcmf_notify_connect_status()
4971 if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state)) brcmf_notify_roaming_status()
5004 struct brcmf_cfg80211_vif *vif; brcmf_notify_vif_event() local
5012 vif = event->vif; brcmf_notify_vif_event()
5017 if (!cfg->vif_event.vif) { brcmf_notify_vif_event()
5022 ifp->vif = vif; brcmf_notify_vif_event()
5023 vif->ifp = ifp; brcmf_notify_vif_event()
5025 vif->wdev.netdev = ifp->ndev; brcmf_notify_vif_event()
5026 ifp->ndev->ieee80211_ptr = &vif->wdev; brcmf_notify_vif_event()
5874 set_bit(BRCMF_VIF_STATUS_READY, &ifp->vif->sme_state); __brcmf_cfg80211_up()
5887 if (check_vif_up(ifp->vif)) { __brcmf_cfg80211_down()
5888 brcmf_link_down(ifp->vif, WLAN_REASON_UNSPECIFIED); __brcmf_cfg80211_down()
5898 clear_bit(BRCMF_VIF_STATUS_READY, &ifp->vif->sme_state); __brcmf_cfg80211_down()
5931 struct wireless_dev *wdev = &ifp->vif->wdev; brcmf_cfg80211_get_iftype()
5939 struct brcmf_cfg80211_vif *vif; brcmf_get_vif_state_any() local
5941 list_for_each_entry(vif, &cfg->vif_list, list) { brcmf_get_vif_state_any()
5942 if (test_bit(state, &vif->sme_state)) brcmf_get_vif_state_any()
5960 struct brcmf_cfg80211_vif *vif) brcmf_cfg80211_arm_vif_event()
5965 event->vif = vif; brcmf_cfg80211_arm_vif_event()
5976 armed = event->vif != NULL; brcmf_cfg80211_vif_event_armed()
6033 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_attach() local
6058 vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_STATION, false); brcmf_cfg80211_attach()
6059 if (IS_ERR(vif)) brcmf_cfg80211_attach()
6062 vif->ifp = ifp; brcmf_cfg80211_attach()
6063 vif->wdev.netdev = ndev; brcmf_cfg80211_attach()
6064 ndev->ieee80211_ptr = &vif->wdev; brcmf_cfg80211_attach()
6070 brcmf_free_vif(vif); brcmf_cfg80211_attach()
6073 ifp->vif = vif; brcmf_cfg80211_attach()
6146 brcmf_free_vif(vif); brcmf_cfg80211_attach()
5959 brcmf_cfg80211_arm_vif_event(struct brcmf_cfg80211_info *cfg, struct brcmf_cfg80211_vif *vif) brcmf_cfg80211_arm_vif_event() argument
H A Dcfg80211.h140 * enum brcmf_vif_status - bit indices for vif status.
329 * @vif: virtual interface object related to the event.
335 struct brcmf_cfg80211_vif *vif; member in struct:brcmf_cfg80211_vif_event
370 * @vif_list: linked list of vif instances.
371 * @vif_cnt: number of vif instances.
372 * @vif_event: vif event signalling.
443 struct brcmf_cfg80211_vif *vif; cfg_to_ndev() local
444 vif = list_first_entry(&cfg->vif_list, struct brcmf_cfg80211_vif, list); cfg_to_ndev()
445 return vif->wdev.netdev; cfg_to_ndev()
456 return &ifp->vif->profile; ndev_to_prof()
462 return ifp->vif; ndev_to_vif()
481 void brcmf_free_vif(struct brcmf_cfg80211_vif *vif);
483 s32 brcmf_vif_set_mgmt_ie(struct brcmf_cfg80211_vif *vif, s32 pktflag,
485 s32 brcmf_vif_clear_mgmt_ies(struct brcmf_cfg80211_vif *vif);
493 struct brcmf_cfg80211_vif *vif);
H A Dbtcoex.c66 * @vif: interface for which request was done.
87 struct brcmf_cfg80211_vif *vif; member in struct:brcmf_btcoex_info
245 struct brcmf_if *ifp = btci->vif->ifp; btcmf_btcoex_save_part1()
269 ifp = btci->vif->ifp; brcmf_btcoex_restore_part1()
360 cfg80211_crit_proto_stopped(&btci->vif->wdev, GFP_KERNEL); brcmf_btcoex_handler()
362 btci->vif = NULL; brcmf_btcoex_handler()
425 struct brcmf_if *ifp = btci->vif->ifp; brcmf_btcoex_dhcp_start()
466 int brcmf_btcoex_set_mode(struct brcmf_cfg80211_vif *vif, brcmf_btcoex_set_mode() argument
469 struct brcmf_cfg80211_info *cfg = wiphy_priv(vif->wdev.wiphy); brcmf_btcoex_set_mode()
481 btci->vif = vif; brcmf_btcoex_set_mode()
489 vif == btci->vif) { brcmf_btcoex_set_mode()
H A Dp2p.h41 * @vif: virtual interface of this P2P bss.
45 struct brcmf_cfg80211_vif *vif; member in struct:p2p_bss
52 * @BRCMF_P2P_STATUS_IF_ADD: peer-to-peer vif add sent to dongle.
54 * @BRCMF_P2P_STATUS_IF_DELETING: peer-to-peer vif delete sent to dongle.
55 * @BRCMF_P2P_STATUS_IF_CHANGING: peer-to-peer vif change sent to dongle.
56 * @BRCMF_P2P_STATUS_IF_CHANGED: peer-to-peer vif change completed on dongle.
162 struct brcmf_cfg80211_vif *vif);
H A Dvendor.c34 struct brcmf_cfg80211_vif *vif; brcmf_cfg80211_vndr_cmds_dcmd_handler() local
47 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); brcmf_cfg80211_vndr_cmds_dcmd_handler()
48 ifp = vif->ifp; brcmf_cfg80211_vndr_cmds_dcmd_handler()
H A Dbtcoex.h26 int brcmf_btcoex_set_mode(struct brcmf_cfg80211_vif *vif,
H A Dcore.h163 * @vif: points to cfg80211 specific interface information.
179 struct brcmf_cfg80211_vif *vif; member in struct:brcmf_if
/linux-4.1.27/drivers/net/wireless/iwlwifi/dvm/
H A Dmac80211.c328 struct ieee80211_vif *vif, iwlagn_mac_set_rekey_data()
339 if (priv->contexts[IWL_RXON_CTX_BSS].vif != vif) iwlagn_mac_set_rekey_data()
369 if (!ctx->vif || ctx->vif->type != NL80211_IFTYPE_STATION || iwlagn_mac_suspend()
424 struct ieee80211_vif *vif; iwlagn_mac_resume() local
453 /* we'll clear ctx->vif during iwlagn_prepare_restart() */ iwlagn_mac_resume()
454 vif = ctx->vif; iwlagn_mac_resume()
483 ieee80211_report_wowlan_wakeup(vif, &wakeup, iwlagn_mac_resume()
522 if (resume_data.valid && priv->contexts[IWL_RXON_CTX_BSS].vif) { iwlagn_mac_resume()
547 ieee80211_report_wowlan_wakeup(vif, wakeup_report, GFP_KERNEL); iwlagn_mac_resume()
562 ieee80211_resume_disconnect(vif); iwlagn_mac_resume()
586 struct ieee80211_vif *vif, iwlagn_mac_update_tkip_key()
593 iwl_update_tkip_key(priv, vif, keyconf, sta, iv32, phase1key); iwlagn_mac_update_tkip_key()
597 struct ieee80211_vif *vif, iwlagn_mac_set_key()
602 struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv; iwlagn_mac_set_key()
632 if (vif->type == NL80211_IFTYPE_ADHOC && iwlagn_mac_set_key()
718 struct ieee80211_vif *vif, iwlagn_mac_ampdu_action()
753 ret = iwlagn_tx_agg_start(priv, vif, sta, tid, ssn); iwlagn_mac_ampdu_action()
758 ret = iwlagn_tx_agg_flush(priv, vif, sta, tid); iwlagn_mac_ampdu_action()
762 ret = iwlagn_tx_agg_stop(priv, vif, sta, tid); iwlagn_mac_ampdu_action()
775 iwl_send_lq_cmd(priv, iwl_rxon_ctx_from_vif(vif), iwlagn_mac_ampdu_action()
780 ret = iwlagn_tx_agg_oper(priv, vif, sta, tid, buf_size); iwlagn_mac_ampdu_action()
789 struct ieee80211_vif *vif, iwlagn_mac_sta_add()
794 struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv; iwlagn_mac_sta_add()
795 bool is_ap = vif->type == NL80211_IFTYPE_STATION; iwlagn_mac_sta_add()
804 if (vif->type == NL80211_IFTYPE_AP) iwlagn_mac_sta_add()
822 struct ieee80211_vif *vif, iwlagn_mac_sta_remove()
831 if (vif->type == NL80211_IFTYPE_STATION) { iwlagn_mac_sta_remove()
849 struct ieee80211_vif *vif, iwlagn_mac_sta_state()
855 struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv; iwlagn_mac_sta_state()
865 if (vif->type == NL80211_IFTYPE_STATION) { iwlagn_mac_sta_state()
886 ret = iwlagn_mac_sta_add(hw, vif, sta); iwlagn_mac_sta_state()
901 ret = iwlagn_mac_sta_remove(hw, vif, sta); iwlagn_mac_sta_state()
904 ret = iwlagn_mac_sta_add(hw, vif, sta); iwlagn_mac_sta_state()
944 struct ieee80211_vif *vif, iwlagn_mac_channel_switch()
1008 iwl_set_flags_for_band(priv, ctx, channel->band, ctx->vif); iwlagn_mac_channel_switch()
1019 ieee80211_chswitch_done(ctx->vif, false); iwlagn_mac_channel_switch()
1041 if (ctx->vif) iwl_chswitch_done()
1042 ieee80211_chswitch_done(ctx->vif, is_success); iwl_chswitch_done()
1095 static void iwlagn_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, iwlagn_mac_flush() argument
1134 struct ieee80211_vif *vif, iwlagn_mac_event_callback()
1173 struct ieee80211_vif *vif, u16 queue, iwlagn_mac_conf_tx()
1177 struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv; iwlagn_mac_conf_tx()
1235 struct ieee80211_vif *vif = ctx->vif; iwl_setup_interface() local
1245 priv->iw_mode = vif->type; iwl_setup_interface()
1257 vif->type == NL80211_IFTYPE_ADHOC) { iwl_setup_interface()
1268 vif->hw_queue[ac] = ctx->ac_to_queue[ac]; iwl_setup_interface()
1270 if (vif->type == NL80211_IFTYPE_AP) iwl_setup_interface()
1271 vif->cab_queue = ctx->mcast_queue; iwl_setup_interface()
1273 vif->cab_queue = IEEE80211_INVAL_HW_QUEUE; iwl_setup_interface()
1279 struct ieee80211_vif *vif) iwlagn_mac_add_interface()
1282 struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv; iwlagn_mac_add_interface()
1285 enum nl80211_iftype viftype = ieee80211_vif_type_p2p(vif); iwlagn_mac_add_interface()
1289 viftype, vif->addr); iwlagn_mac_add_interface()
1303 if (tmp->vif) { for_each_context()
1305 if (tmp->vif == vif) { for_each_context()
1313 BIT(tmp->vif->type)) { for_each_context()
1334 ctx->vif = vif;
1345 if (vif->type == NL80211_IFTYPE_MONITOR)
1354 ctx->vif = NULL;
1364 struct ieee80211_vif *vif, iwl_teardown_interface()
1367 struct iwl_rxon_context *ctx = iwl_rxon_ctx_from_vif(vif); iwl_teardown_interface()
1371 if (priv->scan_vif == vif) { iwl_teardown_interface()
1389 if (vif->type == NL80211_IFTYPE_ADHOC) iwl_teardown_interface()
1394 struct ieee80211_vif *vif) iwlagn_mac_remove_interface()
1397 struct iwl_rxon_context *ctx = iwl_rxon_ctx_from_vif(vif); iwlagn_mac_remove_interface()
1403 if (WARN_ON(ctx->vif != vif)) { iwlagn_mac_remove_interface()
1405 IWL_ERR(priv, "ctx->vif = %p, vif = %p\n", ctx->vif, vif); iwlagn_mac_remove_interface()
1407 IWL_ERR(priv, "\tID = %d:\tctx = %p\tctx->vif = %p\n", iwlagn_mac_remove_interface()
1408 tmp->ctxid, tmp, tmp->vif); iwlagn_mac_remove_interface()
1410 ctx->vif = NULL; iwlagn_mac_remove_interface()
1412 iwl_teardown_interface(priv, vif, false); iwlagn_mac_remove_interface()
1421 struct ieee80211_vif *vif, iwlagn_mac_change_interface()
1436 ctx = iwl_rxon_ctx_from_vif(vif); iwlagn_mac_change_interface()
1448 if (!ctx->vif || !iwl_is_ready_rf(priv)) { iwlagn_mac_change_interface()
1482 iwl_teardown_interface(priv, vif, true);
1483 vif->type = newviftype;
1484 vif->p2p = newp2p;
1504 struct ieee80211_vif *vif, iwlagn_mac_hw_scan()
1526 priv->scan_vif = vif; iwlagn_mac_hw_scan()
1530 priv->scan_vif = vif; iwlagn_mac_hw_scan()
1535 ret = iwl_scan_initiate(priv, vif, IWL_SCAN_NORMAL, iwlagn_mac_hw_scan()
1562 struct ieee80211_vif *vif, iwlagn_mac_sta_notify()
327 iwlagn_mac_set_rekey_data(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_gtk_rekey_data *data) iwlagn_mac_set_rekey_data() argument
585 iwlagn_mac_update_tkip_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_key_conf *keyconf, struct ieee80211_sta *sta, u32 iv32, u16 *phase1key) iwlagn_mac_update_tkip_key() argument
596 iwlagn_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) iwlagn_mac_set_key() argument
717 iwlagn_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) iwlagn_mac_ampdu_action() argument
788 iwlagn_mac_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwlagn_mac_sta_add() argument
821 iwlagn_mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwlagn_mac_sta_remove() argument
848 iwlagn_mac_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, enum ieee80211_sta_state old_state, enum ieee80211_sta_state new_state) iwlagn_mac_sta_state() argument
943 iwlagn_mac_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel_switch *ch_switch) iwlagn_mac_channel_switch() argument
1133 iwlagn_mac_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const struct ieee80211_event *event) iwlagn_mac_event_callback() argument
1172 iwlagn_mac_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) iwlagn_mac_conf_tx() argument
1278 iwlagn_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwlagn_mac_add_interface() argument
1363 iwl_teardown_interface(struct iwl_priv *priv, struct ieee80211_vif *vif, bool mode_change) iwl_teardown_interface() argument
1393 iwlagn_mac_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) iwlagn_mac_remove_interface() argument
1420 iwlagn_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum nl80211_iftype newtype, bool newp2p) iwlagn_mac_change_interface() argument
1503 iwlagn_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) iwlagn_mac_hw_scan() argument
1561 iwlagn_mac_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta) iwlagn_mac_sta_notify() argument
H A Drxon.c42 if (!ctx->vif) { iwl_connection_init_rx_config()
45 switch (ctx->vif->type) { iwl_connection_init_rx_config()
68 ctx->vif->type); iwl_connection_init_rx_config()
85 iwl_set_flags_for_band(priv, ctx, priv->band, ctx->vif); iwl_connection_init_rx_config()
90 if (ctx->vif) iwl_connection_init_rx_config()
91 memcpy(ctx->staging.node_addr, ctx->vif->addr, ETH_ALEN); iwl_connection_init_rx_config()
200 struct ieee80211_vif *vif) iwlagn_update_beacon()
205 priv->beacon_skb = ieee80211_beacon_get(priv->hw, vif); iwlagn_update_beacon()
298 struct ieee80211_vif *vif = ctx->vif; iwl_send_rxon_timing() local
309 beacon_int = vif ? vif->bss_conf.beacon_int : 0; iwl_send_rxon_timing()
318 (!ctx->vif || ctx->vif->type != NL80211_IFTYPE_STATION) && iwl_send_rxon_timing()
320 priv->contexts[IWL_RXON_CTX_BSS].vif && iwl_send_rxon_timing()
321 priv->contexts[IWL_RXON_CTX_BSS].vif->bss_conf.beacon_int) { iwl_send_rxon_timing()
327 priv->contexts[IWL_RXON_CTX_PAN].vif && iwl_send_rxon_timing()
328 priv->contexts[IWL_RXON_CTX_PAN].vif->bss_conf.beacon_int && iwl_send_rxon_timing()
329 (!iwl_is_associated_ctx(ctx) || !ctx->vif || iwl_send_rxon_timing()
330 !ctx->vif->bss_conf.beacon_int)) { iwl_send_rxon_timing()
347 ctx->timing.dtim_period = vif ? (vif->bss_conf.dtim_period ?: 1) : 1; iwl_send_rxon_timing()
371 if (ctx->vif) { iwlagn_rxon_disconn()
481 if (ctx->vif && (ctx->vif->type == NL80211_IFTYPE_AP)) { iwlagn_rxon_connect()
482 ret = iwlagn_update_beacon(priv, ctx->vif); iwlagn_rxon_connect()
507 if (ctx->vif && (ctx->vif->type == NL80211_IFTYPE_ADHOC)) iwlagn_rxon_connect()
508 if (iwlagn_update_beacon(priv, ctx->vif)) iwlagn_rxon_connect()
525 if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION && iwlagn_rxon_connect()
527 ieee80211_request_smps(ctx->vif, iwlagn_rxon_connect()
567 if (ctx_bss->vif && ctx_pan->vif) { iwlagn_set_pan_params()
569 int dtim = ctx_pan->vif->bss_conf.dtim_period ?: 1; iwlagn_set_pan_params()
574 if (ctx_pan->vif->type == NL80211_IFTYPE_AP && iwlagn_set_pan_params()
589 (!ctx_bss->vif->bss_conf.idle && iwlagn_set_pan_params()
590 !ctx_bss->vif->bss_conf.assoc)) { iwlagn_set_pan_params()
593 } else if (!ctx_pan->vif->bss_conf.idle && iwlagn_set_pan_params()
594 !ctx_pan->vif->bss_conf.assoc) { iwlagn_set_pan_params()
598 } else if (ctx_pan->vif) { iwlagn_set_pan_params()
600 slot1 = max_t(int, 1, ctx_pan->vif->bss_conf.dtim_period) * iwlagn_set_pan_params()
743 struct ieee80211_vif *vif) iwl_set_flags_for_band()
752 if (vif && vif->bss_conf.use_short_slot) iwl_set_flags_for_band()
946 if (ctx->vif) { iwl_calc_basic_rates()
948 unsigned long basic = ctx->vif->bss_conf.basic_rates; iwl_calc_basic_rates()
1078 if ((ctx->vif && ctx->vif->bss_conf.use_short_slot) || iwlagn_commit_rxon()
1246 ctx->vif); for_each_context()
1282 struct ieee80211_vif *vif = ctx->vif; iwlagn_check_needed_chains() local
1291 switch (vif->type) { iwlagn_check_needed_chains()
1294 sta = ieee80211_find_sta(vif, bss_conf->bssid); iwlagn_check_needed_chains()
1360 if (!tmp->vif) for_each_context()
1408 struct ieee80211_vif *vif, iwlagn_bss_info_changed()
1413 struct iwl_rxon_context *ctx = iwl_rxon_ctx_from_vif(vif); iwlagn_bss_info_changed()
1433 if (unlikely(!ctx->vif)) { iwlagn_bss_info_changed()
1434 IWL_DEBUG_MAC80211(priv, "leave - vif is NULL\n"); iwlagn_bss_info_changed()
1447 ctx->staging.assoc_id = cpu_to_le16(vif->bss_conf.aid); iwlagn_bss_info_changed()
1448 if (vif->bss_conf.use_short_preamble) iwlagn_bss_info_changed()
1490 if (vif->type == NL80211_IFTYPE_AP || iwlagn_bss_info_changed()
1491 vif->type == NL80211_IFTYPE_ADHOC) { iwlagn_bss_info_changed()
1492 if (vif->bss_conf.enable_beacon) { iwlagn_bss_info_changed()
1509 if (vif->type == NL80211_IFTYPE_STATION) { iwlagn_bss_info_changed()
1535 ret = iwlagn_manage_ibss_station(priv, vif, iwlagn_bss_info_changed()
1544 if (iwlagn_update_beacon(priv, vif)) iwlagn_bss_info_changed()
199 iwlagn_update_beacon(struct iwl_priv *priv, struct ieee80211_vif *vif) iwlagn_update_beacon() argument
740 iwl_set_flags_for_band(struct iwl_priv *priv, struct iwl_rxon_context *ctx, enum ieee80211_band band, struct ieee80211_vif *vif) iwl_set_flags_for_band() argument
1407 iwlagn_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changes) iwlagn_bss_info_changed() argument
H A Dlib.c119 struct ieee80211_vif *vif, bool add) iwlagn_manage_ibss_station()
121 struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv; iwlagn_manage_ibss_station()
125 vif->bss_conf.bssid, iwlagn_manage_ibss_station()
128 vif->bss_conf.bssid); iwlagn_manage_ibss_station()
358 if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_AP && for_each_context()
373 ieee80211_disable_rssi_reports(ctx->vif);
384 if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION && for_each_context()
406 if (ctx->vif)
407 ieee80211_disable_rssi_reports(ctx->vif);
415 ieee80211_enable_rssi_reports(found_ctx->vif,
483 if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) for_each_context()
484 ieee80211_request_smps(ctx->vif, smps_request); for_each_context()
624 if (!ctx->vif || (ctx->vif->type != NL80211_IFTYPE_STATION)) { iwlagn_fill_txpower_mode()
629 ave_rssi = ieee80211_ave_rssi(ctx->vif); iwlagn_fill_txpower_mode()
914 struct ieee80211_vif *vif, iwlagn_wowlan_program_keys()
1191 ieee80211_iter_keys(priv->hw, ctx->vif, iwlagn_suspend()
118 iwlagn_manage_ibss_station(struct iwl_priv *priv, struct ieee80211_vif *vif, bool add) iwlagn_manage_ibss_station() argument
913 iwlagn_wowlan_program_keys(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key, void *_data) iwlagn_wowlan_program_keys() argument
H A Dtx.c296 if (info->control.vif) iwlagn_tx_skb()
297 ctx = iwl_rxon_ctx_from_vif(info->control.vif); iwlagn_tx_skb()
504 int iwlagn_tx_agg_stop(struct iwl_priv *priv, struct ieee80211_vif *vif, iwlagn_tx_agg_stop() argument
590 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); iwlagn_tx_agg_stop()
595 int iwlagn_tx_agg_start(struct iwl_priv *priv, struct ieee80211_vif *vif, iwlagn_tx_agg_start() argument
598 struct iwl_rxon_context *ctx = iwl_rxon_ctx_from_vif(vif); iwlagn_tx_agg_start()
641 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); iwlagn_tx_agg_start()
654 int iwlagn_tx_agg_flush(struct iwl_priv *priv, struct ieee80211_vif *vif, iwlagn_tx_agg_flush() argument
699 int iwlagn_tx_agg_oper(struct iwl_priv *priv, struct ieee80211_vif *vif, iwlagn_tx_agg_oper() argument
703 struct iwl_rxon_context *ctx = iwl_rxon_ctx_from_vif(vif); iwlagn_tx_agg_oper()
767 struct ieee80211_vif *vif; iwlagn_check_ratid_empty() local
774 vif = priv->contexts[ctx].vif; iwlagn_check_ratid_empty()
787 ieee80211_stop_tx_ba_cb_irqsafe(vif, addr, tid); iwlagn_check_ratid_empty()
797 ieee80211_start_tx_ba_cb_irqsafe(vif, addr, tid); iwlagn_check_ratid_empty()
813 sta = ieee80211_find_sta(ctx->vif, addr1); iwlagn_non_agg_tx_status()
1215 ctx->vif && iwlagn_rx_reply_tx()
1216 ctx->vif->type == NL80211_IFTYPE_STATION) { iwlagn_rx_reply_tx()
H A Dagn.h152 struct ieee80211_vif *vif,
163 struct ieee80211_vif *vif);
211 int iwlagn_tx_agg_start(struct iwl_priv *priv, struct ieee80211_vif *vif,
213 int iwlagn_tx_agg_oper(struct iwl_priv *priv, struct ieee80211_vif *vif,
215 int iwlagn_tx_agg_stop(struct iwl_priv *priv, struct ieee80211_vif *vif,
217 int iwlagn_tx_agg_flush(struct iwl_priv *priv, struct ieee80211_vif *vif,
262 struct ieee80211_vif *vif,
306 struct ieee80211_vif *vif, bool add); iwl_get_agg_tx_fail_reason()
371 struct ieee80211_vif *vif,
H A Ddevices.c416 struct ieee80211_vif *vif = ctx->vif; iwl5000_hw_channel_switch() local
448 vif->bss_conf.beacon_int * switch_count * TIME_UNIT; iwl5000_hw_channel_switch()
577 struct ieee80211_vif *vif = ctx->vif; iwl6000_hw_channel_switch() local
616 vif->bss_conf.beacon_int * switch_count * TIME_UNIT; iwl6000_hw_channel_switch()
H A Dscan.c481 struct ieee80211_vif *vif, iwl_get_channel_for_reset_scan()
516 struct ieee80211_vif *vif, iwl_get_channels_for_scan()
637 static int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif) iwlagn_request_scan() argument
670 if (vif) iwlagn_request_scan()
671 ctx = iwl_rxon_ctx_from_vif(vif); iwlagn_request_scan()
699 interval = vif->bss_conf.beacon_int; iwlagn_request_scan()
869 vif->addr, iwlagn_request_scan()
894 iwl_get_channel_for_reset_scan(priv, vif, band, iwlagn_request_scan()
899 iwl_get_channels_for_scan(priv, vif, band, iwlagn_request_scan()
944 struct ieee80211_vif *vif, iwl_scan_initiate()
979 ret = iwlagn_request_scan(priv, vif); iwl_scan_initiate()
480 iwl_get_channel_for_reset_scan(struct iwl_priv *priv, struct ieee80211_vif *vif, enum ieee80211_band band, struct iwl_scan_channel *scan_ch) iwl_get_channel_for_reset_scan() argument
515 iwl_get_channels_for_scan(struct iwl_priv *priv, struct ieee80211_vif *vif, enum ieee80211_band band, u8 is_active, u8 n_probes, struct iwl_scan_channel *scan_ch) iwl_get_channels_for_scan() argument
943 iwl_scan_initiate(struct iwl_priv *priv, struct ieee80211_vif *vif, enum iwl_scan_type scan_type, enum ieee80211_band band) iwl_scan_initiate() argument
H A Ddev.h486 struct ieee80211_vif *vif; member in struct:iwl_rxon_context
493 * We could use the vif to indicate active, but we
495 * we already removed the vif for type setting.
916 iwl_rxon_ctx_from_vif(struct ieee80211_vif *vif) iwl_rxon_ctx_from_vif() argument
918 struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv; iwl_rxon_ctx_from_vif()
H A Dsta.c617 else if (ctx && ctx->vif && ctx->vif->p2p) iwl_sta_fill_lq()
1111 struct ieee80211_vif *vif, iwlagn_key_sta_id()
1114 struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv; iwlagn_key_sta_id()
1124 if (vif->type == NL80211_IFTYPE_STATION && vif_priv->ctx) iwlagn_key_sta_id()
1184 struct ieee80211_vif *vif, iwl_update_tkip_key()
1188 u8 sta_id = iwlagn_key_sta_id(priv, vif, sta); iwl_update_tkip_key()
1209 u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta); iwl_remove_dynamic_key()
1259 u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta); iwl_set_dynamic_key()
1110 iwlagn_key_sta_id(struct iwl_priv *priv, struct ieee80211_vif *vif, struct ieee80211_sta *sta) iwlagn_key_sta_id() argument
1183 iwl_update_tkip_key(struct iwl_priv *priv, struct ieee80211_vif *vif, struct ieee80211_key_conf *keyconf, struct ieee80211_sta *sta, u32 iv32, u16 *phase1key) iwl_update_tkip_key() argument
/linux-4.1.27/drivers/net/wireless/ath/carl9170/
H A Dmac.c86 struct ieee80211_vif *vif; carl9170_set_slot_time() local
90 vif = carl9170_get_main_vif(ar); carl9170_set_slot_time()
91 if (!vif) { carl9170_set_slot_time()
97 vif->bss_conf.use_short_slot) carl9170_set_slot_time()
108 struct ieee80211_vif *vif; carl9170_set_mac_rates() local
112 vif = carl9170_get_main_vif(ar); carl9170_set_mac_rates()
114 if (!vif) { carl9170_set_mac_rates()
119 basic = (vif->bss_conf.basic_rates & 0xf); carl9170_set_mac_rates()
120 basic |= (vif->bss_conf.basic_rates & 0xff0) << 4; carl9170_set_mac_rates()
303 struct ieee80211_vif *vif; carl9170_set_operating_mode() local
315 vif = carl9170_get_main_vif(ar); carl9170_set_operating_mode()
317 if (vif) { carl9170_set_operating_mode()
321 switch (vif->type) { carl9170_set_operating_mode()
341 WARN(1, "Unsupported operation mode %x\n", vif->type); carl9170_set_operating_mode()
405 struct ieee80211_vif *vif; carl9170_set_beacon_timers() local
410 vif = carl9170_get_main_vif(ar); carl9170_set_beacon_timers()
412 if (vif) { carl9170_set_beacon_timers()
414 mvif = (void *) vif->drv_priv; carl9170_set_beacon_timers()
417 ar->global_beacon_int = vif->bss_conf.beacon_int / carl9170_set_beacon_timers()
421 vif->bss_conf.dtim_period); carl9170_set_beacon_timers()
423 switch (vif->type) { carl9170_set_beacon_timers()
435 } else if (vif->type == NL80211_IFTYPE_STATION) { carl9170_set_beacon_timers()
436 ar->global_beacon_int = vif->bss_conf.beacon_int; carl9170_set_beacon_timers()
H A Dmain.c560 struct ieee80211_vif *vif) carl9170_init_interface()
565 if (!vif) { carl9170_init_interface()
570 memcpy(common->macaddr, vif->addr, ETH_ALEN); carl9170_init_interface()
582 ar->disable_offload |= ((vif->type != NL80211_IFTYPE_STATION) && carl9170_init_interface()
583 (vif->type != NL80211_IFTYPE_AP)); carl9170_init_interface()
591 ar->disable_offload |= vif->p2p; carl9170_init_interface()
600 struct ieee80211_vif *vif) carl9170_op_add_interface()
602 struct carl9170_vif_info *vif_priv = (void *) vif->drv_priv; carl9170_op_add_interface()
612 * if the vif survived the _restart call. carl9170_op_add_interface()
639 if (vif->type == NL80211_IFTYPE_STATION) carl9170_op_add_interface()
648 if (main_vif->p2p && vif->p2p && carl9170_op_add_interface()
649 vif->type == NL80211_IFTYPE_AP) { carl9170_op_add_interface()
661 if ((vif->type == NL80211_IFTYPE_STATION) || carl9170_op_add_interface()
662 (vif->type == NL80211_IFTYPE_WDS) || carl9170_op_add_interface()
663 (vif->type == NL80211_IFTYPE_AP) || carl9170_op_add_interface()
664 (vif->type == NL80211_IFTYPE_MESH_POINT)) carl9170_op_add_interface()
704 rcu_assign_pointer(ar->vif_priv[vif_id].vif, vif); carl9170_op_add_interface()
709 if (main_vif == vif) { carl9170_op_add_interface()
719 * vif data [id, addr] is safe. carl9170_op_add_interface()
727 err = carl9170_init_interface(ar, vif); carl9170_op_add_interface()
732 err = carl9170_mod_virtual_mac(ar, vif_id, vif->addr); carl9170_op_add_interface()
750 RCU_INIT_POINTER(ar->vif_priv[vif_id].vif, NULL); carl9170_op_add_interface()
765 struct ieee80211_vif *vif) carl9170_op_remove_interface()
767 struct carl9170_vif_info *vif_priv = (void *) vif->drv_priv; carl9170_op_remove_interface()
788 RCU_INIT_POINTER(ar->vif_priv[id].vif, NULL); carl9170_op_remove_interface()
790 if (vif == main_vif) { carl9170_op_remove_interface()
1049 struct ieee80211_vif *vif, carl9170_op_bss_info_changed()
1060 vif_priv = (void *) vif->drv_priv; carl9170_op_bss_info_changed()
1090 if (main_vif != vif) { carl9170_op_bss_info_changed()
1099 if (vif->type != NL80211_IFTYPE_STATION && carl9170_op_bss_info_changed()
1118 if (main_vif != vif) carl9170_op_bss_info_changed()
1158 struct ieee80211_vif *vif) carl9170_op_get_tsf()
1175 struct ieee80211_vif *vif, carl9170_op_set_key()
1183 if (ar->disable_offload || !vif) carl9170_op_set_key()
1193 if (!is_main_vif(ar, vif)) { carl9170_op_set_key()
1203 if ((vif->type != NL80211_IFTYPE_STATION && carl9170_op_set_key()
1204 vif->type != NL80211_IFTYPE_ADHOC) && carl9170_op_set_key()
1317 struct ieee80211_vif *vif, carl9170_op_sta_add()
1346 struct ieee80211_vif *vif, carl9170_op_sta_remove()
1384 struct ieee80211_vif *vif, u16 queue, carl9170_op_conf_tx()
1416 struct ieee80211_vif *vif, carl9170_op_ampdu_action()
1443 tid_info->vif = vif; carl9170_op_ampdu_action()
1456 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); carl9170_op_ampdu_action()
1474 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); carl9170_op_ampdu_action()
1702 struct ieee80211_vif *vif, carl9170_op_flush()
1728 struct ieee80211_vif *vif, carl9170_op_sta_notify()
2015 ar->vif_priv[i].vif = NULL; carl9170_register()
559 carl9170_init_interface(struct ar9170 *ar, struct ieee80211_vif *vif) carl9170_init_interface() argument
599 carl9170_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) carl9170_op_add_interface() argument
764 carl9170_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) carl9170_op_remove_interface() argument
1048 carl9170_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) carl9170_op_bss_info_changed() argument
1157 carl9170_op_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) carl9170_op_get_tsf() argument
1174 carl9170_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) carl9170_op_set_key() argument
1316 carl9170_op_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) carl9170_op_sta_add() argument
1345 carl9170_op_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) carl9170_op_sta_remove() argument
1383 carl9170_op_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *param) carl9170_op_conf_tx() argument
1415 carl9170_op_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) carl9170_op_ampdu_action() argument
1701 carl9170_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 queues, bool drop) carl9170_op_flush() argument
1727 carl9170_op_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta) carl9170_op_sta_notify() argument
H A Dtx.c112 struct ieee80211_vif *vif; __carl9170_get_tx_sta() local
121 vif = rcu_dereference(ar->vif_priv[vif_id].vif); __carl9170_get_tx_sta()
122 if (unlikely(!vif)) __carl9170_get_tx_sta()
135 return ieee80211_find_sta(vif, hdr->addr1); __carl9170_get_tx_sta()
869 struct ieee80211_vif *vif, carl9170_tx_get_rates()
880 ieee80211_get_tx_rates(vif, sta, skb, carl9170_tx_get_rates()
989 if (likely(info->control.vif)) carl9170_tx_prepare()
990 cvif = (void *) info->control.vif->drv_priv; carl9170_tx_prepare()
1187 carl9170_tx_get_rates(ar, tid_info->vif, carl9170_tx_ampdu()
1474 struct ieee80211_vif *vif; carl9170_op_tx() local
1481 vif = info->control.vif; carl9170_op_tx()
1512 carl9170_tx_get_rates(ar, vif, sta, skb); carl9170_op_tx()
868 carl9170_tx_get_rates(struct ar9170 *ar, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct sk_buff *skb) carl9170_tx_get_rates() argument
H A Dcarl9170.h138 struct ieee80211_vif *vif; member in struct:carl9170_sta_tid
173 struct ieee80211_vif __rcu *vif; member in struct:carl9170_vif
660 static inline bool is_main_vif(struct ar9170 *ar, struct ieee80211_vif *vif) is_main_vif() argument
665 ret = (carl9170_get_main_vif(ar) == vif); is_main_vif()
H A Ddebug.c448 struct ieee80211_vif *vif = carl9170_get_vif(iter); carl9170_debugfs_vif_dump_read() local
450 " mac:%pM %s]\n", i, (carl9170_get_main_vif(ar) == vif ? carl9170_debugfs_vif_dump_read()
451 "Master" : " Slave"), iter->id, vif->type, vif->addr, carl9170_debugfs_vif_dump_read()
/linux-4.1.27/drivers/net/wireless/cw1200/
H A Dsta.h21 struct ieee80211_vif *vif);
23 struct ieee80211_vif *vif);
25 struct ieee80211_vif *vif,
33 int cw1200_conf_tx(struct ieee80211_hw *dev, struct ieee80211_vif *vif,
38 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
43 void cw1200_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
99 int cw1200_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
101 int cw1200_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
103 void cw1200_sta_notify(struct ieee80211_hw *dev, struct ieee80211_vif *vif,
107 struct ieee80211_vif *vif,
111 struct ieee80211_vif *vif,
H A Dsta.c40 struct ieee80211_vif *vif,
176 if (!priv->vif->p2p && !atomic_read(&priv->tx_lock)) __cw1200_cqm_bssloss_sm()
201 skb = ieee80211_nullfunc_get(priv->hw, priv->vif); __cw1200_cqm_bssloss_sm()
209 struct ieee80211_vif *vif) cw1200_add_interface()
215 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER | cw1200_add_interface()
226 switch (vif->type) { cw1200_add_interface()
231 priv->mode = vif->type; cw1200_add_interface()
238 priv->vif = vif; cw1200_add_interface()
239 memcpy(priv->mac_addr, vif->addr, ETH_ALEN); cw1200_add_interface()
252 struct ieee80211_vif *vif) cw1200_remove_interface()
294 priv->vif = NULL; cw1200_remove_interface()
309 struct ieee80211_vif *vif, cw1200_change_interface()
315 p2p, vif->type, vif->p2p); cw1200_change_interface()
317 if (new_type != vif->type || vif->p2p != p2p) { cw1200_change_interface()
318 cw1200_remove_interface(dev, vif); cw1200_change_interface()
319 vif->type = new_type; cw1200_change_interface()
320 vif->p2p = p2p; cw1200_change_interface()
321 ret = cw1200_add_interface(dev, vif); cw1200_change_interface()
446 bool is_p2p = priv->vif && priv->vif->p2p; cw1200_update_filtering()
447 bool is_sta = priv->vif && NL80211_IFTYPE_STATION == priv->vif->type; cw1200_update_filtering()
615 int cw1200_conf_tx(struct ieee80211_hw *dev, struct ieee80211_vif *vif, cw1200_conf_tx() argument
688 struct ieee80211_vif *vif, struct ieee80211_sta *sta, cw1200_set_key()
941 void cw1200_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, cw1200_flush() argument
1032 ieee80211_cqm_rssi_notify(priv->vif, cqm_evt, cw1200_event_handler()
1185 ieee80211_connection_loss(priv->vif); cw1200_join_complete()
1220 struct ieee80211_bss_conf *conf = &priv->vif->bss_conf; cw1200_do_join()
1241 bssid = priv->vif->bss_conf.bssid; cw1200_do_join()
1311 if (priv->vif->p2p) { cw1200_do_join()
1458 ieee80211_connection_loss(priv->vif); cw1200_unjoin_work()
1552 int cw1200_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, cw1200_sta_add() argument
1583 int cw1200_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, cw1200_sta_remove() argument
1607 struct ieee80211_vif *vif, __cw1200_sta_notify()
1648 struct ieee80211_vif *vif, cw1200_sta_notify()
1657 __cw1200_sta_notify(dev, vif, notify_cmd, sta_priv->link_id); cw1200_sta_notify()
1671 __cw1200_sta_notify(priv->hw, priv->vif, cw1200_ps_notify()
1686 skb = ieee80211_beacon_get_tim(priv->hw, priv->vif, cw1200_set_tim_impl()
1779 if (!priv->vif->p2p) { cw1200_set_btcoexinfo()
1810 struct ieee80211_vif *vif, cw1200_bss_info_changed()
1900 ieee80211_connection_loss(vif); cw1200_bss_info_changed()
1921 sta = ieee80211_find_sta(vif, info->bssid); cw1200_bss_info_changed()
1996 if (priv->vif->p2p) { cw1200_bss_info_changed()
2141 struct ieee80211_vif *vif, cw1200_ampdu_action()
2218 if (priv->vif->p2p) cw1200_upload_beacon()
2221 frame.skb = ieee80211_beacon_get_tim(priv->hw, priv->vif, cw1200_upload_beacon()
2240 if (priv->vif->p2p) { cw1200_upload_beacon()
2262 frame.skb = ieee80211_pspoll_get(priv->hw, priv->vif); cw1200_upload_pspoll()
2281 frame.skb = ieee80211_nullfunc_get(priv->hw, priv->vif); cw1200_upload_null()
2301 frame.skb = ieee80211_qosnullfunc_get(priv->hw, priv->vif); cw1200_upload_qosnull()
2326 struct ieee80211_bss_conf *conf = &priv->vif->bss_conf; cw1200_start_ap()
2328 .mode = priv->vif->p2p ? cw1200_start_ap()
2366 if (!ret && priv->vif->p2p) { cw1200_start_ap()
2381 struct ieee80211_bss_conf *conf = &priv->vif->bss_conf; cw1200_update_beaconing()
208 cw1200_add_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) cw1200_add_interface() argument
251 cw1200_remove_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) cw1200_remove_interface() argument
308 cw1200_change_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif, enum nl80211_iftype new_type, bool p2p) cw1200_change_interface() argument
687 cw1200_set_key(struct ieee80211_hw *dev, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) cw1200_set_key() argument
1606 __cw1200_sta_notify(struct ieee80211_hw *dev, struct ieee80211_vif *vif, enum sta_notify_cmd notify_cmd, int link_id) __cw1200_sta_notify() argument
1647 cw1200_sta_notify(struct ieee80211_hw *dev, struct ieee80211_vif *vif, enum sta_notify_cmd notify_cmd, struct ieee80211_sta *sta) cw1200_sta_notify() argument
1809 cw1200_bss_info_changed(struct ieee80211_hw *dev, struct ieee80211_vif *vif, struct ieee80211_bss_conf *info, u32 changed) cw1200_bss_info_changed() argument
2140 cw1200_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) cw1200_ampdu_action() argument
H A Dscan.h43 struct ieee80211_vif *vif,
H A Dtxrx.c819 if (memcmp(priv->vif->addr, pspoll->bssid, ETH_ALEN)) cw1200_handle_pspoll()
823 sta = ieee80211_find_sta(priv->vif, pspoll->ta); cw1200_handle_pspoll()
985 sta = ieee80211_find_sta(priv->vif, hdr->addr1); cw1200_notify_buffered_tx()
1019 bool p2p = priv->vif && priv->vif->p2p; cw1200_rx_cb()
1168 !arg->status && priv->vif && cw1200_rx_cb()
1169 ether_addr_equal(ieee80211_get_SA(frame), priv->vif->bss_conf.bssid)) { cw1200_rx_cb()
1189 (priv->vif->bss_conf.assoc || cw1200_rx_cb()
1190 priv->vif->bss_conf.ibss_joined)) { cw1200_rx_cb()
H A Dpm.c219 if (!priv->vif->p2p && cw1200_wow_suspend()
328 if (!priv->vif->p2p && priv->join_status == CW1200_JOIN_STATUS_STA) { cw1200_wow_resume()
H A Dscan.c55 struct ieee80211_vif *vif, cw1200_hw_scan()
65 if (!priv->vif) cw1200_hw_scan()
81 frame.skb = ieee80211_probereq_get(hw, priv->vif->addr, NULL, 0, cw1200_hw_scan()
54 cw1200_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) cw1200_hw_scan() argument
/linux-4.1.27/drivers/net/wireless/ath/ath10k/
H A Dmac.h49 static inline struct ath10k_vif *ath10k_vif_to_arvif(struct ieee80211_vif *vif) ath10k_vif_to_arvif() argument
51 return (struct ath10k_vif *)vif->drv_priv; ath10k_vif_to_arvif()
54 static inline void ath10k_tx_h_seq_no(struct ieee80211_vif *vif, ath10k_tx_h_seq_no() argument
59 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_tx_h_seq_no()
H A Dtestmode.h24 int ath10k_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
40 struct ieee80211_vif *vif, ath10k_tm_cmd()
39 ath10k_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void *data, int len) ath10k_tm_cmd() argument
H A Dmac.c73 if (memcmp(macaddr, arvif->vif->addr, ETH_ALEN)) ath10k_send_key()
908 arg.ssid = arvif->vif->bss_conf.ssid; ath10k_vdev_start_restart()
909 arg.ssid_len = arvif->vif->bss_conf.ssid_len; ath10k_vdev_start_restart()
1051 struct ieee80211_vif *vif = arvif->vif; ath10k_mac_setup_bcn_tmpl() local
1059 bcn = ieee80211_beacon_get_template(hw, vif, &offs); ath10k_mac_setup_bcn_tmpl()
1097 struct ieee80211_vif *vif = arvif->vif; ath10k_mac_setup_prb_tmpl() local
1104 prb = ieee80211_proberesp_get(hw, vif); ath10k_mac_setup_prb_tmpl()
1274 struct ieee80211_vif *vif = arvif->vif; ath10k_mac_vif_setup_ps() local
1284 if (arvif->vif->type != NL80211_IFTYPE_STATION) ath10k_mac_vif_setup_ps()
1305 vif->bss_conf.beacon_int) / 1000; ath10k_mac_vif_setup_ps()
1369 struct ieee80211_vif *vif) ath10k_peer_assoc_h_listen_intval()
1379 if (vif->type == NL80211_IFTYPE_STATION) ath10k_peer_assoc_h_listen_intval()
1386 struct ieee80211_vif *vif, ath10k_peer_assoc_h_basic()
1390 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_peer_assoc_h_basic()
1398 arg->peer_listen_intval = ath10k_peer_assoc_h_listen_intval(ar, vif); ath10k_peer_assoc_h_basic()
1400 arg->peer_caps = vif->bss_conf.assoc_capability; ath10k_peer_assoc_h_basic()
1404 struct ieee80211_vif *vif, ath10k_peer_assoc_h_crypto()
1407 struct ieee80211_bss_conf *info = &vif->bss_conf; ath10k_peer_assoc_h_crypto()
1668 struct ieee80211_vif *vif, ath10k_peer_assoc_h_qos()
1672 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_peer_assoc_h_qos()
1685 if (vif->bss_conf.qos) ath10k_peer_assoc_h_qos()
1707 struct ieee80211_vif *vif, ath10k_peer_assoc_h_phymode()
1765 struct ieee80211_vif *vif, ath10k_peer_assoc_prepare()
1773 ath10k_peer_assoc_h_basic(ar, vif, sta, arg); ath10k_peer_assoc_prepare()
1774 ath10k_peer_assoc_h_crypto(ar, vif, arg); ath10k_peer_assoc_prepare()
1778 ath10k_peer_assoc_h_qos(ar, vif, sta, arg); ath10k_peer_assoc_prepare()
1779 ath10k_peer_assoc_h_phymode(ar, vif, sta, arg); ath10k_peer_assoc_prepare()
1812 struct ieee80211_vif *vif, ath10k_mac_vif_recalc_txbf()
1815 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_mac_vif_recalc_txbf()
1875 struct ieee80211_vif *vif, ath10k_bss_assoc()
1879 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_bss_assoc()
1893 ap_sta = ieee80211_find_sta(vif, bss_conf->bssid); ath10k_bss_assoc()
1906 ret = ath10k_peer_assoc_prepare(ar, vif, ap_sta, &peer_arg); ath10k_bss_assoc()
1930 ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap); ath10k_bss_assoc()
1969 struct ieee80211_vif *vif) ath10k_bss_disassoc()
1972 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_bss_disassoc()
1988 ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap); ath10k_bss_disassoc()
1999 struct ieee80211_vif *vif, ath10k_station_assoc()
2003 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_station_assoc()
2009 ret = ath10k_peer_assoc_prepare(ar, vif, sta, &peer_arg); ath10k_station_assoc()
2068 struct ieee80211_vif *vif, ath10k_station_disassoc()
2071 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_station_disassoc()
2291 static u8 ath10k_tx_h_get_vdev_id(struct ath10k *ar, struct ieee80211_vif *vif) ath10k_tx_h_get_vdev_id() argument
2293 if (vif) ath10k_tx_h_get_vdev_id()
2294 return ath10k_vif_to_arvif(vif)->vdev_id; ath10k_tx_h_get_vdev_id()
2333 struct ieee80211_vif *vif, ath10k_tx_h_add_p2p_noa_ie()
2337 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_tx_h_add_p2p_noa_ie()
2702 struct ieee80211_vif *vif = info->control.vif; ath10k_tx() local
2711 ATH10K_SKB_CB(skb)->vdev_id = ath10k_tx_h_get_vdev_id(ar, vif); ath10k_tx()
2714 if (vif && vif->type != NL80211_IFTYPE_MONITOR) { ath10k_tx()
2716 ath10k_tx_h_add_p2p_noa_ie(ar, vif, skb); ath10k_tx()
2717 ath10k_tx_h_seq_no(vif, skb); ath10k_tx()
3203 struct ieee80211_vif *vif) ath10k_add_interface()
3206 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_add_interface()
3213 vif->driver_flags |= IEEE80211_VIF_SUPPORTS_UAPSD; ath10k_add_interface()
3220 arvif->vif = vif; ath10k_add_interface()
3237 switch (vif->type) { ath10k_add_interface()
3245 if (vif->p2p) ath10k_add_interface()
3254 if (vif->p2p) ath10k_add_interface()
3277 * DMA-coherent buffer for a lifetime of a vif and use it for all ath10k_add_interface()
3281 if (vif->type == NL80211_IFTYPE_ADHOC || ath10k_add_interface()
3282 vif->type == NL80211_IFTYPE_AP) { ath10k_add_interface()
3300 arvif->vdev_subtype, vif->addr); ath10k_add_interface()
3335 if (ar->cfg_tx_chainmask && (vif->type != NL80211_IFTYPE_MONITOR)) { ath10k_add_interface()
3350 ret = ath10k_peer_create(ar, arvif->vdev_id, vif->addr); ath10k_add_interface()
3405 arvif->txpower = vif->bss_conf.txpower; ath10k_add_interface()
3417 ath10k_wmi_peer_delete(ar, arvif->vdev_id, vif->addr); ath10k_add_interface()
3437 struct ieee80211_vif *vif) ath10k_remove_interface()
3440 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_remove_interface()
3459 vif->addr); ath10k_remove_interface()
3480 vif->addr); ath10k_remove_interface()
3530 struct ieee80211_vif *vif, ath10k_bss_info_changed()
3535 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_bss_info_changed()
3542 ath10k_control_ibss(arvif, info, vif->addr); ath10k_bss_info_changed()
3599 vif->type == NL80211_IFTYPE_AP) { ath10k_bss_info_changed()
3667 ath10k_bss_assoc(hw, vif, info); ath10k_bss_info_changed()
3670 ath10k_bss_disassoc(hw, vif); ath10k_bss_info_changed()
3685 arvif->ps = vif->bss_conf.ps; ath10k_bss_info_changed()
3697 struct ieee80211_vif *vif, ath10k_hw_scan()
3701 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_hw_scan()
3773 struct ieee80211_vif *vif) ath10k_cancel_hw_scan()
3794 * frames with multi-vif APs. This is not required for main firmware ath10k_set_key_h_def_keyidx()
3798 * is required for multi-vif STA interfaces on 10.1 */ ath10k_set_key_h_def_keyidx()
3823 struct ieee80211_vif *vif, struct ieee80211_sta *sta, ath10k_set_key()
3827 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_set_key()
3843 peer_addr = vif->bss_conf.bssid; ath10k_set_key()
3845 peer_addr = vif->addr; ath10k_set_key()
3911 struct ieee80211_vif *vif, ath10k_set_default_unicast_key()
3915 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_set_default_unicast_key()
4008 err = ath10k_station_assoc(ar, arvif->vif, sta, true); ath10k_sta_rc_update_wk()
4049 struct ieee80211_vif *vif, ath10k_sta_state()
4055 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_sta_state()
4099 if (vif->type == NL80211_IFTYPE_STATION) { ath10k_sta_state()
4123 if (vif->type == NL80211_IFTYPE_STATION) { ath10k_sta_state()
4142 (vif->type == NL80211_IFTYPE_AP || ath10k_sta_state()
4143 vif->type == NL80211_IFTYPE_ADHOC)) { ath10k_sta_state()
4150 ret = ath10k_station_assoc(ar, vif, sta, false); ath10k_sta_state()
4156 (vif->type == NL80211_IFTYPE_AP || ath10k_sta_state()
4157 vif->type == NL80211_IFTYPE_ADHOC)) { ath10k_sta_state()
4164 ret = ath10k_station_disassoc(ar, vif, sta); ath10k_sta_state()
4174 static int ath10k_conf_tx_uapsd(struct ath10k *ar, struct ieee80211_vif *vif, ath10k_conf_tx_uapsd() argument
4177 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_conf_tx_uapsd()
4281 struct ieee80211_vif *vif, u16 ac, ath10k_conf_tx()
4285 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_conf_tx()
4341 ret = ath10k_conf_tx_uapsd(ar, vif, ac, params->uapsd); ath10k_conf_tx()
4353 struct ieee80211_vif *vif, ath10k_remain_on_channel()
4359 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_remain_on_channel()
4485 static void ath10k_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ath10k_flush() argument
4962 struct ieee80211_vif *vif, ath10k_set_bitrate_mask()
4965 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_set_bitrate_mask()
4996 struct ieee80211_vif *vif, ath10k_sta_rc_update()
5068 static u64 ath10k_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath10k_get_tsf() argument
5079 struct ieee80211_vif *vif, ath10k_ampdu_action()
5085 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_ampdu_action()
5408 struct ieee80211_vif *vif) ath10k_get_arvif_iter()
5411 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); ath10k_get_arvif_iter()
1368 ath10k_peer_assoc_h_listen_intval(struct ath10k *ar, struct ieee80211_vif *vif) ath10k_peer_assoc_h_listen_intval() argument
1385 ath10k_peer_assoc_h_basic(struct ath10k *ar, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct wmi_peer_assoc_complete_arg *arg) ath10k_peer_assoc_h_basic() argument
1403 ath10k_peer_assoc_h_crypto(struct ath10k *ar, struct ieee80211_vif *vif, struct wmi_peer_assoc_complete_arg *arg) ath10k_peer_assoc_h_crypto() argument
1667 ath10k_peer_assoc_h_qos(struct ath10k *ar, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct wmi_peer_assoc_complete_arg *arg) ath10k_peer_assoc_h_qos() argument
1706 ath10k_peer_assoc_h_phymode(struct ath10k *ar, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct wmi_peer_assoc_complete_arg *arg) ath10k_peer_assoc_h_phymode() argument
1764 ath10k_peer_assoc_prepare(struct ath10k *ar, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct wmi_peer_assoc_complete_arg *arg) ath10k_peer_assoc_prepare() argument
1811 ath10k_mac_vif_recalc_txbf(struct ath10k *ar, struct ieee80211_vif *vif, struct ieee80211_sta_vht_cap vht_cap) ath10k_mac_vif_recalc_txbf() argument
1874 ath10k_bss_assoc(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf) ath10k_bss_assoc() argument
1968 ath10k_bss_disassoc(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath10k_bss_disassoc() argument
1998 ath10k_station_assoc(struct ath10k *ar, struct ieee80211_vif *vif, struct ieee80211_sta *sta, bool reassoc) ath10k_station_assoc() argument
2067 ath10k_station_disassoc(struct ath10k *ar, struct ieee80211_vif *vif, struct ieee80211_sta *sta) ath10k_station_disassoc() argument
2332 ath10k_tx_h_add_p2p_noa_ie(struct ath10k *ar, struct ieee80211_vif *vif, struct sk_buff *skb) ath10k_tx_h_add_p2p_noa_ie() argument
3202 ath10k_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath10k_add_interface() argument
3436 ath10k_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath10k_remove_interface() argument
3529 ath10k_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *info, u32 changed) ath10k_bss_info_changed() argument
3696 ath10k_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) ath10k_hw_scan() argument
3772 ath10k_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath10k_cancel_hw_scan() argument
3822 ath10k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) ath10k_set_key() argument
3910 ath10k_set_default_unicast_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int keyidx) ath10k_set_default_unicast_key() argument
4048 ath10k_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, enum ieee80211_sta_state old_state, enum ieee80211_sta_state new_state) ath10k_sta_state() argument
4280 ath10k_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 ac, const struct ieee80211_tx_queue_params *params) ath10k_conf_tx() argument
4352 ath10k_remain_on_channel(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel *chan, int duration, enum ieee80211_roc_type type) ath10k_remain_on_channel() argument
4961 ath10k_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const struct cfg80211_bitrate_mask *mask) ath10k_set_bitrate_mask() argument
4995 ath10k_sta_rc_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, u32 changed) ath10k_sta_rc_update() argument
5078 ath10k_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) ath10k_ampdu_action() argument
5407 ath10k_get_arvif_iter(void *data, u8 *mac, struct ieee80211_vif *vif) ath10k_get_arvif_iter() argument
H A Ddebug.h79 struct ieee80211_vif *vif,
82 struct ieee80211_vif *vif, int sset);
84 struct ieee80211_vif *vif,
138 void ath10k_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
H A Dthermal.c89 * vif AP mode. Since quiet param is not validated in STA mode, it needs ath10k_thermal_set_cur_dutycycle()
90 * to be investigated further to handle multi STA and multi-vif (AP+STA) ath10k_thermal_set_cur_dutycycle()
/linux-4.1.27/drivers/net/wireless/libertas_tf/
H A Dmain.c205 priv->vif = NULL; lbtf_init_adapter()
257 if ((priv->vif->type == NL80211_IFTYPE_AP) && lbtf_tx_work()
369 struct ieee80211_vif *vif) lbtf_op_add_interface()
373 if (priv->vif != NULL) lbtf_op_add_interface()
376 priv->vif = vif; lbtf_op_add_interface()
377 switch (vif->type) { lbtf_op_add_interface()
386 priv->vif = NULL; lbtf_op_add_interface()
389 lbtf_set_mac_address(priv, (u8 *) vif->addr); lbtf_op_add_interface()
395 struct ieee80211_vif *vif) lbtf_op_remove_interface()
400 if (priv->vif->type == NL80211_IFTYPE_AP || lbtf_op_remove_interface()
401 priv->vif->type == NL80211_IFTYPE_MESH_POINT) lbtf_op_remove_interface()
405 priv->vif = NULL; lbtf_op_remove_interface()
490 struct ieee80211_vif *vif, lbtf_op_bss_info_changed()
499 switch (priv->vif->type) { lbtf_op_bss_info_changed()
502 beacon = ieee80211_beacon_get(hw, vif); lbtf_op_bss_info_changed()
720 if (priv->vif->type != NL80211_IFTYPE_AP) lbtf_bcn_sent()
726 while ((skb = ieee80211_get_buffered_bc(priv->hw, priv->vif))) { lbtf_bcn_sent()
736 skb = ieee80211_beacon_get(priv->hw, priv->vif); lbtf_bcn_sent()
368 lbtf_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) lbtf_op_add_interface() argument
394 lbtf_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) lbtf_op_remove_interface() argument
489 lbtf_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changes) lbtf_op_bss_info_changed() argument
/linux-4.1.27/net/ipv4/
H A Dipmr.c100 /* Big lock, protecting vif table, mrt cache and mroute socket state.
730 /* Is vif busy ? */ vif_add()
1209 * Close the multicast socket, and clear the vif tables etc
1218 /* Shut down all active vif entries */ mroute_clean_tables()
1282 struct vifctl vif; ip_mroute_setsockopt() local
1328 if (optlen != sizeof(vif)) ip_mroute_setsockopt()
1330 if (copy_from_user(&vif, optval, sizeof(vif))) ip_mroute_setsockopt()
1332 if (vif.vifc_vifi >= MAXVIFS) ip_mroute_setsockopt()
1336 ret = vif_add(net, mrt, &vif, ip_mroute_setsockopt()
1339 ret = vif_delete(mrt, vif.vifc_vifi, 0, NULL); ip_mroute_setsockopt()
1495 struct vif_device *vif; ipmr_ioctl() local
1511 vif = &mrt->vif_table[vr.vifi]; ipmr_ioctl()
1513 vr.icount = vif->pkt_in; ipmr_ioctl()
1514 vr.ocount = vif->pkt_out; ipmr_ioctl()
1515 vr.ibytes = vif->bytes_in; ipmr_ioctl()
1516 vr.obytes = vif->bytes_out; ipmr_ioctl()
1569 struct vif_device *vif; ipmr_compat_ioctl() local
1585 vif = &mrt->vif_table[vr.vifi]; ipmr_compat_ioctl()
1587 vr.icount = vif->pkt_in; ipmr_compat_ioctl()
1588 vr.ocount = vif->pkt_out; ipmr_compat_ioctl()
1589 vr.ibytes = vif->bytes_in; ipmr_compat_ioctl()
1590 vr.obytes = vif->bytes_out; ipmr_compat_ioctl()
1704 struct vif_device *vif = &mrt->vif_table[vifi]; ipmr_queue_xmit() local
1710 if (!vif->dev) ipmr_queue_xmit()
1714 if (vif->flags & VIFF_REGISTER) { ipmr_queue_xmit()
1715 vif->pkt_out++; ipmr_queue_xmit()
1716 vif->bytes_out += skb->len; ipmr_queue_xmit()
1717 vif->dev->stats.tx_bytes += skb->len; ipmr_queue_xmit()
1718 vif->dev->stats.tx_packets++; ipmr_queue_xmit()
1724 if (vif->flags & VIFF_TUNNEL) { ipmr_queue_xmit()
1726 vif->remote, vif->local, ipmr_queue_xmit()
1729 RT_TOS(iph->tos), vif->link); ipmr_queue_xmit()
1737 RT_TOS(iph->tos), vif->link); ipmr_queue_xmit()
1762 vif->pkt_out++; ipmr_queue_xmit()
1763 vif->bytes_out += skb->len; ipmr_queue_xmit()
1772 if (vif->flags & VIFF_TUNNEL) { ipmr_queue_xmit()
1773 ip_encap(net, skb, vif->local, vif->remote); ipmr_queue_xmit()
1775 vif->dev->stats.tx_packets++; ipmr_queue_xmit()
1776 vif->dev->stats.tx_bytes += skb->len; ipmr_queue_xmit()
1819 int vif, ct; ip_mr_forward() local
1822 vif = cache->mfc_parent; ip_mr_forward()
1832 cache_proxy = ipmr_cache_find_any_parent(mrt, vif); ip_mr_forward()
1841 if (mrt->vif_table[vif].dev != skb->dev) { ip_mr_forward()
1876 mrt->vif_table[vif].pkt_in++; ip_mr_forward()
1877 mrt->vif_table[vif].bytes_in += skb->len; ip_mr_forward()
2003 int vif = ipmr_find_vif(mrt, skb->dev); ip_mr_input() local
2005 if (vif >= 0) ip_mr_input()
2007 vif); ip_mr_input()
2014 int vif; ip_mr_input() local
2025 vif = ipmr_find_vif(mrt, skb->dev); ip_mr_input()
2026 if (vif >= 0) { ip_mr_input()
2027 int err2 = ipmr_cache_unresolved(mrt, vif, skb); ip_mr_input()
2214 int vif = ipmr_find_vif(mrt, skb->dev); ipmr_get_route() local
2216 if (vif >= 0) ipmr_get_route()
2217 cache = ipmr_cache_find_any(mrt, daddr, vif); ipmr_get_route()
2223 int vif = -1; ipmr_get_route() local
2233 vif = ipmr_find_vif(mrt, dev); ipmr_get_route()
2234 if (vif < 0) { ipmr_get_route()
2253 err = ipmr_cache_unresolved(mrt, vif, skb2); ipmr_get_route()
2500 const struct vif_device *vif = v; ipmr_vif_seq_show() local
2501 const char *name = vif->dev ? vif->dev->name : "none"; ipmr_vif_seq_show()
2505 vif - mrt->vif_table, ipmr_vif_seq_show()
2506 name, vif->bytes_in, vif->pkt_in, ipmr_vif_seq_show()
2507 vif->bytes_out, vif->pkt_out, ipmr_vif_seq_show()
2508 vif->flags, vif->local, vif->remote); ipmr_vif_seq_show()
/linux-4.1.27/drivers/net/wireless/ath/ath5k/
H A Dmac80211-ops.c74 ath5k_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath5k_add_interface() argument
78 struct ath5k_vif *avf = (void *)vif->drv_priv; ath5k_add_interface()
82 if ((vif->type == NL80211_IFTYPE_AP || ath5k_add_interface()
83 vif->type == NL80211_IFTYPE_ADHOC) ath5k_add_interface()
95 (ah->nvifs && vif->type == NL80211_IFTYPE_ADHOC)) { ath5k_add_interface()
101 switch (vif->type) { ath5k_add_interface()
106 avf->opmode = vif->type; ath5k_add_interface()
135 ah->bslot[avf->bslot] = vif; ath5k_add_interface()
147 ath5k_hw_set_lladdr(ah, vif->addr); ath5k_add_interface()
149 ath5k_update_bssid_mask_and_opmode(ah, vif); ath5k_add_interface()
159 struct ieee80211_vif *vif) ath5k_remove_interface()
162 struct ath5k_vif *avf = (void *)vif->drv_priv; ath5k_remove_interface()
172 if (ah->bslot[i] == vif) { ath5k_remove_interface()
228 * separately eg. when we have only one STA vif, use ath5k_config()
252 ath5k_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ath5k_bss_info_changed() argument
255 struct ath5k_vif *avf = (void *)vif->drv_priv; ath5k_bss_info_changed()
304 ath5k_beacon_update(hw, vif); ath5k_bss_info_changed()
485 struct ieee80211_vif *vif, struct ieee80211_sta *sta, ath5k_set_key()
498 if (vif->type == NL80211_IFTYPE_ADHOC && ath5k_set_key()
524 ret = ath_key_config(common, vif, sta, key); ath5k_set_key()
551 struct ieee80211_vif *vif, ath5k_sw_scan_start()
561 ath5k_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath5k_sw_scan_complete() argument
588 ath5k_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, ath5k_conf_tx() argument
627 ath5k_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath5k_get_tsf() argument
636 ath5k_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u64 tsf) ath5k_set_tsf() argument
645 ath5k_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath5k_reset_tsf() argument
158 ath5k_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath5k_remove_interface() argument
484 ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) ath5k_set_key() argument
550 ath5k_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) ath5k_sw_scan_start() argument
H A Dbase.h91 void ath5k_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif);
98 int ath5k_beacon_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
103 struct ieee80211_vif *vif);
H A Dbase.c478 void ath5k_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif) ath5k_vif_iter() argument
482 struct ath5k_vif *avf = (void *)vif->drv_priv; ath5k_vif_iter()
520 struct ieee80211_vif *vif) ath5k_update_bssid_mask_and_opmode()
537 if (vif) ath5k_update_bssid_mask_and_opmode()
538 ath5k_vif_iter(&iter_data, vif->addr, vif); ath5k_update_bssid_mask_and_opmode()
757 ieee80211_get_tx_rates(info->control.vif, (control) ? control->sta : NULL, skb, bf->rates, ath5k_txbuf_setup()
787 info->control.vif, pktlen, info)); ath5k_txbuf_setup()
793 info->control.vif, pktlen, info)); ath5k_txbuf_setup()
1893 ath5k_beacon_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ath5k_beacon_update() argument
1900 if (WARN_ON(!vif)) { ath5k_beacon_update()
1905 skb = ieee80211_beacon_get(hw, vif); ath5k_beacon_update()
1912 avf = (void *)vif->drv_priv; ath5k_beacon_update()
1931 struct ieee80211_vif *vif; ath5k_beacon_send() local
1973 vif = ah->bslot[(slot + 1) % ATH_BCBUF]; ath5k_beacon_send()
1975 "tsf %llx tsftu %x intval %u slot %u vif %p\n", ath5k_beacon_send()
1976 (unsigned long long)tsf, tsftu, ah->bintval, slot, vif); ath5k_beacon_send()
1978 vif = ah->bslot[0]; ath5k_beacon_send()
1980 if (!vif) ath5k_beacon_send()
1983 avf = (void *)vif->drv_priv; ath5k_beacon_send()
1999 err = ath5k_beacon_update(ah->hw, vif); ath5k_beacon_send()
2017 skb = ieee80211_get_buffered_bc(ah->hw, vif); ath5k_beacon_send()
2024 skb = ieee80211_get_buffered_bc(ah->hw, vif); ath5k_beacon_send()
519 ath5k_update_bssid_mask_and_opmode(struct ath5k_hw *ah, struct ieee80211_vif *vif) ath5k_update_bssid_mask_and_opmode() argument
/linux-4.1.27/drivers/net/wireless/
H A Dmac80211_hwsim.c185 static inline void hwsim_check_magic(struct ieee80211_vif *vif) hwsim_check_magic() argument
187 struct hwsim_vif_priv *vp = (void *)vif->drv_priv; hwsim_check_magic()
190 vif, vp->magic, vif->addr, vif->type, vif->p2p); hwsim_check_magic()
193 static inline void hwsim_set_magic(struct ieee80211_vif *vif) hwsim_set_magic() argument
195 struct hwsim_vif_priv *vp = (void *)vif->drv_priv; hwsim_set_magic()
199 static inline void hwsim_clear_magic(struct ieee80211_vif *vif) hwsim_clear_magic() argument
201 struct hwsim_vif_priv *vp = (void *)vif->drv_priv; hwsim_clear_magic()
608 static void hwsim_send_ps_poll(void *dat, u8 *mac, struct ieee80211_vif *vif) hwsim_send_ps_poll() argument
611 struct hwsim_vif_priv *vp = (void *)vif->drv_priv; hwsim_send_ps_poll()
635 rcu_dereference(vif->chanctx_conf)->def.chan); hwsim_send_ps_poll()
640 struct ieee80211_vif *vif, int ps) hwsim_send_nullfunc()
642 struct hwsim_vif_priv *vp = (void *)vif->drv_priv; hwsim_send_nullfunc()
667 rcu_dereference(vif->chanctx_conf)->def.chan); hwsim_send_nullfunc()
673 struct ieee80211_vif *vif) hwsim_send_nullfunc_ps()
676 hwsim_send_nullfunc(data, mac, vif, 1); hwsim_send_nullfunc_ps()
680 struct ieee80211_vif *vif) hwsim_send_nullfunc_no_ps()
683 hwsim_send_nullfunc(data, mac, vif, 0); hwsim_send_nullfunc_no_ps()
778 struct ieee80211_vif *vif) mac80211_hwsim_get_tsf()
785 struct ieee80211_vif *vif, u64 tsf) mac80211_hwsim_set_tsf()
788 u64 now = mac80211_hwsim_get_tsf(hw, vif); mac80211_hwsim_set_tsf()
897 struct ieee80211_vif *vif) mac80211_hwsim_addr_iter()
1057 struct ieee80211_vif *vif) mac80211_hwsim_tx_iter()
1061 if (!vif->chanctx_conf) mac80211_hwsim_tx_iter()
1065 rcu_dereference(vif->chanctx_conf)->def.chan)) mac80211_hwsim_tx_iter()
1266 chanctx_conf = rcu_dereference(txi->control.vif->chanctx_conf); mac80211_hwsim_tx()
1284 if (txi->control.vif) mac80211_hwsim_tx()
1285 hwsim_check_magic(txi->control.vif); mac80211_hwsim_tx()
1290 ieee80211_get_tx_rates(txi->control.vif, control->sta, skb, mac80211_hwsim_tx()
1344 struct ieee80211_vif *vif) mac80211_hwsim_add_interface()
1347 __func__, ieee80211_vif_type_p2p(vif), mac80211_hwsim_add_interface()
1348 vif->addr); mac80211_hwsim_add_interface()
1349 hwsim_set_magic(vif); mac80211_hwsim_add_interface()
1351 vif->cab_queue = 0; mac80211_hwsim_add_interface()
1352 vif->hw_queue[IEEE80211_AC_VO] = 0; mac80211_hwsim_add_interface()
1353 vif->hw_queue[IEEE80211_AC_VI] = 1; mac80211_hwsim_add_interface()
1354 vif->hw_queue[IEEE80211_AC_BE] = 2; mac80211_hwsim_add_interface()
1355 vif->hw_queue[IEEE80211_AC_BK] = 3; mac80211_hwsim_add_interface()
1362 struct ieee80211_vif *vif, mac80211_hwsim_change_interface()
1369 __func__, ieee80211_vif_type_p2p(vif), mac80211_hwsim_change_interface()
1370 newtype, vif->addr); mac80211_hwsim_change_interface()
1371 hwsim_check_magic(vif); mac80211_hwsim_change_interface()
1377 vif->cab_queue = 0; mac80211_hwsim_change_interface()
1383 struct ieee80211_hw *hw, struct ieee80211_vif *vif) mac80211_hwsim_remove_interface()
1386 __func__, ieee80211_vif_type_p2p(vif), mac80211_hwsim_remove_interface()
1387 vif->addr); mac80211_hwsim_remove_interface()
1388 hwsim_check_magic(vif); mac80211_hwsim_remove_interface()
1389 hwsim_clear_magic(vif); mac80211_hwsim_remove_interface()
1400 ieee80211_get_tx_rates(txi->control.vif, NULL, skb, mac80211_hwsim_tx_frame()
1415 struct ieee80211_vif *vif) mac80211_hwsim_beacon_tx()
1424 hwsim_check_magic(vif); mac80211_hwsim_beacon_tx()
1426 if (vif->type != NL80211_IFTYPE_AP && mac80211_hwsim_beacon_tx()
1427 vif->type != NL80211_IFTYPE_MESH_POINT && mac80211_hwsim_beacon_tx()
1428 vif->type != NL80211_IFTYPE_ADHOC) mac80211_hwsim_beacon_tx()
1431 skb = ieee80211_beacon_get(hw, vif); mac80211_hwsim_beacon_tx()
1436 ieee80211_get_tx_rates(vif, NULL, skb, mac80211_hwsim_beacon_tx()
1450 rcu_dereference(vif->chanctx_conf)->def.chan); mac80211_hwsim_beacon_tx()
1452 if (vif->csa_active && ieee80211_csa_is_complete(vif)) mac80211_hwsim_beacon_tx()
1453 ieee80211_csa_finish(vif); mac80211_hwsim_beacon_tx()
1566 struct ieee80211_vif *vif) mac80211_hwsim_bcn_en_iter()
1569 struct hwsim_vif_priv *vp = (void *)vif->drv_priv; mac80211_hwsim_bcn_en_iter()
1576 struct ieee80211_vif *vif, mac80211_hwsim_bss_info_changed()
1580 struct hwsim_vif_priv *vp = (void *)vif->drv_priv; mac80211_hwsim_bss_info_changed()
1583 hwsim_check_magic(vif); mac80211_hwsim_bss_info_changed()
1585 wiphy_debug(hw->wiphy, "%s(changed=0x%x vif->addr=%pM)\n", mac80211_hwsim_bss_info_changed()
1586 __func__, changed, vif->addr); mac80211_hwsim_bss_info_changed()
1611 tsf = mac80211_hwsim_get_tsf(hw, vif); mac80211_hwsim_bss_info_changed()
1660 struct ieee80211_vif *vif, mac80211_hwsim_sta_add()
1663 hwsim_check_magic(vif); mac80211_hwsim_sta_add()
1670 struct ieee80211_vif *vif, mac80211_hwsim_sta_remove()
1673 hwsim_check_magic(vif); mac80211_hwsim_sta_remove()
1680 struct ieee80211_vif *vif, mac80211_hwsim_sta_notify()
1684 hwsim_check_magic(vif); mac80211_hwsim_sta_notify()
1707 struct ieee80211_vif *vif, u16 queue, mac80211_hwsim_conf_tx()
1774 struct ieee80211_vif *vif, mac80211_hwsim_testmode_cmd()
1821 struct ieee80211_vif *vif, mac80211_hwsim_ampdu_action()
1828 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); mac80211_hwsim_ampdu_action()
1833 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); mac80211_hwsim_ampdu_action()
1848 struct ieee80211_vif *vif, mac80211_hwsim_flush()
1910 struct ieee80211_vif *vif, mac80211_hwsim_hw_scan()
1922 hwsim->hw_scan_vif = vif; mac80211_hwsim_hw_scan()
1929 memcpy(hwsim->scan_addr, vif->addr, ETH_ALEN); mac80211_hwsim_hw_scan()
1940 struct ieee80211_vif *vif) mac80211_hwsim_cancel_hw_scan()
1957 struct ieee80211_vif *vif, mac80211_hwsim_sw_scan()
1979 struct ieee80211_vif *vif) mac80211_hwsim_sw_scan_complete()
2006 struct ieee80211_vif *vif, mac80211_hwsim_roc()
2081 struct ieee80211_vif *vif, mac80211_hwsim_assign_vif_chanctx()
2084 hwsim_check_magic(vif); mac80211_hwsim_assign_vif_chanctx()
2091 struct ieee80211_vif *vif, mac80211_hwsim_unassign_vif_chanctx()
2094 hwsim_check_magic(vif); mac80211_hwsim_unassign_vif_chanctx()
2113 struct ieee80211_vif *vif, mac80211_hwsim_get_et_strings()
2122 struct ieee80211_vif *vif, int sset) mac80211_hwsim_get_et_sset_count()
2130 struct ieee80211_vif *vif, mac80211_hwsim_get_et_stats()
639 hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac, struct ieee80211_vif *vif, int ps) hwsim_send_nullfunc() argument
672 hwsim_send_nullfunc_ps(void *dat, u8 *mac, struct ieee80211_vif *vif) hwsim_send_nullfunc_ps() argument
679 hwsim_send_nullfunc_no_ps(void *dat, u8 *mac, struct ieee80211_vif *vif) hwsim_send_nullfunc_no_ps() argument
777 mac80211_hwsim_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mac80211_hwsim_get_tsf() argument
784 mac80211_hwsim_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u64 tsf) mac80211_hwsim_set_tsf() argument
896 mac80211_hwsim_addr_iter(void *data, u8 *mac, struct ieee80211_vif *vif) mac80211_hwsim_addr_iter() argument
1056 mac80211_hwsim_tx_iter(void *_data, u8 *addr, struct ieee80211_vif *vif) mac80211_hwsim_tx_iter() argument
1343 mac80211_hwsim_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mac80211_hwsim_add_interface() argument
1361 mac80211_hwsim_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum nl80211_iftype newtype, bool newp2p) mac80211_hwsim_change_interface() argument
1382 mac80211_hwsim_remove_interface( struct ieee80211_hw *hw, struct ieee80211_vif *vif) mac80211_hwsim_remove_interface() argument
1414 mac80211_hwsim_beacon_tx(void *arg, u8 *mac, struct ieee80211_vif *vif) mac80211_hwsim_beacon_tx() argument
1565 mac80211_hwsim_bcn_en_iter(void *data, u8 *mac, struct ieee80211_vif *vif) mac80211_hwsim_bcn_en_iter() argument
1575 mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *info, u32 changed) mac80211_hwsim_bss_info_changed() argument
1659 mac80211_hwsim_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) mac80211_hwsim_sta_add() argument
1669 mac80211_hwsim_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) mac80211_hwsim_sta_remove() argument
1679 mac80211_hwsim_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta) mac80211_hwsim_sta_notify() argument
1705 mac80211_hwsim_conf_tx( struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) mac80211_hwsim_conf_tx() argument
1773 mac80211_hwsim_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void *data, int len) mac80211_hwsim_testmode_cmd() argument
1820 mac80211_hwsim_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) mac80211_hwsim_ampdu_action() argument
1847 mac80211_hwsim_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 queues, bool drop) mac80211_hwsim_flush() argument
1909 mac80211_hwsim_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) mac80211_hwsim_hw_scan() argument
1939 mac80211_hwsim_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mac80211_hwsim_cancel_hw_scan() argument
1956 mac80211_hwsim_sw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) mac80211_hwsim_sw_scan() argument
1978 mac80211_hwsim_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mac80211_hwsim_sw_scan_complete() argument
2005 mac80211_hwsim_roc(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel *chan, int duration, enum ieee80211_roc_type type) mac80211_hwsim_roc() argument
2080 mac80211_hwsim_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *ctx) mac80211_hwsim_assign_vif_chanctx() argument
2090 mac80211_hwsim_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_chanctx_conf *ctx) mac80211_hwsim_unassign_vif_chanctx() argument
2112 mac80211_hwsim_get_et_strings(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 sset, u8 *data) mac80211_hwsim_get_et_strings() argument
2121 mac80211_hwsim_get_et_sset_count(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int sset) mac80211_hwsim_get_et_sset_count() argument
2129 mac80211_hwsim_get_et_stats(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ethtool_stats *stats, u64 *data) mac80211_hwsim_get_et_stats() argument
H A Dmwl8k.c311 struct ieee80211_vif *vif; member in struct:mwl8k_vif
313 /* Firmware macid for this vif. */
415 #define MWL8K_CMD_SET_BEACON 0x0100 /* per-vif */
429 #define MWL8K_CMD_SET_MAC_ADDR 0x0202 /* per-vif */
432 #define MWL8K_CMD_DEL_MAC_ADDR 0x0206 /* per-vif */
433 #define MWL8K_CMD_BSS_START 0x1100 /* per-vif */
434 #define MWL8K_CMD_SET_NEW_STN 0x1111 /* per-vif */
435 #define MWL8K_CMD_UPDATE_ENCRYPTION 0x1122 /* per-vif */
1926 mwl8k_vif = MWL8K_VIF(tx_info->control.vif); mwl8k_txq_xmit()
2282 struct ieee80211_vif *vif, mwl8k_post_pervif_cmd()
2285 if (vif != NULL) mwl8k_post_pervif_cmd()
2286 cmd->macid = MWL8K_VIF(vif)->macid; mwl8k_post_pervif_cmd()
2949 struct ieee80211_vif *vif, u8 *beacon, int len) mwl8k_cmd_set_beacon()
2963 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_set_beacon()
3223 struct ieee80211_vif *vif, u32 legacy_rate_mask) mwl8k_cmd_set_aid()
3235 cmd->aid = cpu_to_le16(vif->bss_conf.aid); mwl8k_cmd_set_aid()
3236 memcpy(cmd->bssid, vif->bss_conf.bssid, ETH_ALEN); mwl8k_cmd_set_aid()
3238 if (vif->bss_conf.use_cts_prot) { mwl8k_cmd_set_aid()
3241 switch (vif->bss_conf.ht_operation_mode & mwl8k_cmd_set_aid()
3277 mwl8k_cmd_set_rate(struct ieee80211_hw *hw, struct ieee80211_vif *vif, mwl8k_cmd_set_rate() argument
3672 struct ieee80211_vif *vif, u8 *mac, bool set) mwl8k_cmd_update_mac_addr()
3675 struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif); mwl8k_cmd_update_mac_addr()
3681 if (vif != NULL && vif->type == NL80211_IFTYPE_STATION) { mwl8k_cmd_update_mac_addr()
3689 } else if (vif != NULL && vif->type == NL80211_IFTYPE_AP) { mwl8k_cmd_update_mac_addr()
3713 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_update_mac_addr()
3723 struct ieee80211_vif *vif, u8 *mac) mwl8k_cmd_set_mac_addr()
3725 return mwl8k_cmd_update_mac_addr(hw, vif, mac, true); mwl8k_cmd_set_mac_addr()
3732 struct ieee80211_vif *vif, u8 *mac) mwl8k_cmd_del_mac_addr()
3734 return mwl8k_cmd_update_mac_addr(hw, vif, mac, false); mwl8k_cmd_del_mac_addr()
3855 struct ieee80211_vif *vif, int enable) mwl8k_cmd_bss_start()
3858 struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif); mwl8k_cmd_bss_start()
3876 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_bss_start()
3892 struct ieee80211_vif *vif; mwl8k_enable_bsses() local
3895 vif = mwl8k_vif->vif; mwl8k_enable_bsses()
3900 if (vif->type == NL80211_IFTYPE_AP) mwl8k_enable_bsses()
3901 mwl8k_cmd_bss_start(hw, vif, enable); mwl8k_enable_bsses()
3955 struct ieee80211_vif *vif) mwl8k_check_ba()
3978 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_check_ba()
3987 u8 buf_size, struct ieee80211_vif *vif) mwl8k_create_ba()
4021 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_create_ba()
4080 struct ieee80211_vif *vif, mwl8k_cmd_set_new_stn_add()
4113 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_set_new_stn_add()
4120 struct ieee80211_vif *vif) mwl8k_cmd_set_new_stn_add_self()
4131 memcpy(cmd->mac_addr, vif->addr, ETH_ALEN); mwl8k_cmd_set_new_stn_add_self()
4133 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_set_new_stn_add_self()
4140 struct ieee80211_vif *vif, u8 *addr) mwl8k_cmd_set_new_stn_del()
4177 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_set_new_stn_del()
4246 struct ieee80211_vif *vif, mwl8k_cmd_update_encryption_enable()
4263 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_update_encryption_enable()
4311 struct ieee80211_vif *vif, mwl8k_cmd_encryption_set_key()
4320 struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif); mwl8k_cmd_encryption_set_key()
4363 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_encryption_set_key()
4371 struct ieee80211_vif *vif, mwl8k_cmd_encryption_remove_key()
4377 struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif); mwl8k_cmd_encryption_remove_key()
4393 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_encryption_remove_key()
4402 struct ieee80211_vif *vif, mwl8k_set_key()
4409 struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif); mwl8k_set_key()
4412 if (vif->type == NL80211_IFTYPE_STATION && !priv->ap_fw) mwl8k_set_key()
4416 addr = vif->addr; mwl8k_set_key()
4421 rc = mwl8k_cmd_encryption_set_key(hw, vif, addr, key); mwl8k_set_key()
4431 rc = mwl8k_cmd_update_encryption_enable(hw, vif, addr, mwl8k_set_key()
4439 rc = mwl8k_cmd_encryption_remove_key(hw, vif, addr, key); mwl8k_set_key()
4508 struct ieee80211_vif *vif, mwl8k_cmd_update_stadb_add()
4527 p->basic_caps = cpu_to_le16(vif->bss_conf.assoc_capability); mwl8k_cmd_update_stadb_add()
4550 struct ieee80211_vif *vif, u8 *addr) mwl8k_cmd_update_stadb_del()
4784 struct ieee80211_vif *vif) mwl8k_add_interface()
4804 switch (vif->type) { mwl8k_add_interface()
4842 mwl8k_vif = MWL8K_VIF(vif); mwl8k_add_interface()
4844 mwl8k_vif->vif = vif; mwl8k_add_interface()
4847 memcpy(mwl8k_vif->bssid, vif->addr, ETH_ALEN); mwl8k_add_interface()
4851 mwl8k_cmd_set_mac_addr(hw, vif, vif->addr); mwl8k_add_interface()
4853 if (vif->type == NL80211_IFTYPE_AP) mwl8k_add_interface()
4854 mwl8k_cmd_set_new_stn_add_self(hw, vif); mwl8k_add_interface()
4862 static void mwl8k_remove_vif(struct mwl8k_priv *priv, struct mwl8k_vif *vif) mwl8k_remove_vif() argument
4868 priv->macids_used &= ~(1 << vif->macid); mwl8k_remove_vif()
4869 list_del(&vif->list); mwl8k_remove_vif()
4873 struct ieee80211_vif *vif) mwl8k_remove_interface()
4876 struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif); mwl8k_remove_interface()
4878 if (vif->type == NL80211_IFTYPE_AP) mwl8k_remove_interface()
4879 mwl8k_cmd_set_new_stn_del(hw, vif, vif->addr); mwl8k_remove_interface()
4881 mwl8k_cmd_del_mac_addr(hw, vif, vif->addr); mwl8k_remove_interface()
4982 mwl8k_bss_info_changed_sta(struct ieee80211_hw *hw, struct ieee80211_vif *vif, mwl8k_bss_info_changed_sta() argument
4996 if ((changed & BSS_CHANGED_ASSOC) && !vif->bss_conf.assoc) mwl8k_bss_info_changed_sta()
5002 if (vif->bss_conf.assoc) { mwl8k_bss_info_changed_sta()
5007 ap = ieee80211_find_sta(vif, vif->bss_conf.bssid); mwl8k_bss_info_changed_sta()
5024 if ((changed & BSS_CHANGED_ASSOC) && vif->bss_conf.assoc && mwl8k_bss_info_changed_sta()
5026 rc = mwl8k_cmd_set_rate(hw, vif, ap_legacy_rates, ap_mcs_rates); mwl8k_bss_info_changed_sta()
5034 if ((changed & BSS_CHANGED_ASSOC) && vif->bss_conf.assoc && mwl8k_bss_info_changed_sta()
5041 idx = ffs(vif->bss_conf.basic_rates); mwl8k_bss_info_changed_sta()
5056 vif->bss_conf.use_short_preamble); mwl8k_bss_info_changed_sta()
5062 rc = mwl8k_cmd_set_slot(hw, vif->bss_conf.use_short_slot); mwl8k_bss_info_changed_sta()
5067 if (vif->bss_conf.assoc && !priv->ap_fw && mwl8k_bss_info_changed_sta()
5070 rc = mwl8k_cmd_set_aid(hw, vif, ap_legacy_rates); mwl8k_bss_info_changed_sta()
5075 if (vif->bss_conf.assoc && mwl8k_bss_info_changed_sta()
5081 memcpy(priv->capture_bssid, vif->bss_conf.bssid, ETH_ALEN); mwl8k_bss_info_changed_sta()
5090 mwl8k_bss_info_changed_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif, mwl8k_bss_info_changed_ap() argument
5100 vif->bss_conf.use_short_preamble); mwl8k_bss_info_changed_ap()
5114 idx = ffs(vif->bss_conf.basic_rates); mwl8k_bss_info_changed_ap()
5129 skb = ieee80211_beacon_get(hw, vif); mwl8k_bss_info_changed_ap()
5131 mwl8k_cmd_set_beacon(hw, vif, skb->data, skb->len); mwl8k_bss_info_changed_ap()
5137 mwl8k_cmd_bss_start(hw, vif, info->enable_beacon); mwl8k_bss_info_changed_ap()
5144 mwl8k_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, mwl8k_bss_info_changed() argument
5147 if (vif->type == NL80211_IFTYPE_STATION) mwl8k_bss_info_changed()
5148 mwl8k_bss_info_changed_sta(hw, vif, info, changed); mwl8k_bss_info_changed()
5149 if (vif->type == NL80211_IFTYPE_AP) mwl8k_bss_info_changed()
5150 mwl8k_bss_info_changed_ap(hw, vif, info, changed); mwl8k_bss_info_changed()
5271 bssid = mwl8k_vif->vif->bss_conf.bssid; mwl8k_configure_filter()
5304 struct ieee80211_vif *vif, mwl8k_sta_remove()
5310 return mwl8k_cmd_set_new_stn_del(hw, vif, sta->addr); mwl8k_sta_remove()
5312 return mwl8k_cmd_update_stadb_del(hw, vif, sta->addr); mwl8k_sta_remove()
5316 struct ieee80211_vif *vif, mwl8k_sta_add()
5322 struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif); mwl8k_sta_add()
5326 ret = mwl8k_cmd_update_stadb_add(hw, vif, sta); mwl8k_sta_add()
5335 ret = mwl8k_cmd_set_new_stn_add(hw, vif, sta); mwl8k_sta_add()
5341 mwl8k_set_key(hw, SET_KEY, vif, sta, key); mwl8k_sta_add()
5347 struct ieee80211_vif *vif, u16 queue, mwl8k_conf_tx()
5422 mwl8k_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, mwl8k_ampdu_action() argument
5484 rc = mwl8k_check_ba(hw, stream, vif); mwl8k_ampdu_action()
5507 ieee80211_start_tx_ba_cb_irqsafe(vif, addr, tid); mwl8k_ampdu_action()
5521 ieee80211_stop_tx_ba_cb_irqsafe(vif, addr, tid); mwl8k_ampdu_action()
5527 rc = mwl8k_create_ba(hw, stream, buf_size, vif); mwl8k_ampdu_action()
5552 struct ieee80211_vif *vif, mwl8k_sw_scan_start()
5571 struct ieee80211_vif *vif) mwl8k_sw_scan_complete()
5993 struct mwl8k_vif *vif, *tmp_vif; mwl8k_reload_firmware() local
6004 list_for_each_entry_safe(vif, tmp_vif, &priv->vif_list, list) mwl8k_reload_firmware()
6005 mwl8k_remove_vif(priv, vif); mwl8k_reload_firmware()
2281 mwl8k_post_pervif_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct mwl8k_cmd_pkt *cmd) mwl8k_post_pervif_cmd() argument
2948 mwl8k_cmd_set_beacon(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *beacon, int len) mwl8k_cmd_set_beacon() argument
3222 mwl8k_cmd_set_aid(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 legacy_rate_mask) mwl8k_cmd_set_aid() argument
3671 mwl8k_cmd_update_mac_addr(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *mac, bool set) mwl8k_cmd_update_mac_addr() argument
3722 mwl8k_cmd_set_mac_addr(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *mac) mwl8k_cmd_set_mac_addr() argument
3731 mwl8k_cmd_del_mac_addr(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *mac) mwl8k_cmd_del_mac_addr() argument
3854 mwl8k_cmd_bss_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int enable) mwl8k_cmd_bss_start() argument
3954 mwl8k_check_ba(struct ieee80211_hw *hw, struct mwl8k_ampdu_stream *stream, struct ieee80211_vif *vif) mwl8k_check_ba() argument
3986 mwl8k_create_ba(struct ieee80211_hw *hw, struct mwl8k_ampdu_stream *stream, u8 buf_size, struct ieee80211_vif *vif) mwl8k_create_ba() argument
4079 mwl8k_cmd_set_new_stn_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) mwl8k_cmd_set_new_stn_add() argument
4119 mwl8k_cmd_set_new_stn_add_self(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mwl8k_cmd_set_new_stn_add_self() argument
4139 mwl8k_cmd_set_new_stn_del(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *addr) mwl8k_cmd_set_new_stn_del() argument
4245 mwl8k_cmd_update_encryption_enable(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *addr, u8 encr_type) mwl8k_cmd_update_encryption_enable() argument
4310 mwl8k_cmd_encryption_set_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *addr, struct ieee80211_key_conf *key) mwl8k_cmd_encryption_set_key() argument
4370 mwl8k_cmd_encryption_remove_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *addr, struct ieee80211_key_conf *key) mwl8k_cmd_encryption_remove_key() argument
4400 mwl8k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd_param, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) mwl8k_set_key() argument
4507 mwl8k_cmd_update_stadb_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) mwl8k_cmd_update_stadb_add() argument
4549 mwl8k_cmd_update_stadb_del(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u8 *addr) mwl8k_cmd_update_stadb_del() argument
4783 mwl8k_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mwl8k_add_interface() argument
4872 mwl8k_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mwl8k_remove_interface() argument
5303 mwl8k_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) mwl8k_sta_remove() argument
5315 mwl8k_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) mwl8k_sta_add() argument
5346 mwl8k_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) mwl8k_conf_tx() argument
5551 mwl8k_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) mwl8k_sw_scan_start() argument
5570 mwl8k_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mwl8k_sw_scan_complete() argument
H A Dmac80211_hwsim.h124 * @HWSIM_ATTR_NO_VIF: Do not create vif (wlanX) when creating radio.
H A Dadm8211.c1253 struct ieee80211_vif *vif) adm8211_get_tsft()
1307 struct ieee80211_vif *vif, adm8211_bss_info_changed()
1392 struct ieee80211_vif *vif) adm8211_add_interface()
1398 switch (vif->type) { adm8211_add_interface()
1400 priv->mode = vif->type; adm8211_add_interface()
1408 ADM8211_CSR_WRITE(PAR0, le32_to_cpu(*(__le32 *)vif->addr)); adm8211_add_interface()
1409 ADM8211_CSR_WRITE(PAR1, le16_to_cpu(*(__le16 *)(vif->addr + 4))); adm8211_add_interface()
1419 struct ieee80211_vif *vif) adm8211_remove_interface()
1252 adm8211_get_tsft(struct ieee80211_hw *dev, struct ieee80211_vif *vif) adm8211_get_tsft() argument
1306 adm8211_bss_info_changed(struct ieee80211_hw *dev, struct ieee80211_vif *vif, struct ieee80211_bss_conf *conf, u32 changes) adm8211_bss_info_changed() argument
1391 adm8211_add_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) adm8211_add_interface() argument
1418 adm8211_remove_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) adm8211_remove_interface() argument
/linux-4.1.27/drivers/net/wireless/ti/wl1251/
H A Devent.c131 if (wl->vif && wl->vif->type == NL80211_IFTYPE_STATION) wl1251_event_process()
132 ieee80211_beacon_loss(wl->vif); wl1251_event_process()
143 if (wl->vif && wl->rssi_thold) { wl1251_event_process()
147 ieee80211_cqm_rssi_notify(wl->vif, wl1251_event_process()
155 ieee80211_cqm_rssi_notify(wl->vif, wl1251_event_process()
H A Dmain.c497 struct ieee80211_vif *vif) wl1251_op_add_interface()
502 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER | wl1251_op_add_interface()
507 vif->type, vif->addr); wl1251_op_add_interface()
510 if (wl->vif) { wl1251_op_add_interface()
515 wl->vif = vif; wl1251_op_add_interface()
517 switch (vif->type) { wl1251_op_add_interface()
529 if (!ether_addr_equal_unaligned(wl->mac_addr, vif->addr)) { wl1251_op_add_interface()
530 memcpy(wl->mac_addr, vif->addr, ETH_ALEN); wl1251_op_add_interface()
543 struct ieee80211_vif *vif) wl1251_op_remove_interface()
549 wl->vif = NULL; wl1251_op_remove_interface()
565 skb = ieee80211_nullfunc_get(wl->hw, wl->vif); wl1251_build_null_data()
656 if (wl->vif == NULL) { wl1251_op_config()
888 struct ieee80211_vif *vif, wl1251_op_set_key()
994 struct ieee80211_vif *vif, wl1251_op_hw_scan()
1033 skb = ieee80211_probereq_get(wl->hw, wl->vif->addr, ssid, ssid_len, wl1251_op_hw_scan()
1099 struct ieee80211_vif *vif, wl1251_op_bss_info_changed()
1150 skb = ieee80211_pspoll_get(wl->hw, wl->vif); wl1251_op_bss_info_changed()
1211 beacon = ieee80211_beacon_get(hw, vif); wl1251_op_bss_info_changed()
1307 struct ieee80211_vif *vif, u16 queue, wl1251_op_conf_tx()
1555 wl->vif = NULL; wl1251_alloc_hw()
496 wl1251_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wl1251_op_add_interface() argument
542 wl1251_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wl1251_op_remove_interface() argument
887 wl1251_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) wl1251_op_set_key() argument
993 wl1251_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_scan_request *hw_req) wl1251_op_hw_scan() argument
1098 wl1251_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) wl1251_op_bss_info_changed() argument
1306 wl1251_op_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) wl1251_op_conf_tx() argument
/linux-4.1.27/include/xen/interface/io/
H A Dnetif.h56 * the directory for that vif, and set its value to the maximum supported
82 * /local/domain/1/device/vif/0/multi-queue-num-queues = "2"
83 * /local/domain/1/device/vif/0/queue-0 = ""
84 * /local/domain/1/device/vif/0/queue-0/tx-ring-ref = "<ring-ref-tx0>"
85 * /local/domain/1/device/vif/0/queue-0/rx-ring-ref = "<ring-ref-rx0>"
86 * /local/domain/1/device/vif/0/queue-0/event-channel-tx = "<evtchn-tx0>"
87 * /local/domain/1/device/vif/0/queue-0/event-channel-rx = "<evtchn-rx0>"
88 * /local/domain/1/device/vif/0/queue-1 = ""
89 * /local/domain/1/device/vif/0/queue-1/tx-ring-ref = "<ring-ref-tx1>"
90 * /local/domain/1/device/vif/0/queue-1/rx-ring-ref = "<ring-ref-rx1"
91 * /local/domain/1/device/vif/0/queue-1/event-channel-tx = "<evtchn-tx1>"
92 * /local/domain/1/device/vif/0/queue-1/event-channel-rx = "<evtchn-rx1>"
/linux-4.1.27/drivers/net/wireless/rtlwifi/
H A Dcore.c236 struct ieee80211_vif *vif) rtl_op_add_interface()
242 if (mac->vif) { rtl_op_add_interface()
244 "vif has been set!! mac->vif = 0x%p\n", mac->vif); rtl_op_add_interface()
248 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER; rtl_op_add_interface()
253 switch (ieee80211_vif_type_p2p(vif)) { rtl_op_add_interface()
311 "operation mode %d is not support!\n", vif->type); rtl_op_add_interface()
318 "p2p role %x\n", vif->type); rtl_op_add_interface()
323 mac->vif = vif; rtl_op_add_interface()
324 mac->opmode = vif->type; rtl_op_add_interface()
325 rtlpriv->cfg->ops->set_network_type(hw, vif->type); rtl_op_add_interface()
326 memcpy(mac->mac_addr, vif->addr, ETH_ALEN); rtl_op_add_interface()
335 struct ieee80211_vif *vif) rtl_op_remove_interface()
343 if ((vif->type == NL80211_IFTYPE_AP) || rtl_op_remove_interface()
344 (vif->type == NL80211_IFTYPE_ADHOC) || rtl_op_remove_interface()
345 (vif->type == NL80211_IFTYPE_MESH_POINT)) { rtl_op_remove_interface()
358 mac->vif = NULL; rtl_op_remove_interface()
368 struct ieee80211_vif *vif, rtl_op_change_interface()
373 rtl_op_remove_interface(hw, vif); rtl_op_change_interface()
375 vif->type = new_type; rtl_op_change_interface()
376 vif->p2p = p2p; rtl_op_change_interface()
377 ret = rtl_op_add_interface(hw, vif); rtl_op_change_interface()
588 ieee80211_resume_disconnect(mac->vif); rtl_op_resume()
898 struct ieee80211_vif *vif, rtl_op_sta_add()
918 if (vif->type == NL80211_IFTYPE_ADHOC) rtl_op_sta_add()
927 if (vif->type == NL80211_IFTYPE_ADHOC) rtl_op_sta_add()
944 struct ieee80211_vif *vif, rtl_op_sta_remove()
990 struct ieee80211_vif *vif, u16 queue, rtl_op_conf_tx()
1014 struct ieee80211_vif *vif) send_beacon_frame()
1017 struct sk_buff *skb = ieee80211_beacon_get(hw, vif); send_beacon_frame()
1027 struct ieee80211_vif *vif, rtl_op_bss_info_changed()
1037 if ((vif->type == NL80211_IFTYPE_ADHOC) || rtl_op_bss_info_changed()
1038 (vif->type == NL80211_IFTYPE_AP) || rtl_op_bss_info_changed()
1039 (vif->type == NL80211_IFTYPE_MESH_POINT)) { rtl_op_bss_info_changed()
1056 send_beacon_frame(hw, vif); rtl_op_bss_info_changed()
1106 sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid); rtl_op_bss_info_changed()
1142 if (vif->type == NL80211_IFTYPE_STATION && sta) rtl_op_bss_info_changed()
1174 rtlpriv->cfg->ops->set_network_type(hw, vif->type); rtl_op_bss_info_changed()
1225 sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid); rtl_op_bss_info_changed()
1260 sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid); rtl_op_bss_info_changed()
1291 if (vif->type == NL80211_IFTYPE_STATION) { rtl_op_bss_info_changed()
1329 static u64 rtl_op_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rtl_op_get_tsf() argument
1339 struct ieee80211_vif *vif, u64 tsf) rtl_op_set_tsf()
1349 static void rtl_op_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rtl_op_reset_tsf() argument
1358 struct ieee80211_vif *vif, rtl_op_sta_notify()
1373 struct ieee80211_vif *vif, rtl_op_ampdu_action()
1384 return rtl_tx_agg_start(hw, vif, sta, tid, ssn); rtl_op_ampdu_action()
1390 return rtl_tx_agg_stop(hw, vif, sta, tid); rtl_op_ampdu_action()
1413 struct ieee80211_vif *vif, rtl_op_sw_scan_start()
1450 struct ieee80211_vif *vif) rtl_op_sw_scan_complete()
1484 struct ieee80211_vif *vif, struct ieee80211_sta *sta, rtl_op_set_key()
1502 if (((vif->type == NL80211_IFTYPE_ADHOC) || rtl_op_set_key()
1503 (vif->type == NL80211_IFTYPE_MESH_POINT)) && rtl_op_set_key()
1549 vif->type == NL80211_IFTYPE_ADHOC) rtl_op_set_key()
1569 if (vif->type == NL80211_IFTYPE_AP || rtl_op_set_key()
1570 vif->type == NL80211_IFTYPE_MESH_POINT) { rtl_op_set_key()
1578 if ((!group_key) || (vif->type == NL80211_IFTYPE_ADHOC) || rtl_op_set_key()
1653 if (vif->type == NL80211_IFTYPE_AP || rtl_op_set_key()
1654 vif->type == NL80211_IFTYPE_MESH_POINT) { rtl_op_set_key()
1715 struct ieee80211_vif *vif, rtl_op_flush()
235 rtl_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rtl_op_add_interface() argument
334 rtl_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rtl_op_remove_interface() argument
367 rtl_op_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum nl80211_iftype new_type, bool p2p) rtl_op_change_interface() argument
897 rtl_op_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) rtl_op_sta_add() argument
943 rtl_op_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) rtl_op_sta_remove() argument
989 rtl_op_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *param) rtl_op_conf_tx() argument
1013 send_beacon_frame(struct ieee80211_hw *hw, struct ieee80211_vif *vif) send_beacon_frame() argument
1026 rtl_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) rtl_op_bss_info_changed() argument
1338 rtl_op_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u64 tsf) rtl_op_set_tsf() argument
1357 rtl_op_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta) rtl_op_sta_notify() argument
1372 rtl_op_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) rtl_op_ampdu_action() argument
1412 rtl_op_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) rtl_op_sw_scan_start() argument
1449 rtl_op_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rtl_op_sw_scan_complete() argument
1483 rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) rtl_op_set_key() argument
1714 rtl_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 queues, bool drop) rtl_op_flush() argument
H A Dbase.h127 int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
129 int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
/linux-4.1.27/net/ipv6/
H A Dip6mr.c83 /* Big lock, protecting vif table, mrt cache and mroute socket state.
454 const struct mif_device *vif = v; ip6mr_vif_seq_show() local
455 const char *name = vif->dev ? vif->dev->name : "none"; ip6mr_vif_seq_show()
459 vif - mrt->vif6_table, ip6mr_vif_seq_show()
460 name, vif->bytes_in, vif->pkt_in, ip6mr_vif_seq_show()
461 vif->bytes_out, vif->pkt_out, ip6mr_vif_seq_show()
462 vif->flags); ip6mr_vif_seq_show()
940 /* Is vif busy ? */ mif6_add()
1543 * Close the multicast socket, and clear the vif tables etc
1553 * Shut down all active vif entries mroute_clean_tables()
1665 struct mif6ctl vif; ip6_mroute_setsockopt() local
1694 if (optlen < sizeof(vif)) ip6_mroute_setsockopt()
1696 if (copy_from_user(&vif, optval, sizeof(vif))) ip6_mroute_setsockopt()
1698 if (vif.mif6c_mifi >= MAXMIFS) ip6_mroute_setsockopt()
1701 ret = mif6_add(net, mrt, &vif, sk == mrt->mroute6_sk); ip6_mroute_setsockopt()
1862 struct mif_device *vif; ip6mr_ioctl() local
1878 vif = &mrt->vif6_table[vr.mifi]; ip6mr_ioctl()
1880 vr.icount = vif->pkt_in; ip6mr_ioctl()
1881 vr.ocount = vif->pkt_out; ip6mr_ioctl()
1882 vr.ibytes = vif->bytes_in; ip6mr_ioctl()
1883 vr.obytes = vif->bytes_out; ip6mr_ioctl()
1936 struct mif_device *vif; ip6mr_compat_ioctl() local
1952 vif = &mrt->vif6_table[vr.mifi]; ip6mr_compat_ioctl()
1954 vr.icount = vif->pkt_in; ip6mr_compat_ioctl()
1955 vr.ocount = vif->pkt_out; ip6mr_compat_ioctl()
1956 vr.ibytes = vif->bytes_in; ip6mr_compat_ioctl()
1957 vr.obytes = vif->bytes_out; ip6mr_compat_ioctl()
2007 struct mif_device *vif = &mrt->vif6_table[vifi]; ip6mr_forward2() local
2012 if (!vif->dev) ip6mr_forward2()
2016 if (vif->flags & MIFF_REGISTER) { ip6mr_forward2()
2017 vif->pkt_out++; ip6mr_forward2()
2018 vif->bytes_out += skb->len; ip6mr_forward2()
2019 vif->dev->stats.tx_bytes += skb->len; ip6mr_forward2()
2020 vif->dev->stats.tx_packets++; ip6mr_forward2()
2029 .flowi6_oif = vif->link, ip6mr_forward2()
2053 dev = vif->dev; ip6mr_forward2()
2055 vif->pkt_out++; ip6mr_forward2()
2056 vif->bytes_out += skb->len; ip6mr_forward2()
2092 int vif, ct; ip6_mr_forward() local
2095 vif = cache->mf6c_parent; ip6_mr_forward()
2105 cache_proxy = ip6mr_cache_find_any_parent(mrt, vif); ip6_mr_forward()
2114 if (mrt->vif6_table[vif].dev != skb->dev) { ip6_mr_forward()
2134 mrt->vif6_table[vif].pkt_in++; ip6_mr_forward()
2135 mrt->vif6_table[vif].bytes_in += skb->len; ip6_mr_forward()
2203 int vif = ip6mr_find_vif(mrt, skb->dev); ip6_mr_input() local
2205 if (vif >= 0) ip6_mr_input()
2208 vif); ip6_mr_input()
2215 int vif; ip6_mr_input() local
2217 vif = ip6mr_find_vif(mrt, skb->dev); ip6_mr_input()
2218 if (vif >= 0) { ip6_mr_input()
2219 int err = ip6mr_cache_unresolved(mrt, vif, skb); ip6_mr_input()
2298 int vif = ip6mr_find_vif(mrt, skb->dev); ip6mr_get_route() local
2300 if (vif >= 0) ip6mr_get_route()
2302 vif); ip6mr_get_route()
2309 int vif; ip6mr_get_route() local
2317 if (!dev || (vif = ip6mr_find_vif(mrt, dev)) < 0) { ip6mr_get_route()
2346 err = ip6mr_cache_unresolved(mrt, vif, skb2); ip6mr_get_route()
/linux-4.1.27/drivers/net/wireless/rt2x00/
H A Drt2x00mac.c83 ieee80211_ctstoself_get(rt2x00dev->hw, tx_info->control.vif, rt2x00mac_tx_rts_cts()
87 ieee80211_rts_get(rt2x00dev->hw, tx_info->control.vif, rt2x00mac_tx_rts_cts()
199 struct ieee80211_vif *vif) rt2x00mac_add_interface()
202 struct rt2x00_intf *intf = vif_to_intf(vif); rt2x00mac_add_interface()
235 if (vif->type == NL80211_IFTYPE_AP) rt2x00mac_add_interface()
252 rt2x00lib_config_intf(rt2x00dev, intf, vif->type, rt2x00mac_add_interface()
253 vif->addr, NULL); rt2x00mac_add_interface()
267 struct ieee80211_vif *vif) rt2x00mac_remove_interface()
270 struct rt2x00_intf *intf = vif_to_intf(vif); rt2x00mac_remove_interface()
278 (vif->type == NL80211_IFTYPE_AP && !rt2x00dev->intf_ap_count) || rt2x00mac_remove_interface()
279 (vif->type != NL80211_IFTYPE_AP && !rt2x00dev->intf_sta_count)) rt2x00mac_remove_interface()
282 if (vif->type == NL80211_IFTYPE_AP) rt2x00mac_remove_interface()
404 struct ieee80211_vif *vif) rt2x00mac_set_tim_iter()
406 struct rt2x00_intf *intf = vif_to_intf(vif); rt2x00mac_set_tim_iter()
408 if (vif->type != NL80211_IFTYPE_AP && rt2x00mac_set_tim_iter()
409 vif->type != NL80211_IFTYPE_ADHOC && rt2x00mac_set_tim_iter()
410 vif->type != NL80211_IFTYPE_MESH_POINT && rt2x00mac_set_tim_iter()
411 vif->type != NL80211_IFTYPE_WDS) rt2x00mac_set_tim_iter()
455 struct ieee80211_vif *vif, struct ieee80211_sta *sta, rt2x00mac_set_key()
477 if (vif->type == NL80211_IFTYPE_ADHOC && rt2x00mac_set_key()
486 crypto.bssidx = rt2x00lib_get_bssidx(rt2x00dev, vif); rt2x00mac_set_key()
538 int rt2x00mac_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, rt2x00mac_sta_add() argument
548 if (rt2x00dev->ops->lib->sta_add(rt2x00dev, vif, sta)) rt2x00mac_sta_add()
555 int rt2x00mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, rt2x00mac_sta_remove() argument
572 struct ieee80211_vif *vif, rt2x00mac_sw_scan_start()
582 struct ieee80211_vif *vif) rt2x00mac_sw_scan_complete()
607 struct ieee80211_vif *vif, rt2x00mac_bss_info_changed()
612 struct rt2x00_intf *intf = vif_to_intf(vif); rt2x00mac_bss_info_changed()
625 rt2x00lib_config_intf(rt2x00dev, intf, vif->type, NULL, rt2x00mac_bss_info_changed()
645 * Clear beacon in the H/W for this vif. This is needed rt2x00mac_bss_info_changed()
649 rt2x00queue_clear_beacon(rt2x00dev, vif); rt2x00mac_bss_info_changed()
658 rt2x00queue_update_beacon(rt2x00dev, vif); rt2x00mac_bss_info_changed()
710 struct ieee80211_vif *vif, u16 queue_idx, rt2x00mac_conf_tx()
755 void rt2x00mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, rt2x00mac_flush() argument
198 rt2x00mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rt2x00mac_add_interface() argument
266 rt2x00mac_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rt2x00mac_remove_interface() argument
403 rt2x00mac_set_tim_iter(void *data, u8 *mac, struct ieee80211_vif *vif) rt2x00mac_set_tim_iter() argument
454 rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) rt2x00mac_set_key() argument
571 rt2x00mac_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) rt2x00mac_sw_scan_start() argument
581 rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rt2x00mac_sw_scan_complete() argument
606 rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changes) rt2x00mac_bss_info_changed() argument
709 rt2x00mac_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue_idx, const struct ieee80211_tx_queue_params *params) rt2x00mac_conf_tx() argument
H A Drt2800lib.h184 int rt2800_sta_add(struct rt2x00_dev *rt2x00dev, struct ieee80211_vif *vif,
216 struct ieee80211_vif *vif, u16 queue_idx,
218 u64 rt2800_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
219 int rt2800_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
H A Drt2x00dev.c37 struct ieee80211_vif *vif) rt2x00lib_get_bssidx()
45 return vif->addr[5] & (rt2x00dev->ops->max_ap_intf - 1); rt2x00lib_get_bssidx()
130 struct ieee80211_vif *vif) rt2x00lib_intf_scheduled_iter()
133 struct rt2x00_intf *intf = vif_to_intf(vif); rt2x00lib_intf_scheduled_iter()
146 rt2x00queue_update_beacon(rt2x00dev, vif); rt2x00lib_intf_scheduled_iter()
183 struct ieee80211_vif *vif) rt2x00lib_bc_buffer_iter()
192 if (vif->type != NL80211_IFTYPE_AP) rt2x00lib_bc_buffer_iter()
198 skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif); rt2x00lib_bc_buffer_iter()
201 skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif); rt2x00lib_bc_buffer_iter()
206 struct ieee80211_vif *vif) rt2x00lib_beaconupdate_iter()
210 if (vif->type != NL80211_IFTYPE_AP && rt2x00lib_beaconupdate_iter()
211 vif->type != NL80211_IFTYPE_ADHOC && rt2x00lib_beaconupdate_iter()
212 vif->type != NL80211_IFTYPE_MESH_POINT && rt2x00lib_beaconupdate_iter()
213 vif->type != NL80211_IFTYPE_WDS) rt2x00lib_beaconupdate_iter()
222 rt2x00queue_update_beacon(rt2x00dev, vif); rt2x00lib_beaconupdate_iter()
36 rt2x00lib_get_bssidx(struct rt2x00_dev *rt2x00dev, struct ieee80211_vif *vif) rt2x00lib_get_bssidx() argument
129 rt2x00lib_intf_scheduled_iter(void *data, u8 *mac, struct ieee80211_vif *vif) rt2x00lib_intf_scheduled_iter() argument
182 rt2x00lib_bc_buffer_iter(void *data, u8 *mac, struct ieee80211_vif *vif) rt2x00lib_bc_buffer_iter() argument
205 rt2x00lib_beaconupdate_iter(void *data, u8 *mac, struct ieee80211_vif *vif) rt2x00lib_beaconupdate_iter() argument
H A Drt2x00.h381 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif) vif_to_intf() argument
383 return (struct rt2x00_intf *)vif->drv_priv; vif_to_intf()
624 struct ieee80211_vif *vif,
1399 struct ieee80211_vif *vif);
1422 struct ieee80211_vif *vif);
1424 struct ieee80211_vif *vif);
1434 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
1439 int rt2x00mac_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1441 int rt2x00mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1444 struct ieee80211_vif *vif,
1447 struct ieee80211_vif *vif);
1451 struct ieee80211_vif *vif,
1455 struct ieee80211_vif *vif, u16 queue,
1458 void rt2x00mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
H A Drt2x00lib.h153 * @vif: Interface for which the beacon should be updated.
156 struct ieee80211_vif *vif);
162 * @vif: Interface for which the beacon should be updated.
165 struct ieee80211_vif *vif);
170 * @vif: Interface for which the beacon should be updated.
173 struct ieee80211_vif *vif);
H A Drt2x00queue.c193 struct rt2x00_intf *intf = vif_to_intf(tx_info->control.vif); rt2x00queue_create_tx_descriptor_seq()
724 struct ieee80211_vif *vif) rt2x00queue_clear_beacon()
726 struct rt2x00_intf *intf = vif_to_intf(vif); rt2x00queue_clear_beacon()
747 struct ieee80211_vif *vif) rt2x00queue_update_beacon()
749 struct rt2x00_intf *intf = vif_to_intf(vif); rt2x00queue_update_beacon()
761 intf->beacon->skb = ieee80211_beacon_get(rt2x00dev->hw, vif); rt2x00queue_update_beacon()
723 rt2x00queue_clear_beacon(struct rt2x00_dev *rt2x00dev, struct ieee80211_vif *vif) rt2x00queue_clear_beacon() argument
746 rt2x00queue_update_beacon(struct rt2x00_dev *rt2x00dev, struct ieee80211_vif *vif) rt2x00queue_update_beacon() argument
/linux-4.1.27/drivers/net/wireless/rsi/
H A Drsi_91x_mac80211.c290 * @vif: Pointer to the ieee80211_vif structure.
295 struct ieee80211_vif *vif) rsi_mac80211_add_interface()
302 switch (vif->type) { rsi_mac80211_add_interface()
306 adapter->vifs[0] = vif; rsi_mac80211_add_interface()
313 vif->type); rsi_mac80211_add_interface()
324 * @vif: Pointer to the ieee80211_vif structure.
329 struct ieee80211_vif *vif) rsi_mac80211_remove_interface()
335 if (vif->type == NL80211_IFTYPE_STATION) rsi_mac80211_remove_interface()
338 if (!memcmp(adapter->vifs[0], vif, sizeof(struct ieee80211_vif))) rsi_mac80211_remove_interface()
431 struct ieee80211_vif *vif = adapter->vifs[0]; rsi_get_connected_channel() local
432 if (vif) { rsi_get_connected_channel()
433 struct ieee80211_bss_conf *bss = &vif->bss_conf; rsi_get_connected_channel()
446 * @vif: Pointer to the ieee80211_vif structure.
453 struct ieee80211_vif *vif, rsi_mac80211_bss_info_changed()
505 * @vif: Pointer to the ieee80211_vif structure.
512 struct ieee80211_vif *vif, u16 queue, rsi_mac80211_conf_tx()
558 * @vif: Pointer to the ieee80211_vif structure.
564 struct ieee80211_vif *vif, rsi_hal_key_config()
602 * @vif: Pointer to the ieee80211_vif structure.
610 struct ieee80211_vif *vif, rsi_mac80211_set_key()
623 status = rsi_hal_key_config(hw, vif, key); rsi_mac80211_set_key()
644 status = rsi_hal_key_config(hw, vif, key); rsi_mac80211_set_key()
661 * @vif: Pointer to the ieee80211_vif structure.
671 struct ieee80211_vif *vif, rsi_mac80211_ampdu_action()
685 if (vif == adapter->vifs[ii]) rsi_mac80211_ampdu_action()
713 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); rsi_mac80211_ampdu_action()
726 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); rsi_mac80211_ampdu_action()
770 * @vif: Pointer to the ieee80211_vif structure.
776 struct ieee80211_vif *vif, rsi_mac80211_set_rate_mask()
958 * @vif: Pointer to the ieee80211_vif structure.
964 struct ieee80211_vif *vif, rsi_mac80211_sta_add()
991 * @vif: Pointer to the ieee80211_vif structure.
997 struct ieee80211_vif *vif, rsi_mac80211_sta_remove()
294 rsi_mac80211_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rsi_mac80211_add_interface() argument
328 rsi_mac80211_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) rsi_mac80211_remove_interface() argument
452 rsi_mac80211_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) rsi_mac80211_bss_info_changed() argument
511 rsi_mac80211_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) rsi_mac80211_conf_tx() argument
563 rsi_hal_key_config(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_key_conf *key) rsi_hal_key_config() argument
608 rsi_mac80211_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) rsi_mac80211_set_key() argument
670 rsi_mac80211_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, unsigned short tid, unsigned short *ssn, unsigned char buf_size) rsi_mac80211_ampdu_action() argument
775 rsi_mac80211_set_rate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const struct cfg80211_bitrate_mask *mask) rsi_mac80211_set_rate_mask() argument
963 rsi_mac80211_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) rsi_mac80211_sta_add() argument
996 rsi_mac80211_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) rsi_mac80211_sta_remove() argument
H A Drsi_91x_pkt.c41 bss = &info->control.vif->bss_conf; rsi_send_data_pkt()
160 bss = &info->control.vif->bss_conf; rsi_send_mgmt_pkt()
/linux-4.1.27/drivers/net/wireless/ti/wl18xx/
H A Dtx.c32 void wl18xx_get_last_tx_rate(struct wl1271 *wl, struct ieee80211_vif *vif, wl18xx_get_last_tx_rate() argument
64 if (fw_rate > CONF_HW_RATE_INDEX_MCS7_SGI && vif) { wl18xx_get_last_tx_rate()
65 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); wl18xx_get_last_tx_rate()
104 * first pass info->control.vif while it's valid, and then fill out wl18xx_tx_complete_packet()
107 wl18xx_get_last_tx_rate(wl, info->control.vif, wl18xx_tx_complete_packet()
/linux-4.1.27/drivers/net/wireless/p54/
H A Dmain.c38 struct ieee80211_vif *vif, p54_sta_add_remove()
53 static void p54_sta_notify(struct ieee80211_hw *dev, struct ieee80211_vif *vif, p54_sta_notify() argument
139 struct ieee80211_vif *vif) p54_beacon_update()
145 beacon = ieee80211_beacon_get(priv->hw, vif); p54_beacon_update()
227 struct ieee80211_vif *vif) p54_add_interface()
232 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER; p54_add_interface()
240 priv->vif = vif; p54_add_interface()
242 switch (vif->type) { p54_add_interface()
247 priv->mode = vif->type; p54_add_interface()
254 memcpy(priv->mac_addr, vif->addr, ETH_ALEN); p54_add_interface()
261 struct ieee80211_vif *vif) p54_remove_interface()
266 priv->vif = NULL; p54_remove_interface()
412 struct ieee80211_vif *vif, u16 queue, p54_conf_tx()
458 struct ieee80211_vif *vif, p54_bss_info_changed()
473 p54_beacon_update(priv, vif); p54_bss_info_changed()
506 struct ieee80211_vif *vif, struct ieee80211_sta *sta, p54_set_key()
674 static void p54_flush(struct ieee80211_hw *dev, struct ieee80211_vif *vif, p54_flush() argument
37 p54_sta_add_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) p54_sta_add_remove() argument
138 p54_beacon_update(struct p54_common *priv, struct ieee80211_vif *vif) p54_beacon_update() argument
226 p54_add_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) p54_add_interface() argument
260 p54_remove_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) p54_remove_interface() argument
411 p54_conf_tx(struct ieee80211_hw *dev, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) p54_conf_tx() argument
457 p54_bss_info_changed(struct ieee80211_hw *dev, struct ieee80211_vif *vif, struct ieee80211_bss_conf *info, u32 changed) p54_bss_info_changed() argument
505 p54_set_key(struct ieee80211_hw *dev, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) p54_set_key() argument
/linux-4.1.27/drivers/staging/vt6656/
H A Dmain_usb.c589 static int vnt_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_add_interface() argument
593 priv->vif = vif; vnt_add_interface()
595 switch (vif->type) { vnt_add_interface()
614 priv->op_mode = vif->type; vnt_add_interface()
625 struct ieee80211_vif *vif) vnt_remove_interface()
629 switch (vif->type) { vnt_remove_interface()
697 struct ieee80211_vif *vif, struct ieee80211_bss_conf *conf, vnt_bss_info_changed()
753 vnt_beacon_enable(priv, vif, conf); vnt_bss_info_changed()
834 struct ieee80211_vif *vif, struct ieee80211_sta *sta, vnt_set_key()
841 if (vnt_set_keys(hw, sta, vif, key)) vnt_set_key()
855 struct ieee80211_vif *vif, vnt_sw_scan_start()
866 struct ieee80211_vif *vif) vnt_sw_scan_complete()
884 static u64 vnt_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_get_tsf() argument
891 static void vnt_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, vnt_set_tsf() argument
896 vnt_update_next_tbtt(priv, tsf, vif->bss_conf.beacon_int); vnt_set_tsf()
899 static void vnt_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_reset_tsf() argument
624 vnt_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_remove_interface() argument
696 vnt_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *conf, u32 changed) vnt_bss_info_changed() argument
833 vnt_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) vnt_set_key() argument
854 vnt_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *addr) vnt_sw_scan_start() argument
865 vnt_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_sw_scan_complete() argument
H A Dkey.c122 struct ieee80211_vif *vif, struct ieee80211_key_conf *key) vnt_set_keys()
124 struct ieee80211_bss_conf *conf = &vif->bss_conf; vnt_set_keys()
121 vnt_set_keys(struct ieee80211_hw *hw, struct ieee80211_sta *sta, struct ieee80211_vif *vif, struct ieee80211_key_conf *key) vnt_set_keys() argument
H A Dwcmd.c127 if (!priv->vif) vnt_run_command()
130 vnt_beacon_make(priv, priv->vif); vnt_run_command()
H A Dkey.h53 struct ieee80211_vif *vif, struct ieee80211_key_conf *key);
/linux-4.1.27/include/net/
H A Dmac80211.h101 * single per-vif queue for multicast data frames.
245 * struct ieee80211_vif_chanctx_switch - vif chanctx switch information
247 * This is structure is used to pass information about a vif that
252 * @vif: the vif that should be switched from old_ctx to new_ctx
253 * @old_ctx: the old context to which the vif was assigned
254 * @new_ctx: the new context to which the vif must be assigned
257 struct ieee80211_vif *vif; member in struct:ieee80211_vif_chanctx_switch
481 * @ssid: The SSID of the current vif. Valid in AP and IBSS mode.
483 * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode.
486 * Power Control (TPC) in lower driver for the current vif. In particular
851 /* NB: vif can be NULL for injected frames */
852 struct ieee80211_vif *vif; member in struct:ieee80211_tx_info::__anon12722::__anon12723
1369 static inline bool ieee80211_vif_is_mesh(struct ieee80211_vif *vif) ieee80211_vif_is_mesh() argument
1372 return vif->type == NL80211_IFTYPE_MESH_POINT; ieee80211_vif_is_mesh()
1378 * wdev_to_ieee80211_vif - return a vif struct from a wdev
1379 * @wdev: the wdev to get the vif for
1385 * associated with a vif that the driver knows about (e.g. monitor
1391 * ieee80211_vif_to_wdev - return a wdev struct from a vif
1392 * @vif: the vif to get the wdev for
1395 * (like the vendor commands) that needs to get the wdev for a vif.
1398 * associated with a vif that the driver knows about (e.g. monitor
1401 struct wireless_dev *ieee80211_vif_to_wdev(struct ieee80211_vif *vif);
1666 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
1667 * @sta: station table entry, %NULL for per-vif queue
1668 * @tid: the TID for this queue (unused for per-vif queue)
1677 struct ieee80211_vif *vif; member in struct:ieee80211_txq
1962 * entries for a vif.
2475 * 4 AC HW queues for 1st vif: 0, 1, 2, 3
2476 * 4 AC HW queues for 2nd vif: 4, 5, 6, 7
2484 * vif.hw_queue[IEEE80211_AC_VO] = 0
2485 * vif.hw_queue[IEEE80211_AC_VI] = 1
2486 * vif.hw_queue[IEEE80211_AC_BE] = 2
2487 * vif.hw_queue[IEEE80211_AC_BK] = 3
2488 * vif.cab_queue = 8 // if AP mode, otherwise %IEEE80211_INVAL_HW_QUEUE
2494 * Note that the vif.cab_queue value should be set to %IEEE80211_INVAL_HW_QUEUE
2958 * @testmode_cmd: Implement a cfg80211 test mode command. The passed @vif may
2967 * Note that vif can be NULL.
3083 * to vif. Possible use is for hw queue remapping.
3085 * unbound from vif.
3170 struct ieee80211_vif *vif);
3172 struct ieee80211_vif *vif,
3175 struct ieee80211_vif *vif);
3178 struct ieee80211_vif *vif,
3182 int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3183 void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3194 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
3197 struct ieee80211_vif *vif,
3202 struct ieee80211_vif *vif,
3205 struct ieee80211_vif *vif, int idx);
3206 int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3209 struct ieee80211_vif *vif);
3211 struct ieee80211_vif *vif,
3215 struct ieee80211_vif *vif);
3217 struct ieee80211_vif *vif,
3220 struct ieee80211_vif *vif);
3227 int (*sta_add)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3229 int (*sta_remove)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3233 struct ieee80211_vif *vif,
3237 struct ieee80211_vif *vif,
3241 void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3243 int (*sta_state)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3248 struct ieee80211_vif *vif,
3251 struct ieee80211_vif *vif,
3255 struct ieee80211_vif *vif,
3258 struct ieee80211_vif *vif,
3262 struct ieee80211_vif *vif, u16 ac,
3264 u64 (*get_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3265 void (*set_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3267 void (*reset_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3270 struct ieee80211_vif *vif,
3279 int (*testmode_cmd)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3285 void (*flush)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3288 struct ieee80211_vif *vif,
3294 struct ieee80211_vif *vif,
3303 int (*set_bitrate_mask)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3306 struct ieee80211_vif *vif,
3321 struct ieee80211_vif *vif, int sset);
3323 struct ieee80211_vif *vif,
3326 struct ieee80211_vif *vif,
3330 struct ieee80211_vif *vif);
3333 struct ieee80211_vif *vif);
3343 struct ieee80211_vif *vif,
3346 struct ieee80211_vif *vif,
3358 struct ieee80211_vif *vif,
3362 struct ieee80211_vif *vif,
3365 struct ieee80211_vif *vif,
3369 struct ieee80211_vif *vif);
3371 int (*join_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3372 void (*leave_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
3374 int (*get_txpower)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3378 struct ieee80211_vif *vif,
3383 struct ieee80211_vif *vif,
3386 struct ieee80211_vif *vif,
3787 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
3793 void ieee80211_get_tx_rates(struct ieee80211_vif *vif,
3904 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
3922 struct ieee80211_vif *vif,
3928 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
3948 struct ieee80211_vif *vif,
3954 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
3961 struct ieee80211_vif *vif) ieee80211_beacon_get()
3963 return ieee80211_beacon_get_tim(hw, vif, NULL, NULL); ieee80211_beacon_get()
3968 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
3978 u8 ieee80211_csa_update_counter(struct ieee80211_vif *vif);
3982 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
3988 void ieee80211_csa_finish(struct ieee80211_vif *vif);
3992 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
3996 bool ieee80211_csa_is_complete(struct ieee80211_vif *vif);
4002 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4012 struct ieee80211_vif *vif);
4017 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4029 struct ieee80211_vif *vif);
4034 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4046 struct ieee80211_vif *vif);
4069 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4080 void ieee80211_rts_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4088 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4099 struct ieee80211_vif *vif, size_t frame_len,
4105 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4117 struct ieee80211_vif *vif,
4125 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4136 struct ieee80211_vif *vif,
4143 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4154 struct ieee80211_vif *vif,
4162 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4181 ieee80211_get_buffered_bc(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
4379 * @vif: the virtual interface to add the key on
4407 ieee80211_gtk_rekey_add(struct ieee80211_vif *vif,
4412 * @vif: virtual interface the rekeying was done on
4417 void ieee80211_gtk_rekey_notify(struct ieee80211_vif *vif, const u8 *bssid,
4533 struct ieee80211_vif *vif),
4554 struct ieee80211_vif *vif), ieee80211_iterate_active_interfaces()
4580 struct ieee80211_vif *vif),
4599 struct ieee80211_vif *vif),
4660 * @vif: &struct ieee80211_vif pointer from the add_interface callback
4668 void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
4686 * @vif: &struct ieee80211_vif pointer from the add_interface callback
4694 void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
4700 * @vif: virtual interface to look for station on
4708 struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *vif,
4716 * @localaddr: local address (vif->sdata->vif.addr). Use NULL for 'any'.
4793 * @vif: virtual interface to iterate, may be %NULL for all
4809 struct ieee80211_vif *vif,
4811 struct ieee80211_vif *vif,
4846 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4858 struct ieee80211_vif *vif);
4863 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4869 void ieee80211_beacon_loss(struct ieee80211_vif *vif);
4874 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4885 void ieee80211_connection_loss(struct ieee80211_vif *vif);
4890 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4908 void ieee80211_resume_disconnect(struct ieee80211_vif *vif);
4914 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4922 void ieee80211_cqm_rssi_notify(struct ieee80211_vif *vif,
4929 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4932 void ieee80211_cqm_beacon_loss_notify(struct ieee80211_vif *vif, gfp_t gfp);
4943 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4949 void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success);
4953 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4960 void ieee80211_request_smps(struct ieee80211_vif *vif,
4985 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
4989 void ieee80211_stop_rx_ba_session(struct ieee80211_vif *vif, u16 ba_rx_bitmap,
4998 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5003 void ieee80211_send_bar(struct ieee80211_vif *vif, u8 *ra, u16 tid, u16 ssn);
5015 * @vif: &struct ieee80211_vif pointer from the add_interface callback
5019 void ieee80211_start_rx_ba_session_offl(struct ieee80211_vif *vif,
5032 * @vif: &struct ieee80211_vif pointer from the add_interface callback
5036 void ieee80211_stop_rx_ba_session_offl(struct ieee80211_vif *vif,
5238 ieee80211_vif_type_p2p(struct ieee80211_vif *vif) ieee80211_vif_type_p2p() argument
5240 return ieee80211_iftype_p2p(vif->type, vif->p2p); ieee80211_vif_type_p2p()
5243 void ieee80211_enable_rssi_reports(struct ieee80211_vif *vif,
5247 void ieee80211_disable_rssi_reports(struct ieee80211_vif *vif);
5252 * @vif: the specified virtual interface
5254 * Note: This function assumes that the given vif is valid.
5259 int ieee80211_ave_rssi(struct ieee80211_vif *vif);
5263 * @vif: virtual interface
5269 void ieee80211_report_wowlan_wakeup(struct ieee80211_vif *vif,
5276 * @vif: virtual interface
5284 struct ieee80211_vif *vif, struct sk_buff *skb,
5336 * @vif: virtual interface
5344 void ieee80211_tdls_oper_request(struct ieee80211_vif *vif, const u8 *peer,
3960 ieee80211_beacon_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ieee80211_beacon_get() argument
4552 ieee80211_iterate_active_interfaces(struct ieee80211_hw *hw, u32 iter_flags, void (*iterator)(void *data, u8 *mac, struct ieee80211_vif *vif), void *data) ieee80211_iterate_active_interfaces() argument
/linux-4.1.27/drivers/net/wireless/brcm80211/brcmsmac/
H A Dmac80211_if.c491 brcms_ops_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) brcms_ops_add_interface() argument
496 if (vif->type != NL80211_IFTYPE_STATION && brcms_ops_add_interface()
497 vif->type != NL80211_IFTYPE_AP && brcms_ops_add_interface()
498 vif->type != NL80211_IFTYPE_ADHOC) { brcms_ops_add_interface()
501 __func__, vif->type); brcms_ops_add_interface()
508 if (vif->type == NL80211_IFTYPE_STATION) brcms_ops_add_interface()
509 brcms_c_start_station(wl->wlc, vif->addr); brcms_ops_add_interface()
510 else if (vif->type == NL80211_IFTYPE_AP) brcms_ops_add_interface()
511 brcms_c_start_ap(wl->wlc, vif->addr, vif->bss_conf.bssid, brcms_ops_add_interface()
512 vif->bss_conf.ssid, vif->bss_conf.ssid_len); brcms_ops_add_interface()
513 else if (vif->type == NL80211_IFTYPE_ADHOC) brcms_ops_add_interface()
514 brcms_c_start_adhoc(wl->wlc, vif->addr); brcms_ops_add_interface()
521 brcms_ops_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) brcms_ops_remove_interface() argument
581 struct ieee80211_vif *vif, brcms_ops_bss_info_changed()
678 beacon = ieee80211_beacon_get_tim(hw, vif, &tim_offset, NULL); brcms_ops_bss_info_changed()
688 probe_resp = ieee80211_proberesp_get(hw, vif); brcms_ops_bss_info_changed()
768 struct ieee80211_vif *vif, brcms_ops_sw_scan_start()
779 struct ieee80211_vif *vif) brcms_ops_sw_scan_complete()
789 brcms_ops_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, brcms_ops_conf_tx() argument
802 brcms_ops_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, brcms_ops_sta_add() argument
823 struct ieee80211_vif *vif, brcms_ops_ampdu_action()
848 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); brcms_ops_ampdu_action()
857 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); brcms_ops_ampdu_action()
903 static void brcms_ops_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, brcms_ops_flush() argument
919 static u64 brcms_ops_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) brcms_ops_get_tsf() argument
932 struct ieee80211_vif *vif, u64 tsf) brcms_ops_set_tsf()
580 brcms_ops_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *info, u32 changed) brcms_ops_bss_info_changed() argument
767 brcms_ops_sw_scan_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) brcms_ops_sw_scan_start() argument
778 brcms_ops_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif) brcms_ops_sw_scan_complete() argument
822 brcms_ops_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 *ssn, u8 buf_size) brcms_ops_ampdu_action() argument
931 brcms_ops_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u64 tsf) brcms_ops_set_tsf() argument
/linux-4.1.27/drivers/net/wireless/iwlegacy/
H A Dcommon.c1120 dtim_period = il->vif ? il->vif->bss_conf.dtim_period : 0; il_build_powertable_cmd()
1494 struct ieee80211_vif *vif) il_get_passive_dwell_time()
1510 value = il->vif ? il->vif->bss_conf.beacon_int : 0; il_get_passive_dwell_time()
1533 il_scan_initiate(struct il_priv *il, struct ieee80211_vif *vif) il_scan_initiate() argument
1561 ret = il->ops->request_scan(il, vif); il_scan_initiate()
1574 il_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il_mac_hw_scan() argument
1597 il->scan_vif = vif; il_mac_hw_scan()
1600 ret = il_scan_initiate(il, vif); il_mac_hw_scan()
2462 il_mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il_mac_sta_remove() argument
3646 struct ieee80211_vif *vif = il->vif; il_send_rxon_timing() local
3657 beacon_int = vif ? vif->bss_conf.beacon_int : 0; il_send_rxon_timing()
3676 il->timing.dtim_period = vif ? (vif->bss_conf.dtim_period ? : 1) : 1; il_send_rxon_timing()
3986 struct ieee80211_vif *vif) il_set_flags_for_band()
3995 if (vif && vif->bss_conf.use_short_slot) il_set_flags_for_band()
4032 IL_ERR("Unsupported interface type %d\n", il->vif->type); il_connection_init_rx_config()
4054 il_set_flags_for_band(il, il->band, il->vif); il_connection_init_rx_config()
4064 if (il->vif) il_connection_init_rx_config()
4065 memcpy(il->staging.node_addr, il->vif->addr, ETH_ALEN); il_connection_init_rx_config()
4110 ieee80211_chswitch_done(il->vif, is_success); il_chswitch_done()
4500 il_mac_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, il_mac_conf_tx() argument
4567 il_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) il_mac_add_interface() argument
4574 D_MAC80211("enter: type %d, addr %pM\n", vif->type, vif->addr); il_mac_add_interface()
4586 reset = (il->vif == vif); il_mac_add_interface()
4587 if (il->vif && !reset) { il_mac_add_interface()
4592 il->vif = vif; il_mac_add_interface()
4593 il->iw_mode = vif->type; il_mac_add_interface()
4597 IL_WARN("Fail to set mode %d\n", vif->type); il_mac_add_interface()
4599 il->vif = NULL; il_mac_add_interface()
4613 il_teardown_interface(struct il_priv *il, struct ieee80211_vif *vif) il_teardown_interface() argument
4617 if (il->scan_vif == vif) { il_teardown_interface()
4626 il_mac_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) il_mac_remove_interface() argument
4631 D_MAC80211("enter: type %d, addr %pM\n", vif->type, vif->addr); il_mac_remove_interface()
4633 WARN_ON(il->vif != vif); il_mac_remove_interface()
4634 il->vif = NULL; il_mac_remove_interface()
4636 il_teardown_interface(il, vif); il_mac_remove_interface()
4721 il_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il_mac_change_interface() argument
4729 vif->type, vif->addr, newtype, newp2p); il_mac_change_interface()
4736 if (!il->vif || !il_is_ready_rf(il)) { il_mac_change_interface()
4746 vif->type = newtype; il_mac_change_interface()
4747 vif->p2p = false; il_mac_change_interface()
4749 il_teardown_interface(il, vif); il_mac_change_interface()
4760 void il_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il_mac_flush() argument
5126 il_set_flags_for_band(il, channel->band, il->vif); il_mac_config()
5178 il_mac_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) il_mac_reset_tsf() argument
5184 D_MAC80211("enter: type %d, addr %pM\n", vif->type, vif->addr); il_mac_reset_tsf()
5217 il_ht_conf(struct il_priv *il, struct ieee80211_vif *vif) il_ht_conf() argument
5221 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; il_ht_conf()
5236 switch (vif->type) { il_ht_conf()
5239 sta = ieee80211_find_sta(vif, bss_conf->bssid); il_ht_conf()
5277 il_set_no_assoc(struct il_priv *il, struct ieee80211_vif *vif) il_set_no_assoc() argument
5290 il_beacon_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif) il_beacon_update() argument
5295 struct sk_buff *skb = ieee80211_beacon_get(hw, vif); il_beacon_update()
5332 il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il_mac_bss_info_changed() argument
5358 if (vif->bss_conf.enable_beacon) il_mac_bss_info_changed()
5401 if (vif->type == NL80211_IFTYPE_ADHOC && (changes & BSS_CHANGED_BEACON)) il_mac_bss_info_changed()
5402 il_beacon_update(hw, vif); il_mac_bss_info_changed()
5442 il_ht_conf(il, vif); il_mac_bss_info_changed()
5456 il_set_no_assoc(il, vif); il_mac_bss_info_changed()
5470 if (vif->bss_conf.enable_beacon) { il_mac_bss_info_changed()
5476 il_set_no_assoc(il, vif); il_mac_bss_info_changed()
5480 ret = il->ops->manage_ibss_station(il, vif, il_mac_bss_info_changed()
1493 il_get_passive_dwell_time(struct il_priv *il, enum ieee80211_band band, struct ieee80211_vif *vif) il_get_passive_dwell_time() argument
3985 il_set_flags_for_band(struct il_priv *il, enum ieee80211_band band, struct ieee80211_vif *vif) il_set_flags_for_band() argument
H A D4965.c1482 struct ieee80211_vif *vif = il->vif; il4965_hw_channel_switch() local
1485 if (WARN_ON_ONCE(vif == NULL)) il4965_hw_channel_switch()
1517 vif->bss_conf.beacon_int * switch_count * TIME_UNIT; il4965_hw_channel_switch()
1749 struct ieee80211_vif *vif = il->vif; il4965_post_associate() local
1752 if (!vif || !il->is_open) il4965_post_associate()
1774 il->staging.assoc_id = cpu_to_le16(vif->bss_conf.aid); il4965_post_associate()
1776 D_ASSOC("assoc id %d beacon interval %d\n", vif->bss_conf.aid, il4965_post_associate()
1777 vif->bss_conf.beacon_int); il4965_post_associate()
1779 if (vif->bss_conf.use_short_preamble) il4965_post_associate()
1785 if (vif->bss_conf.use_short_slot) il4965_post_associate()
1793 D_ASSOC("Associated as %d to: %pM\n", vif->bss_conf.aid, il4965_post_associate()
1796 switch (vif->type) { il4965_post_associate()
1804 vif->type); il4965_post_associate()
1822 struct ieee80211_vif *vif = il->vif; il4965_config_ap() local
1851 if (vif->bss_conf.use_short_preamble) il4965_config_ap()
1857 if (vif->bss_conf.use_short_slot) il4965_config_ap()
H A D4965.h84 int il4965_tx_agg_start(struct il_priv *il, struct ieee80211_vif *vif,
86 int il4965_tx_agg_stop(struct il_priv *il, struct ieee80211_vif *vif,
111 int il4965_request_scan(struct il_priv *il, struct ieee80211_vif *vif);
114 int il4965_manage_ibss_station(struct il_priv *il, struct ieee80211_vif *vif,
177 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
180 struct ieee80211_vif *vif,
184 int il4965_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
188 int il4965_mac_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
191 il4965_mac_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
H A Dcommon.h1118 struct ieee80211_vif *vif; member in struct:il_rxon_context
1223 struct ieee80211_vif *vif; member in struct:il_priv
1584 int (*request_scan) (struct il_priv *il, struct ieee80211_vif *vif);
1591 struct ieee80211_vif *vif, bool add);
1702 int il_mac_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1711 struct ieee80211_vif *vif);
1721 int il_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
1723 struct ieee80211_vif *vif);
1724 int il_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1726 void il_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1789 int il_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1799 struct ieee80211_vif *vif);
1965 void il_mac_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
1966 void il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
2142 int il_mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
H A D3945-mac.c1553 struct ieee80211_vif *vif) il3945_get_channels_for_scan()
1567 passive_dwell = il_get_passive_dwell_time(il, band, vif); il3945_get_channels_for_scan()
2528 il3945_request_scan(struct il_priv *il, struct ieee80211_vif *vif) il3945_request_scan() argument
2567 interval = vif->bss_conf.beacon_int; il3945_request_scan()
2642 vif->addr, il->scan_request->ie, il3945_request_scan()
2652 (void *)&scan->data[len], vif); il3945_request_scan()
2730 if (!il->vif || !il->is_open) il3945_post_associate()
2733 D_ASSOC("Associated as %d to: %pM\n", il->vif->bss_conf.aid, il3945_post_associate()
2752 il->staging.assoc_id = cpu_to_le16(il->vif->bss_conf.aid); il3945_post_associate()
2754 D_ASSOC("assoc id %d beacon interval %d\n", il->vif->bss_conf.aid, il3945_post_associate()
2755 il->vif->bss_conf.beacon_int); il3945_post_associate()
2757 if (il->vif->bss_conf.use_short_preamble) il3945_post_associate()
2763 if (il->vif->bss_conf.use_short_slot) il3945_post_associate()
2771 switch (il->vif->type) { il3945_post_associate()
2780 il->vif->type); il3945_post_associate()
2898 struct ieee80211_vif *vif = il->vif; il3945_config_ap() local
2919 if (vif->bss_conf.use_short_preamble) il3945_config_ap()
2925 if (vif->bss_conf.use_short_slot) il3945_config_ap()
2939 struct ieee80211_vif *vif, struct ieee80211_sta *sta, il3945_mac_set_key()
2958 if (vif->type == NL80211_IFTYPE_ADHOC && il3945_mac_set_key()
3003 il3945_mac_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il3945_mac_sta_add() argument
3009 bool is_ap = vif->type == NL80211_IFTYPE_STATION; il3945_mac_sta_add()
1550 il3945_get_channels_for_scan(struct il_priv *il, enum ieee80211_band band, u8 is_active, u8 n_probes, struct il3945_scan_channel *scan_ch, struct ieee80211_vif *vif) il3945_get_channels_for_scan() argument
2938 il3945_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) il3945_mac_set_key() argument
H A D4965-mac.c768 il4965_get_channels_for_scan(struct il_priv *il, struct ieee80211_vif *vif, il4965_get_channels_for_scan() argument
785 passive_dwell = il_get_passive_dwell_time(il, band, vif); il4965_get_channels_for_scan()
862 il4965_request_scan(struct il_priv *il, struct ieee80211_vif *vif) il4965_request_scan() argument
907 interval = vif->bss_conf.beacon_int; il4965_request_scan()
1019 vif->addr, il->scan_request->ie, il4965_request_scan()
1028 il4965_get_channels_for_scan(il, vif, band, is_active, n_probes, il4965_request_scan()
1051 il4965_manage_ibss_station(struct il_priv *il, struct ieee80211_vif *vif, il4965_manage_ibss_station() argument
1054 struct il_vif_priv *vif_priv = (void *)vif->drv_priv; il4965_manage_ibss_station()
1057 return il4965_add_bssid_station(il, vif->bss_conf.bssid, il4965_manage_ibss_station()
1060 vif->bss_conf.bssid); il4965_manage_ibss_station()
2233 il4965_tx_agg_start(struct il_priv *il, struct ieee80211_vif *vif, il4965_tx_agg_start() argument
2285 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); il4965_tx_agg_start()
2329 il4965_tx_agg_stop(struct il_priv *il, struct ieee80211_vif *vif, il4965_tx_agg_stop() argument
2401 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); il4965_tx_agg_stop()
2426 ieee80211_stop_tx_ba_cb_irqsafe(il->vif, addr, tid); il4965_txq_check_empty()
2434 ieee80211_start_tx_ba_cb_irqsafe(il->vif, addr, tid); il4965_txq_check_empty()
2449 sta = ieee80211_find_sta(il->vif, addr1); il4965_non_agg_tx_status()
5892 il4965_mac_update_tkip_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il4965_mac_update_tkip_key() argument
5907 struct ieee80211_vif *vif, struct ieee80211_sta *sta, il4965_mac_set_key()
5926 if (vif->type == NL80211_IFTYPE_ADHOC && il4965_mac_set_key()
5982 il4965_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il4965_mac_ampdu_action() argument
6010 ret = il4965_tx_agg_start(il, vif, sta, tid, ssn); il4965_mac_ampdu_action()
6016 ret = il4965_tx_agg_stop(il, vif, sta, tid); il4965_mac_ampdu_action()
6030 il4965_mac_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il4965_mac_sta_add() argument
6035 bool is_ap = vif->type == NL80211_IFTYPE_STATION; il4965_mac_sta_add()
6066 il4965_mac_channel_switch(struct ieee80211_hw *hw, struct ieee80211_vif *vif, il4965_mac_channel_switch() argument
6130 il_set_flags_for_band(il, channel->band, il->vif); il4965_mac_channel_switch()
6144 ieee80211_chswitch_done(il->vif, false); il4965_mac_channel_switch()
5906 il4965_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) il4965_mac_set_key() argument
/linux-4.1.27/drivers/staging/vt6655/
H A Dkey.c114 struct ieee80211_vif *vif, struct ieee80211_key_conf *key) vnt_set_keys()
116 struct ieee80211_bss_conf *conf = &vif->bss_conf; vnt_set_keys()
113 vnt_set_keys(struct ieee80211_hw *hw, struct ieee80211_sta *sta, struct ieee80211_vif *vif, struct ieee80211_key_conf *key) vnt_set_keys() argument
H A Ddevice_main.c1019 if (!(priv->vif->bss_conf.assoc && priv->uCurrRSSI)) vnt_check_bb_vga()
1111 if (pDevice->vif && device_intr()
1121 pDevice->vif->bss_conf.enable_beacon) { device_intr()
1123 (pDevice->vif->bss_conf.beacon_int - MAKE_BEACON_RESERVED) << 10); device_intr()
1152 if (pDevice->vif) { device_intr()
1153 if (pDevice->vif->bss_conf.enable_beacon) device_intr()
1154 vnt_beacon_make(pDevice, pDevice->vif); device_intr()
1159 if (pDevice->vif) { device_intr()
1316 static int vnt_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_add_interface() argument
1320 priv->vif = vif; vnt_add_interface()
1322 switch (vif->type) { vnt_add_interface()
1341 priv->op_mode = vif->type; vnt_add_interface()
1347 struct ieee80211_vif *vif) vnt_remove_interface()
1351 switch (vif->type) { vnt_remove_interface()
1417 struct ieee80211_vif *vif, struct ieee80211_bss_conf *conf, vnt_bss_info_changed()
1479 vnt_beacon_enable(priv, vif, conf); vnt_bss_info_changed()
1597 struct ieee80211_vif *vif, struct ieee80211_sta *sta, vnt_set_key()
1604 if (vnt_set_keys(hw, sta, vif, key)) vnt_set_key()
1617 static u64 vnt_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_get_tsf() argument
1627 static void vnt_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, vnt_set_tsf() argument
1632 CARDvUpdateNextTBTT(priv, tsf, vif->bss_conf.beacon_int); vnt_set_tsf()
1635 static void vnt_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_reset_tsf() argument
1346 vnt_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vnt_remove_interface() argument
1416 vnt_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *conf, u32 changed) vnt_bss_info_changed() argument
1596 vnt_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) vnt_set_key() argument
H A Dkey.h67 struct ieee80211_vif *vif, struct ieee80211_key_conf *key);
/linux-4.1.27/drivers/net/wireless/rtl818x/rtl8187/
H A Ddev.c264 rts_dur = ieee80211_rts_duration(dev, priv->vif, rtl8187_tx()
269 rts_dur = ieee80211_ctstoself_duration(dev, priv->vif, rtl8187_tx()
304 ieee80211_generic_frame_duration(dev, priv->vif, rtl8187_tx()
1056 static u64 rtl8187_get_tsf(struct ieee80211_hw *dev, struct ieee80211_vif *vif) rtl8187_get_tsf() argument
1069 struct ieee80211_vif *vif = rtl8187_beacon_work() local
1080 skb = ieee80211_beacon_get(dev, vif); rtl8187_beacon_work()
1089 mgmt->u.beacon.timestamp = cpu_to_le64(rtl8187_get_tsf(dev, vif)); rtl8187_beacon_work()
1102 usecs_to_jiffies(1024 * vif->bss_conf.beacon_int)); rtl8187_beacon_work()
1107 struct ieee80211_vif *vif) rtl8187_add_interface()
1115 if (priv->vif) rtl8187_add_interface()
1118 switch (vif->type) { rtl8187_add_interface()
1127 priv->vif = vif; rtl8187_add_interface()
1130 vif_priv = (struct rtl8187_vif *)&vif->drv_priv; rtl8187_add_interface()
1139 ((u8 *)vif->addr)[i]); rtl8187_add_interface()
1148 struct ieee80211_vif *vif) rtl8187_remove_interface()
1152 priv->vif = NULL; rtl8187_remove_interface()
1254 struct ieee80211_vif *vif, rtl8187_bss_info_changed()
1263 vif_priv = (struct rtl8187_vif *)&vif->drv_priv; rtl8187_bss_info_changed()
1277 if (vif->type == NL80211_IFTYPE_ADHOC) rtl8187_bss_info_changed()
1344 struct ieee80211_vif *vif, u16 queue, rtl8187_conf_tx()
1106 rtl8187_add_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) rtl8187_add_interface() argument
1147 rtl8187_remove_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) rtl8187_remove_interface() argument
1253 rtl8187_bss_info_changed(struct ieee80211_hw *dev, struct ieee80211_vif *vif, struct ieee80211_bss_conf *info, u32 changed) rtl8187_bss_info_changed() argument
1343 rtl8187_conf_tx(struct ieee80211_hw *dev, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) rtl8187_conf_tx() argument
H A Dleds.c36 if (!priv->vif || priv->vif->type == NL80211_IFTYPE_UNSPECIFIED) led_turn_on()
74 if (!priv->vif || priv->vif->type == NL80211_IFTYPE_UNSPECIFIED) led_turn_off()
/linux-4.1.27/drivers/net/wireless/zd1211rw/
H A Dzd_mac.c259 if (!mac->vif) set_mac_and_bssid()
262 r = zd_write_mac_addr(&mac->chip, mac->vif->addr); set_mac_and_bssid()
272 return zd_write_bssid(&mac->chip, mac->vif->addr); set_mac_and_bssid()
413 if (mac->vif != NULL) { zd_restore_settings()
414 beacon = ieee80211_beacon_get(mac->hw, mac->vif); zd_restore_settings()
1114 struct ieee80211_vif *vif) zd_op_add_interface()
1122 switch (vif->type) { zd_op_add_interface()
1128 mac->type = vif->type; zd_op_add_interface()
1134 mac->vif = vif; zd_op_add_interface()
1140 struct ieee80211_vif *vif) zd_op_remove_interface()
1144 mac->vif = NULL; zd_op_remove_interface()
1169 if (!mac->vif || mac->vif->type != NL80211_IFTYPE_AP) zd_beacon_done()
1176 skb = ieee80211_get_buffered_bc(mac->hw, mac->vif); zd_beacon_done()
1185 beacon = ieee80211_beacon_get(mac->hw, mac->vif); zd_beacon_done()
1294 struct ieee80211_vif *vif, zd_op_bss_info_changed()
1308 struct sk_buff *beacon = ieee80211_beacon_get(hw, vif); zd_op_bss_info_changed()
1353 static u64 zd_op_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) zd_op_get_tsf() argument
1445 if (mac->type != NL80211_IFTYPE_AP || !mac->vif) beacon_watchdog_handler()
1463 beacon = ieee80211_beacon_get(mac->hw, mac->vif); beacon_watchdog_handler()
1113 zd_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) zd_op_add_interface() argument
1139 zd_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) zd_op_remove_interface() argument
1293 zd_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changes) zd_op_bss_info_changed() argument
/linux-4.1.27/include/linux/usb/
H A Dm66592.h39 unsigned vif:1; member in struct:m66592_platdata
/linux-4.1.27/drivers/media/tuners/
H A Dtda9887.c325 static char *vif[8] = { dump_write_message() local
376 tuner_info(" E7 vif agc output : %s\n", dump_write_message()
384 vif[(buf[3] & 0x1c) >> 2]); dump_write_message()
389 tuner_info(" E7 vif agc output : %s\n", dump_write_message()
391 ? "pin3 port, pin22 vif agc out" dump_write_message()
392 : "pin22 port, pin3 vif acg ext in") dump_write_message()
/linux-4.1.27/drivers/net/wireless/rtl818x/rtl8180/
H A Ddev.c503 rts_duration = ieee80211_rts_duration(dev, priv->vif, rtl8180_tx()
508 rts_duration = ieee80211_ctstoself_duration(dev, priv->vif, rtl8180_tx()
528 duration = ieee80211_generic_frame_duration(dev, priv->vif, rtl8180_tx()
1268 struct ieee80211_vif *vif) rtl8180_get_tsf()
1280 struct ieee80211_vif *vif = rtl8180_beacon_work() local
1291 skb = ieee80211_beacon_get(dev, vif); rtl8180_beacon_work()
1300 mgmt->u.beacon.timestamp = cpu_to_le64(rtl8180_get_tsf(dev, vif)); rtl8180_beacon_work()
1313 usecs_to_jiffies(1024 * vif->bss_conf.beacon_int)); rtl8180_beacon_work()
1317 struct ieee80211_vif *vif) rtl8180_add_interface()
1325 if (priv->vif) rtl8180_add_interface()
1328 switch (vif->type) { rtl8180_add_interface()
1336 priv->vif = vif; rtl8180_add_interface()
1339 vif_priv = (struct rtl8180_vif *)&vif->drv_priv; rtl8180_add_interface()
1346 le32_to_cpu(*(__le32 *)vif->addr)); rtl8180_add_interface()
1348 le16_to_cpu(*(__le16 *)(vif->addr + 4))); rtl8180_add_interface()
1355 struct ieee80211_vif *vif) rtl8180_remove_interface()
1358 priv->vif = NULL; rtl8180_remove_interface()
1415 struct ieee80211_vif *vif, u16 queue, rtl8180_conf_tx()
1489 struct ieee80211_vif *vif, rtl8180_bss_info_changed()
1498 vif_priv = (struct rtl8180_vif *)&vif->drv_priv; rtl8180_bss_info_changed()
1507 if (vif->type == NL80211_IFTYPE_ADHOC) rtl8180_bss_info_changed()
1531 priv->vif, rtl8180_bss_info_changed()
1267 rtl8180_get_tsf(struct ieee80211_hw *dev, struct ieee80211_vif *vif) rtl8180_get_tsf() argument
1316 rtl8180_add_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) rtl8180_add_interface() argument
1354 rtl8180_remove_interface(struct ieee80211_hw *dev, struct ieee80211_vif *vif) rtl8180_remove_interface() argument
1414 rtl8180_conf_tx(struct ieee80211_hw *dev, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) rtl8180_conf_tx() argument
1488 rtl8180_bss_info_changed(struct ieee80211_hw *dev, struct ieee80211_vif *vif, struct ieee80211_bss_conf *info, u32 changed) rtl8180_bss_info_changed() argument
H A Drtl8180.h107 struct ieee80211_vif *vif; member in struct:rtl8180_priv
/linux-4.1.27/include/uapi/linux/
H A Dmroute.h72 #define VIFF_REGISTER 0x4 /* register vif */
104 * To get vif packet counts
H A Dmroute6.h78 #define MIFF_REGISTER 0x1 /* register vif */
104 * To get vif packet counts
H A Dif_arp.h66 #define ARPHRD_SKIP 771 /* SKIP vif */
/linux-4.1.27/arch/sh/boards/mach-x3proto/
H A Dsetup.c71 .vif = 1,
100 .vif = 1,
/linux-4.1.27/tools/lib/traceevent/
H A Dplugin_mac80211.c67 trace_seq_printf(s, " vif:"); drv_bss_info_changed()
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8192se/
H A Dfw.c604 mac->vif->bss_conf.beacon_int); rtl92s_set_fw_pwrmode_cmd()
612 max_wakeup_period = mac->vif->bss_conf.beacon_int; rtl92s_set_fw_pwrmode_cmd()
614 max_wakeup_period = mac->vif->bss_conf.beacon_int * rtl92s_set_fw_pwrmode_cmd()
615 mac->vif->bss_conf.dtim_period; rtl92s_set_fw_pwrmode_cmd()
647 mac->vif->bss_conf.beacon_int); rtl92s_set_fw_joinbss_report_cmd()
/linux-4.1.27/drivers/net/wireless/ath/
H A Dkey.c474 struct ieee80211_vif *vif, ath_key_config()
509 switch (vif->type) { ath_key_config()
511 memcpy(gmac, vif->addr, ETH_ALEN); ath_key_config()
535 if (vif->type != NL80211_IFTYPE_AP) { ath_key_config()
554 vif->type == NL80211_IFTYPE_AP); ath_key_config()
473 ath_key_config(struct ath_common *common, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) ath_key_config() argument
/linux-4.1.27/drivers/net/wireless/ath/ar5523/
H A Dar5523.c1094 static void ar5523_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ar5523_flush() argument
1104 struct ieee80211_vif *vif) ar5523_add_interface()
1110 if (ar->vif) { ar5523_add_interface()
1115 switch (vif->type) { ar5523_add_interface()
1117 ar->vif = vif; ar5523_add_interface()
1126 struct ieee80211_vif *vif) ar5523_remove_interface()
1131 ar->vif = NULL; ar5523_remove_interface()
1158 sta = ieee80211_find_sta(ar->vif, bss_conf->bssid); ar5523_get_wlan_mode()
1195 sta = ieee80211_find_sta(ar->vif, bss_conf->bssid); ar5523_create_rateset()
1238 struct ieee80211_vif *vif, ar5523_create_connection()
1274 struct ieee80211_vif *vif, ar5523_bss_info_changed()
1288 error = ar5523_create_connection(ar, vif, bss); ar5523_bss_info_changed()
1685 ar->vif = NULL; ar5523_probe()
1103 ar5523_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ar5523_add_interface() argument
1125 ar5523_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ar5523_remove_interface() argument
1237 ar5523_create_connection(struct ar5523 *ar, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss) ar5523_create_connection() argument
1273 ar5523_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss, u32 changed) ar5523_bss_info_changed() argument
H A Dar5523.h130 struct ieee80211_vif *vif; member in struct:ar5523
/linux-4.1.27/drivers/net/wireless/b43/
H A Dmain.c370 struct ieee80211_vif *vif,
940 struct ieee80211_vif *vif, b43_op_update_tkip_key()
1842 beacon = ieee80211_beacon_get(wl->hw, wl->vif); b43_update_templates()
3804 struct ieee80211_vif *vif, u16 _queue, b43_op_conf_tx()
3851 static u64 b43_op_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) b43_op_get_tsf() argument
3871 struct ieee80211_vif *vif, u64 tsf) b43_op_set_tsf()
4116 struct ieee80211_vif *vif, b43_op_bss_info_changed()
4129 B43_WARN_ON(wl->vif != vif); b43_op_bss_info_changed()
4175 struct ieee80211_vif *vif, struct ieee80211_sta *sta, b43_op_set_key()
4188 if ((vif->type == NL80211_IFTYPE_ADHOC || b43_op_set_key()
4189 vif->type == NL80211_IFTYPE_MESH_POINT) && b43_op_set_key()
4995 struct ieee80211_vif *vif) b43_op_add_interface()
5003 if (vif->type != NL80211_IFTYPE_AP && b43_op_add_interface()
5004 vif->type != NL80211_IFTYPE_MESH_POINT && b43_op_add_interface()
5005 vif->type != NL80211_IFTYPE_STATION && b43_op_add_interface()
5006 vif->type != NL80211_IFTYPE_WDS && b43_op_add_interface()
5007 vif->type != NL80211_IFTYPE_ADHOC) b43_op_add_interface()
5014 b43dbg(wl, "Adding Interface type %d\n", vif->type); b43_op_add_interface()
5018 wl->vif = vif; b43_op_add_interface()
5019 wl->if_type = vif->type; b43_op_add_interface()
5020 memcpy(wl->mac_addr, vif->addr, ETH_ALEN); b43_op_add_interface()
5032 b43_op_bss_info_changed(hw, vif, &vif->bss_conf, ~0); b43_op_add_interface()
5038 struct ieee80211_vif *vif) b43_op_remove_interface()
5043 b43dbg(wl, "Removing Interface type %d\n", vif->type); b43_op_remove_interface()
5048 B43_WARN_ON(wl->vif != vif); b43_op_remove_interface()
5049 wl->vif = NULL; b43_op_remove_interface()
5152 struct ieee80211_vif *vif, b43_op_sta_notify()
5158 B43_WARN_ON(!vif || wl->vif != vif); b43_op_sta_notify()
5162 struct ieee80211_vif *vif, b43_op_sw_scan_start_notifier()
5178 struct ieee80211_vif *vif) b43_op_sw_scan_complete_notifier()
5282 if (wl->vif) b43_chip_reset()
5283 b43_op_bss_info_changed(wl->hw, wl->vif, &wl->vif->bss_conf, ~0); b43_chip_reset()
939 b43_op_update_tkip_key(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_key_conf *keyconf, struct ieee80211_sta *sta, u32 iv32, u16 *phase1key) b43_op_update_tkip_key() argument
3803 b43_op_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 _queue, const struct ieee80211_tx_queue_params *params) b43_op_conf_tx() argument
3870 b43_op_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u64 tsf) b43_op_set_tsf() argument
4115 b43_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *conf, u32 changed) b43_op_bss_info_changed() argument
4174 b43_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct ieee80211_key_conf *key) b43_op_set_key() argument
4994 b43_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) b43_op_add_interface() argument
5037 b43_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) b43_op_remove_interface() argument
5151 b43_op_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd notify_cmd, struct ieee80211_sta *sta) b43_op_sta_notify() argument
5161 b43_op_sw_scan_start_notifier(struct ieee80211_hw *hw, struct ieee80211_vif *vif, const u8 *mac_addr) b43_op_sw_scan_start_notifier() argument
5177 b43_op_sw_scan_complete_notifier(struct ieee80211_hw *hw, struct ieee80211_vif *vif) b43_op_sw_scan_complete_notifier() argument
H A Dxmit.c294 dev->wl->hw, info->control.vif, info->band, b43_generate_txhdr()
461 ieee80211_ctstoself_get(dev->wl->hw, info->control.vif, b43_generate_txhdr()
483 ieee80211_rts_get(dev->wl->hw, info->control.vif, b43_generate_txhdr()
/linux-4.1.27/net/mac802154/
H A Diface.c221 if (sdata->vif.type == NL802154_IFTYPE_NODE && ieee802154_check_concurrent_iface()
222 nsdata->vif.type == NL802154_IFTYPE_NODE) ieee802154_check_concurrent_iface()
246 rc = ieee802154_check_concurrent_iface(sdata, sdata->vif.type); mac802154_wpan_open()
479 sdata->vif.type = type; ieee802154_setup_sdata()
H A Drx.c210 if (sdata->vif.type != NL802154_IFTYPE_NODE || __ieee802154_rx_handle_packet()
235 if (sdata->vif.type != NL802154_IFTYPE_MONITOR) ieee802154_monitors_rx()
H A Dieee802154_i.h98 struct ieee802154_vif vif; member in struct:ieee802154_sub_if_data
/linux-4.1.27/drivers/net/wireless/b43legacy/
H A Dmain.c1058 dev->wl->vif, b43legacy_write_probe_resp_plcp()
1124 dev->wl->vif, b43legacy_generate_probe_resp()
1273 beacon = ieee80211_beacon_get(wl->hw, wl->vif); b43legacy_update_templates()
2540 struct ieee80211_vif *vif, u16 queue, b43legacy_op_conf_tx()
2840 struct ieee80211_vif *vif, b43legacy_op_bss_info_changed()
2849 B43legacy_WARN_ON(wl->vif != vif); b43legacy_op_bss_info_changed()
3413 struct ieee80211_vif *vif) b43legacy_op_add_interface()
3422 if (vif->type != NL80211_IFTYPE_AP && b43legacy_op_add_interface()
3423 vif->type != NL80211_IFTYPE_STATION && b43legacy_op_add_interface()
3424 vif->type != NL80211_IFTYPE_WDS && b43legacy_op_add_interface()
3425 vif->type != NL80211_IFTYPE_ADHOC) b43legacy_op_add_interface()
3432 b43legacydbg(wl, "Adding Interface type %d\n", vif->type); b43legacy_op_add_interface()
3436 wl->vif = vif; b43legacy_op_add_interface()
3437 wl->if_type = vif->type; b43legacy_op_add_interface()
3438 memcpy(wl->mac_addr, vif->addr, ETH_ALEN); b43legacy_op_add_interface()
3455 struct ieee80211_vif *vif) b43legacy_op_remove_interface()
3461 b43legacydbg(wl, "Removing Interface type %d\n", vif->type); b43legacy_op_remove_interface()
3466 B43legacy_WARN_ON(wl->vif != vif); b43legacy_op_remove_interface()
3467 wl->vif = NULL; b43legacy_op_remove_interface()
2539 b43legacy_op_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params) b43legacy_op_conf_tx() argument
2839 b43legacy_op_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *conf, u32 changed) b43legacy_op_bss_info_changed() argument
3412 b43legacy_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) b43legacy_op_add_interface() argument
3454 b43legacy_op_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) b43legacy_op_remove_interface() argument
H A Dxmit.c230 info->control.vif, generate_txhdr_fw3()
322 info->control.vif, generate_txhdr_fw3()
331 info->control.vif, generate_txhdr_fw3()
/linux-4.1.27/arch/sh/boards/mach-highlander/
H A Dsetup.c38 .vif = 1,
68 .vif = 1,

Completed in 4233 milliseconds

12