Lines Matching full:vif

188 static inline u8 get_sta_index(struct ieee80211_vif *vif,  in get_sta_index()  argument
191 return NL80211_IFTYPE_STATION == vif->type ? in get_sta_index()
310 struct ieee80211_vif *vif = NULL; in wcn36xx_change_ps() local
314 vif = wcn36xx_priv_to_vif(tmp); in wcn36xx_change_ps()
316 if (vif->cfg.ps) /* ps allowed ? */ in wcn36xx_change_ps()
317 wcn36xx_pmc_enter_bmps_state(wcn, vif); in wcn36xx_change_ps()
319 wcn36xx_pmc_exit_bmps_state(wcn, vif); in wcn36xx_change_ps()
326 struct ieee80211_vif *vif = NULL; in wcn36xx_change_opchannel() local
358 vif = wcn36xx_priv_to_vif(tmp); in wcn36xx_change_opchannel()
359 wcn36xx_smd_switch_channel(wcn, vif, ch); in wcn36xx_change_opchannel()
436 struct ieee80211_vif *vif = NULL; in wcn36xx_configure_filter() local
446 vif = wcn36xx_priv_to_vif(tmp); in wcn36xx_configure_filter()
450 wcn36xx_smd_set_mc_list(wcn, vif, NULL); in wcn36xx_configure_filter()
451 else if (NL80211_IFTYPE_STATION == vif->type && tmp->sta_assoc) in wcn36xx_configure_filter()
452 wcn36xx_smd_set_mc_list(wcn, vif, fp); in wcn36xx_configure_filter()
501 struct ieee80211_vif *vif, in wcn36xx_set_key() argument
506 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_set_key()
561 if (NL80211_IFTYPE_STATION == vif->type) { in wcn36xx_set_key()
563 vif, in wcn36xx_set_key()
567 wcn36xx_smd_config_sta(wcn, vif, sta); in wcn36xx_set_key()
575 get_sta_index(vif, sta_priv)); in wcn36xx_set_key()
594 get_sta_index(vif, sta_priv)); in wcn36xx_set_key()
615 get_sta_index(vif, sta_priv)); in wcn36xx_set_key()
631 struct ieee80211_vif *vif, in wcn36xx_hw_scan() argument
662 return wcn36xx_smd_start_hw_scan(wcn, vif, &hw_req->req); in wcn36xx_hw_scan()
666 struct ieee80211_vif *vif) in wcn36xx_cancel_hw_scan() argument
682 struct ieee80211_vif *vif, in wcn36xx_sw_scan_start() argument
686 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_sw_scan_start()
691 wcn->sw_scan_vif = vif; in wcn36xx_sw_scan_start()
700 struct ieee80211_vif *vif) in wcn36xx_sw_scan_complete() argument
801 struct ieee80211_vif *vif, in wcn36xx_bss_info_changed() argument
809 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_bss_info_changed()
811 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss info changed vif %p changed 0x%llx\n", in wcn36xx_bss_info_changed()
812 vif, changed); in wcn36xx_bss_info_changed()
831 wcn36xx_smd_set_link_st(wcn, bss_conf->bssid, vif->addr, in wcn36xx_bss_info_changed()
834 vif->addr, WCN36XX_HW_CHANNEL(wcn)); in wcn36xx_bss_info_changed()
835 wcn36xx_smd_config_bss(wcn, vif, NULL, in wcn36xx_bss_info_changed()
839 wcn36xx_smd_delete_bss(wcn, vif); in wcn36xx_bss_info_changed()
840 wcn36xx_smd_set_link_st(wcn, bss_conf->bssid, vif->addr, in wcn36xx_bss_info_changed()
850 vif->cfg.ssid, vif->cfg.ssid_len); in wcn36xx_bss_info_changed()
852 vif_priv->ssid.length = vif->cfg.ssid_len; in wcn36xx_bss_info_changed()
854 vif->cfg.ssid, in wcn36xx_bss_info_changed()
855 vif->cfg.ssid_len); in wcn36xx_bss_info_changed()
860 if (vif->cfg.assoc) { in wcn36xx_bss_info_changed()
865 "mac assoc bss %pM vif %pM AID=%d\n", in wcn36xx_bss_info_changed()
867 vif->addr, in wcn36xx_bss_info_changed()
868 vif->cfg.aid); in wcn36xx_bss_info_changed()
878 sta = ieee80211_find_sta(vif, bss_conf->bssid); in wcn36xx_bss_info_changed()
889 vif->addr, in wcn36xx_bss_info_changed()
891 wcn36xx_smd_config_bss(wcn, vif, sta, in wcn36xx_bss_info_changed()
894 sta_priv->aid = vif->cfg.aid; in wcn36xx_bss_info_changed()
899 wcn36xx_smd_config_sta(wcn, vif, sta); in wcn36xx_bss_info_changed()
900 if (vif->type == NL80211_IFTYPE_STATION) in wcn36xx_bss_info_changed()
901 wcn36xx_smd_add_beacon_filter(wcn, vif); in wcn36xx_bss_info_changed()
902 wcn36xx_enable_keep_alive_null_packet(wcn, vif); in wcn36xx_bss_info_changed()
905 "disassociated bss %pM vif %pM AID=%d\n", in wcn36xx_bss_info_changed()
907 vif->addr, in wcn36xx_bss_info_changed()
908 vif->cfg.aid); in wcn36xx_bss_info_changed()
912 vif->addr, in wcn36xx_bss_info_changed()
919 skb = ieee80211_proberesp_get(hw, vif); in wcn36xx_bss_info_changed()
925 wcn36xx_smd_update_proberesp_tmpl(wcn, vif, skb); in wcn36xx_bss_info_changed()
938 wcn36xx_smd_config_bss(wcn, vif, NULL, in wcn36xx_bss_info_changed()
939 vif->addr, false); in wcn36xx_bss_info_changed()
940 skb = ieee80211_beacon_get_tim(hw, vif, &tim_off, in wcn36xx_bss_info_changed()
946 wcn36xx_smd_send_beacon(wcn, vif, skb, tim_off, 0); in wcn36xx_bss_info_changed()
949 if (vif->type == NL80211_IFTYPE_ADHOC || in wcn36xx_bss_info_changed()
950 vif->type == NL80211_IFTYPE_MESH_POINT) in wcn36xx_bss_info_changed()
955 wcn36xx_smd_set_link_st(wcn, vif->addr, vif->addr, in wcn36xx_bss_info_changed()
958 wcn36xx_smd_delete_bss(wcn, vif); in wcn36xx_bss_info_changed()
959 wcn36xx_smd_set_link_st(wcn, vif->addr, vif->addr, in wcn36xx_bss_info_changed()
982 struct ieee80211_vif *vif) in wcn36xx_remove_interface() argument
985 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_remove_interface()
986 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac remove interface vif %p\n", vif); in wcn36xx_remove_interface()
991 wcn36xx_smd_delete_sta_self(wcn, vif->addr); in wcn36xx_remove_interface()
997 struct ieee80211_vif *vif) in wcn36xx_add_interface() argument
1000 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_add_interface()
1002 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac add interface vif %p type %d\n", in wcn36xx_add_interface()
1003 vif, vif->type); in wcn36xx_add_interface()
1005 if (!(NL80211_IFTYPE_STATION == vif->type || in wcn36xx_add_interface()
1006 NL80211_IFTYPE_AP == vif->type || in wcn36xx_add_interface()
1007 NL80211_IFTYPE_ADHOC == vif->type || in wcn36xx_add_interface()
1008 NL80211_IFTYPE_MESH_POINT == vif->type)) { in wcn36xx_add_interface()
1010 vif->type); in wcn36xx_add_interface()
1019 wcn36xx_smd_add_sta_self(wcn, vif); in wcn36xx_add_interface()
1026 static int wcn36xx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in wcn36xx_sta_add() argument
1030 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_sta_add()
1032 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta add vif %p sta %pM\n", in wcn36xx_sta_add()
1033 vif, sta->addr); in wcn36xx_sta_add()
1038 sta_priv->vif = vif_priv; in wcn36xx_sta_add()
1045 if (NL80211_IFTYPE_STATION != vif->type) { in wcn36xx_sta_add()
1048 wcn36xx_smd_config_sta(wcn, vif, sta); in wcn36xx_sta_add()
1057 struct ieee80211_vif *vif, in wcn36xx_sta_remove() argument
1063 wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta remove vif %p sta %pM index %d\n", in wcn36xx_sta_remove()
1064 vif, sta->addr, sta_priv->sta_index); in wcn36xx_sta_remove()
1070 sta_priv->vif = NULL; in wcn36xx_sta_remove()
1082 struct ieee80211_vif *vif = NULL; in wcn36xx_get_first_assoc_vif() local
1086 vif = wcn36xx_priv_to_vif(vif_priv); in wcn36xx_get_first_assoc_vif()
1090 return vif; in wcn36xx_get_first_assoc_vif()
1096 struct ieee80211_vif *vif = NULL; in wcn36xx_suspend() local
1103 vif = wcn36xx_get_first_assoc_vif(wcn); in wcn36xx_suspend()
1104 if (vif) { in wcn36xx_suspend()
1105 ret = wcn36xx_smd_arp_offload(wcn, vif, true); in wcn36xx_suspend()
1108 ret = wcn36xx_smd_ipv6_ns_offload(wcn, vif, true); in wcn36xx_suspend()
1111 ret = wcn36xx_smd_gtk_offload(wcn, vif, true); in wcn36xx_suspend()
1134 struct ieee80211_vif *vif = NULL; in wcn36xx_resume() local
1139 vif = wcn36xx_get_first_assoc_vif(wcn); in wcn36xx_resume()
1140 if (vif) { in wcn36xx_resume()
1143 wcn36xx_smd_gtk_offload_get_info(wcn, vif); in wcn36xx_resume()
1144 wcn36xx_smd_gtk_offload(wcn, vif, false); in wcn36xx_resume()
1145 wcn36xx_smd_ipv6_ns_offload(wcn, vif, false); in wcn36xx_resume()
1146 wcn36xx_smd_arp_offload(wcn, vif, false); in wcn36xx_resume()
1158 struct ieee80211_vif *vif, in wcn36xx_set_rekey_data() argument
1162 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_set_rekey_data()
1178 struct ieee80211_vif *vif, in wcn36xx_ampdu_action() argument
1199 get_sta_index(vif, sta_priv)); in wcn36xx_ampdu_action()
1207 wcn36xx_smd_del_ba(wcn, tid, 0, get_sta_index(vif, sta_priv)); in wcn36xx_ampdu_action()
1216 wcn36xx_smd_trigger_ba(wcn, get_sta_index(vif, sta_priv), tid, ssn); in wcn36xx_ampdu_action()
1221 get_sta_index(vif, sta_priv)); in wcn36xx_ampdu_action()
1241 wcn36xx_smd_del_ba(wcn, tid, 1, get_sta_index(vif, sta_priv)); in wcn36xx_ampdu_action()
1242 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); in wcn36xx_ampdu_action()
1256 struct ieee80211_vif *vif, in wcn36xx_ipv6_addr_change() argument
1259 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); in wcn36xx_ipv6_addr_change()
1282 static void wcn36xx_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in wcn36xx_flush() argument
1335 static void wcn36xx_sta_statistics(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in wcn36xx_sta_statistics() argument
1343 sta_index = get_sta_index(vif, wcn36xx_sta_to_priv(sta)); in wcn36xx_sta_statistics()