Lines Matching full:vif

187 static inline u8 get_sta_index(struct ieee80211_vif *vif,  in get_sta_index()  argument
190 return NL80211_IFTYPE_STATION == vif->type ? in get_sta_index()
309 struct ieee80211_vif *vif = NULL; in wcn36xx_change_ps() local
313 vif = wcn36xx_priv_to_vif(tmp); in wcn36xx_change_ps()
315 if (vif->cfg.ps) /* ps allowed ? */ in wcn36xx_change_ps()
316 wcn36xx_pmc_enter_bmps_state(wcn, vif); in wcn36xx_change_ps()
318 wcn36xx_pmc_exit_bmps_state(wcn, vif); in wcn36xx_change_ps()
325 struct ieee80211_vif *vif = NULL; in wcn36xx_change_opchannel() local
357 vif = wcn36xx_priv_to_vif(tmp); in wcn36xx_change_opchannel()
358 wcn36xx_smd_switch_channel(wcn, vif, ch); in wcn36xx_change_opchannel()
435 struct ieee80211_vif *vif = NULL; in wcn36xx_configure_filter() local
445 vif = wcn36xx_priv_to_vif(tmp); in wcn36xx_configure_filter()
449 wcn36xx_smd_set_mc_list(wcn, vif, NULL); in wcn36xx_configure_filter()
450 else if (NL80211_IFTYPE_STATION == vif->type && tmp->sta_assoc) in wcn36xx_configure_filter()
451 wcn36xx_smd_set_mc_list(wcn, vif, fp); in wcn36xx_configure_filter()
500 struct ieee80211_vif *vif, in wcn36xx_set_key() argument
505 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_set_key()
560 if (NL80211_IFTYPE_STATION == vif->type) { in wcn36xx_set_key()
562 vif, in wcn36xx_set_key()
566 wcn36xx_smd_config_sta(wcn, vif, sta); in wcn36xx_set_key()
574 get_sta_index(vif, sta_priv)); in wcn36xx_set_key()
593 get_sta_index(vif, sta_priv)); in wcn36xx_set_key()
614 get_sta_index(vif, sta_priv)); in wcn36xx_set_key()
630 struct ieee80211_vif *vif, in wcn36xx_hw_scan() argument
661 return wcn36xx_smd_start_hw_scan(wcn, vif, &hw_req->req); in wcn36xx_hw_scan()
665 struct ieee80211_vif *vif) in wcn36xx_cancel_hw_scan() argument
681 struct ieee80211_vif *vif, in wcn36xx_sw_scan_start() argument
685 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_sw_scan_start()
690 wcn->sw_scan_vif = vif; in wcn36xx_sw_scan_start()
699 struct ieee80211_vif *vif) in wcn36xx_sw_scan_complete() argument
800 struct ieee80211_vif *vif, in wcn36xx_bss_info_changed() argument
808 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_bss_info_changed()
810 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss info changed vif %p changed 0x%llx\n", in wcn36xx_bss_info_changed()
811 vif, changed); in wcn36xx_bss_info_changed()
830 wcn36xx_smd_set_link_st(wcn, bss_conf->bssid, vif->addr, in wcn36xx_bss_info_changed()
833 vif->addr, WCN36XX_HW_CHANNEL(wcn)); in wcn36xx_bss_info_changed()
834 wcn36xx_smd_config_bss(wcn, vif, NULL, in wcn36xx_bss_info_changed()
838 wcn36xx_smd_delete_bss(wcn, vif); in wcn36xx_bss_info_changed()
839 wcn36xx_smd_set_link_st(wcn, bss_conf->bssid, vif->addr, in wcn36xx_bss_info_changed()
849 vif->cfg.ssid, vif->cfg.ssid_len); in wcn36xx_bss_info_changed()
851 vif_priv->ssid.length = vif->cfg.ssid_len; in wcn36xx_bss_info_changed()
853 vif->cfg.ssid, in wcn36xx_bss_info_changed()
854 vif->cfg.ssid_len); in wcn36xx_bss_info_changed()
859 if (vif->cfg.assoc) { in wcn36xx_bss_info_changed()
864 "mac assoc bss %pM vif %pM AID=%d\n", in wcn36xx_bss_info_changed()
866 vif->addr, in wcn36xx_bss_info_changed()
867 vif->cfg.aid); in wcn36xx_bss_info_changed()
877 sta = ieee80211_find_sta(vif, bss_conf->bssid); in wcn36xx_bss_info_changed()
888 vif->addr, in wcn36xx_bss_info_changed()
890 wcn36xx_smd_config_bss(wcn, vif, sta, in wcn36xx_bss_info_changed()
893 sta_priv->aid = vif->cfg.aid; in wcn36xx_bss_info_changed()
898 wcn36xx_smd_config_sta(wcn, vif, sta); in wcn36xx_bss_info_changed()
899 if (vif->type == NL80211_IFTYPE_STATION) in wcn36xx_bss_info_changed()
900 wcn36xx_smd_add_beacon_filter(wcn, vif); in wcn36xx_bss_info_changed()
901 wcn36xx_enable_keep_alive_null_packet(wcn, vif); in wcn36xx_bss_info_changed()
904 "disassociated bss %pM vif %pM AID=%d\n", in wcn36xx_bss_info_changed()
906 vif->addr, in wcn36xx_bss_info_changed()
907 vif->cfg.aid); in wcn36xx_bss_info_changed()
911 vif->addr, in wcn36xx_bss_info_changed()
918 skb = ieee80211_proberesp_get(hw, vif); in wcn36xx_bss_info_changed()
924 wcn36xx_smd_update_proberesp_tmpl(wcn, vif, skb); in wcn36xx_bss_info_changed()
937 wcn36xx_smd_config_bss(wcn, vif, NULL, in wcn36xx_bss_info_changed()
938 vif->addr, false); in wcn36xx_bss_info_changed()
939 skb = ieee80211_beacon_get_tim(hw, vif, &tim_off, in wcn36xx_bss_info_changed()
945 wcn36xx_smd_send_beacon(wcn, vif, skb, tim_off, 0); in wcn36xx_bss_info_changed()
948 if (vif->type == NL80211_IFTYPE_ADHOC || in wcn36xx_bss_info_changed()
949 vif->type == NL80211_IFTYPE_MESH_POINT) in wcn36xx_bss_info_changed()
954 wcn36xx_smd_set_link_st(wcn, vif->addr, vif->addr, in wcn36xx_bss_info_changed()
957 wcn36xx_smd_delete_bss(wcn, vif); in wcn36xx_bss_info_changed()
958 wcn36xx_smd_set_link_st(wcn, vif->addr, vif->addr, in wcn36xx_bss_info_changed()
981 struct ieee80211_vif *vif) in wcn36xx_remove_interface() argument
984 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_remove_interface()
985 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac remove interface vif %p\n", vif); in wcn36xx_remove_interface()
990 wcn36xx_smd_delete_sta_self(wcn, vif->addr); in wcn36xx_remove_interface()
996 struct ieee80211_vif *vif) in wcn36xx_add_interface() argument
999 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_add_interface()
1001 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac add interface vif %p type %d\n", in wcn36xx_add_interface()
1002 vif, vif->type); in wcn36xx_add_interface()
1004 if (!(NL80211_IFTYPE_STATION == vif->type || in wcn36xx_add_interface()
1005 NL80211_IFTYPE_AP == vif->type || in wcn36xx_add_interface()
1006 NL80211_IFTYPE_ADHOC == vif->type || in wcn36xx_add_interface()
1007 NL80211_IFTYPE_MESH_POINT == vif->type)) { in wcn36xx_add_interface()
1009 vif->type); in wcn36xx_add_interface()
1018 wcn36xx_smd_add_sta_self(wcn, vif); in wcn36xx_add_interface()
1025 static int wcn36xx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in wcn36xx_sta_add() argument
1029 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_sta_add()
1031 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta add vif %p sta %pM\n", in wcn36xx_sta_add()
1032 vif, sta->addr); in wcn36xx_sta_add()
1037 sta_priv->vif = vif_priv; in wcn36xx_sta_add()
1044 if (NL80211_IFTYPE_STATION != vif->type) { in wcn36xx_sta_add()
1047 wcn36xx_smd_config_sta(wcn, vif, sta); in wcn36xx_sta_add()
1056 struct ieee80211_vif *vif, in wcn36xx_sta_remove() argument
1062 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta remove vif %p sta %pM index %d\n", in wcn36xx_sta_remove()
1063 vif, sta->addr, sta_priv->sta_index); in wcn36xx_sta_remove()
1069 sta_priv->vif = NULL; in wcn36xx_sta_remove()
1081 struct ieee80211_vif *vif = NULL; in wcn36xx_get_first_assoc_vif() local
1085 vif = wcn36xx_priv_to_vif(vif_priv); in wcn36xx_get_first_assoc_vif()
1089 return vif; in wcn36xx_get_first_assoc_vif()
1095 struct ieee80211_vif *vif = NULL; in wcn36xx_suspend() local
1102 vif = wcn36xx_get_first_assoc_vif(wcn); in wcn36xx_suspend()
1103 if (vif) { in wcn36xx_suspend()
1104 ret = wcn36xx_smd_arp_offload(wcn, vif, true); in wcn36xx_suspend()
1107 ret = wcn36xx_smd_ipv6_ns_offload(wcn, vif, true); in wcn36xx_suspend()
1110 ret = wcn36xx_smd_gtk_offload(wcn, vif, true); in wcn36xx_suspend()
1133 struct ieee80211_vif *vif = NULL; in wcn36xx_resume() local
1138 vif = wcn36xx_get_first_assoc_vif(wcn); in wcn36xx_resume()
1139 if (vif) { in wcn36xx_resume()
1142 wcn36xx_smd_gtk_offload_get_info(wcn, vif); in wcn36xx_resume()
1143 wcn36xx_smd_gtk_offload(wcn, vif, false); in wcn36xx_resume()
1144 wcn36xx_smd_ipv6_ns_offload(wcn, vif, false); in wcn36xx_resume()
1145 wcn36xx_smd_arp_offload(wcn, vif, false); in wcn36xx_resume()
1157 struct ieee80211_vif *vif, in wcn36xx_set_rekey_data() argument
1161 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_set_rekey_data()
1177 struct ieee80211_vif *vif, in wcn36xx_ampdu_action() argument
1198 get_sta_index(vif, sta_priv)); in wcn36xx_ampdu_action()
1206 wcn36xx_smd_del_ba(wcn, tid, 0, get_sta_index(vif, sta_priv)); in wcn36xx_ampdu_action()
1215 wcn36xx_smd_trigger_ba(wcn, get_sta_index(vif, sta_priv), tid, ssn); in wcn36xx_ampdu_action()
1220 get_sta_index(vif, sta_priv)); in wcn36xx_ampdu_action()
1240 wcn36xx_smd_del_ba(wcn, tid, 1, get_sta_index(vif, sta_priv)); in wcn36xx_ampdu_action()
1241 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); in wcn36xx_ampdu_action()
1255 struct ieee80211_vif *vif, in wcn36xx_ipv6_addr_change() argument
1258 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_ipv6_addr_change()
1281 static void wcn36xx_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in wcn36xx_flush() argument
1334 static void wcn36xx_sta_statistics(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in wcn36xx_sta_statistics() argument
1342 sta_index = get_sta_index(vif, wcn36xx_sta_to_priv(sta)); in wcn36xx_sta_statistics()