Lines Matching refs:vif

113 	enum nl80211_band band = msta->vif->phy->mt76->chandef.chan->band;
114 const u16 *mask = msta->vif->bitrate_mask.control[band].he_mcs;
339 mt7996_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
341 if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION)
344 ieee80211_csa_finish(vif, 0);
419 mt7996_mcu_cca_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
421 if (!vif->bss_conf.color_change_active || vif->type == NL80211_IFTYPE_STATION)
424 ieee80211_color_change_finish(vif, 0);
747 mt7996_mcu_bss_rfch_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
778 mt7996_mcu_bss_ra_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
791 mt7996_mcu_bss_he_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
800 cap = mt76_connac_get_he_phy_cap(phy->mt76, vif);
805 he->he_pe_duration = vif->bss_conf.htc_trig_based_pkt_ext;
809 he->he_rts_thres = cpu_to_le16(vif->bss_conf.frame_time_rts_th);
819 mt7996_mcu_bss_mbssid_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
825 if (!vif->bss_conf.bssid_indicator)
833 mbssid->max_indicator = vif->bss_conf.bssid_indicator;
834 mbssid->mbss_idx = vif->bss_conf.bssid_index;
840 mt7996_mcu_bss_bmc_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
843 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
873 mt7996_mcu_bss_mld_tlv(struct sk_buff *skb, struct ieee80211_vif *vif)
875 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
888 mt7996_mcu_bss_sec_tlv(struct sk_buff *skb, struct ieee80211_vif *vif)
890 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
901 mt7996_mcu_muar_config(struct mt7996_phy *phy, struct ieee80211_vif *vif,
906 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
908 const u8 *addr = vif->addr;
935 addr = vif->bss_conf.bssid;
945 mt7996_mcu_bss_ifs_timing_tlv(struct sk_buff *skb, struct ieee80211_vif *vif)
947 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
974 struct ieee80211_vif *vif,
979 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
987 switch (vif->type) {
996 sta = ieee80211_find_sta(vif,
997 vif->bss_conf.bssid);
1020 bss->bcn_interval = cpu_to_le16(vif->bss_conf.beacon_int);
1021 bss->dtim_period = vif->bss_conf.dtim_period;
1034 if (vif->type == NL80211_IFTYPE_MONITOR) {
1039 memcpy(bss->bssid, vif->bss_conf.bssid, ETH_ALEN);
1040 bss->bcn_interval = cpu_to_le16(vif->bss_conf.beacon_int);
1041 bss->dtim_period = vif->bss_conf.dtim_period;
1042 bss->phymode = mt76_connac_get_phy_mode(phy, vif,
1044 bss->phymode_ext = mt76_connac_get_phy_mode_ext(phy, vif,
1068 struct ieee80211_vif *vif, int enable)
1070 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
1075 mt7996_mcu_muar_config(phy, vif, false, enable);
1076 mt7996_mcu_muar_config(phy, vif, true, enable);
1085 mt7996_mcu_bss_basic_tlv(skb, vif, NULL, phy->mt76,
1087 mt7996_mcu_bss_sec_tlv(skb, vif);
1089 if (vif->type == NL80211_IFTYPE_MONITOR)
1093 mt7996_mcu_bss_rfch_tlv(skb, vif, phy);
1094 mt7996_mcu_bss_bmc_tlv(skb, vif, phy);
1095 mt7996_mcu_bss_ra_tlv(skb, vif, phy);
1097 mt7996_mcu_bss_ifs_timing_tlv(skb, vif);
1099 if (vif->bss_conf.he_support)
1100 mt7996_mcu_bss_he_tlv(skb, vif, phy);
1102 /* this tag is necessary no matter if the vif is MLD */
1103 mt7996_mcu_bss_mld_tlv(skb, vif);
1106 mt7996_mcu_bss_mbssid_tlv(skb, vif, phy, enable);
1113 int mt7996_mcu_set_timing(struct mt7996_phy *phy, struct ieee80211_vif *vif)
1115 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
1124 mt7996_mcu_bss_ifs_timing_tlv(skb, vif);
1166 struct mt7996_vif *mvif = msta->vif;
1179 struct mt7996_vif *mvif = msta->vif;
1247 struct ieee80211_vif *vif = container_of((void *)msta->vif,
1268 if (vif->type != NL80211_IFTYPE_STATION &&
1323 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
1329 if (vif->type != NL80211_IFTYPE_STATION &&
1330 vif->type != NL80211_IFTYPE_MESH_POINT &&
1331 vif->type != NL80211_IFTYPE_AP)
1360 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
1366 if (vif->type != NL80211_IFTYPE_STATION &&
1367 vif->type != NL80211_IFTYPE_AP)
1373 muru->cfg.mimo_dl_en = vif->bss_conf.eht_mu_beamformer ||
1374 vif->bss_conf.he_mu_beamformer ||
1375 vif->bss_conf.vht_mu_beamformer ||
1376 vif->bss_conf.vht_mu_beamformee;
1414 mt7996_is_ebf_supported(struct mt7996_phy *phy, struct ieee80211_vif *vif,
1419 if (vif->type != NL80211_IFTYPE_STATION &&
1420 vif->type != NL80211_IFTYPE_AP)
1431 return vif->bss_conf.eht_su_beamformee &&
1434 return vif->bss_conf.eht_su_beamformer &&
1442 return vif->bss_conf.he_su_beamformee &&
1445 return vif->bss_conf.he_su_beamformer &&
1453 return vif->bss_conf.vht_su_beamformee &&
1456 return vif->bss_conf.vht_su_beamformer &&
1535 mt7996_mcu_sta_bfer_he(struct ieee80211_sta *sta, struct ieee80211_vif *vif,
1541 mt76_connac_get_he_phy_cap(phy->mt76, vif);
1595 mt7996_mcu_sta_bfer_eht(struct ieee80211_sta *sta, struct ieee80211_vif *vif,
1602 mt76_connac_get_eht_phy_cap(phy->mt76, vif);
1652 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
1654 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
1670 ebf = mt7996_is_ebf_supported(phy, vif, sta, false);
1682 mt7996_mcu_sta_bfer_eht(sta, vif, phy, bf);
1684 mt7996_mcu_sta_bfer_he(sta, vif, phy, bf);
1723 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
1725 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
1735 if (!mt7996_is_ebf_supported(phy, vif, sta, true))
1783 struct ieee80211_vif *vif,
1794 if (vif->type == NL80211_IFTYPE_STATION)
1809 if (vif->type == NL80211_IFTYPE_MESH_POINT) {
1857 int mt7996_mcu_set_fixed_field(struct mt7996_dev *dev, struct ieee80211_vif *vif,
1860 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
1899 mt7996_mcu_add_rate_ctrl_fixed(struct mt7996_dev *dev, struct ieee80211_vif *vif,
1902 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
1946 ret = mt7996_mcu_set_fixed_field(dev, vif, sta, &phy,
1968 ret = mt7996_mcu_set_fixed_field(dev, vif, sta, &phy,
1976 ret = mt7996_mcu_set_fixed_field(dev, vif, sta, &phy,
1987 struct ieee80211_vif *vif, struct ieee80211_sta *sta)
1990 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2005 ra->phy_mode = mt76_connac_get_phy_mode(mphy, vif, band, sta);
2044 if (vif->bss_conf.ht_ldpc &&
2070 if (vif->bss_conf.vht_ldpc &&
2091 int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
2094 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2115 mt7996_mcu_sta_rate_ctrl_tlv(skb, dev, vif, sta);
2122 return mt7996_mcu_add_rate_ctrl_fixed(dev, vif, sta);
2126 mt7996_mcu_add_group(struct mt7996_dev *dev, struct ieee80211_vif *vif,
2130 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2156 int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
2159 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2173 mt76_connac_mcu_sta_basic_tlv(&dev->mt76, skb, vif, sta, enable, newly);
2179 mt7996_mcu_sta_hdr_trans_tlv(dev, skb, vif, sta);
2188 mt7996_mcu_sta_bfer_tlv(dev, skb, vif, sta);
2194 mt76_connac_mcu_sta_uapsd(skb, vif, sta);
2196 mt7996_mcu_sta_amsdu_tlv(dev, skb, vif, sta);
2204 mt7996_mcu_sta_muru_tlv(dev, skb, vif, sta);
2206 mt7996_mcu_sta_bfee_tlv(dev, skb, vif, sta);
2209 ret = mt7996_mcu_add_group(dev, vif, sta);
2264 int mt7996_mcu_add_key(struct mt76_dev *dev, struct ieee80211_vif *vif,
2268 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2284 static int mt7996_mcu_get_pn(struct mt7996_dev *dev, struct ieee80211_vif *vif,
2288 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2318 int mt7996_mcu_bcn_prot_enable(struct mt7996_dev *dev, struct ieee80211_vif *vif,
2321 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2338 ret = mt7996_mcu_get_pn(dev, vif, pn);
2371 struct ieee80211_vif *vif, bool enable)
2374 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2401 return mt7996_mcu_muar_config(phy, vif, false, enable);
2403 memcpy(data.tlv.omac_addr, vif->addr, ETH_ALEN);
2409 mt7996_mcu_beacon_cntdwn(struct ieee80211_vif *vif, struct sk_buff *rskb,
2420 tag = vif->bss_conf.csa_active ? UNI_BSS_INFO_BCN_CSA : UNI_BSS_INFO_BCN_BCC;
2430 struct ieee80211_vif *vif, struct bss_bcn_content_tlv *bcn,
2437 if (!vif->bss_conf.bssid_indicator)
2482 mt7996_mcu_beacon_cont(struct mt7996_dev *dev, struct ieee80211_vif *vif,
2496 if (vif->bss_conf.csa_active)
2498 if (vif->bss_conf.color_change_active)
2510 struct ieee80211_vif *vif, int en)
2514 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2522 if (vif->bss_conf.nontransmitted)
2530 skb = ieee80211_beacon_get_template(hw, vif, &offs, 0);
2553 mt7996_mcu_beacon_cont(dev, vif, rskb, skb, bcn, &offs);
2554 mt7996_mcu_beacon_mbss(rskb, skb, vif, bcn, &offs);
2555 mt7996_mcu_beacon_cntdwn(vif, rskb, skb, &offs);
2563 struct ieee80211_vif *vif, u32 changed)
2569 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
2580 if (vif->bss_conf.nontransmitted)
2589 vif->bss_conf.fils_discovery.max_interval) {
2590 interval = vif->bss_conf.fils_discovery.max_interval;
2591 skb = ieee80211_get_fils_discovery_tmpl(hw, vif);
2593 vif->bss_conf.unsol_bcast_probe_resp_interval) {
2594 interval = vif->bss_conf.unsol_bcast_probe_resp_interval;
2595 skb = ieee80211_get_unsol_bcast_probe_resp_tmpl(hw, vif);
2611 info->control.vif = vif;
3142 int mt7996_mcu_set_tx(struct mt7996_dev *dev, struct ieee80211_vif *vif)
3151 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
4012 mt7996_mcu_set_obss_spr_siga(struct mt7996_phy *phy, struct ieee80211_vif *vif,
4015 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
4089 int mt7996_mcu_add_obss_spr(struct mt7996_phy *phy, struct ieee80211_vif *vif,
4123 ret = mt7996_mcu_set_obss_spr_siga(phy, vif, he_obss_pd);
4131 int mt7996_mcu_update_bss_color(struct mt7996_dev *dev, struct ieee80211_vif *vif,
4135 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
4284 struct ieee80211_vif *vif,
4287 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
4300 mt7996_mcu_sta_hdr_trans_tlv(dev, skb, vif, sta);