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