Lines Matching refs:vif

190 int mt76_connac_mcu_set_vif_ps(struct mt76_dev *dev, struct ieee80211_vif *vif)
192 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
201 .ps_state = vif->cfg.ps ? 2 : 0,
204 if (vif->type != NL80211_IFTYPE_STATION)
233 struct ieee80211_vif *vif)
235 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
241 if (!(vif->driver_flags & IEEE80211_VIF_BEACON_FILTER))
244 ieee80211_beacon_loss(vif);
330 struct ieee80211_vif *vif)
332 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
338 switch (vif->type) {
342 if (vif->p2p)
348 if (vif->p2p)
372 struct ieee80211_vif *vif,
396 if (vif->type == NL80211_IFTYPE_STATION &&
397 !is_zero_ether_addr(vif->bss_conf.bssid)) {
398 memcpy(basic->peer_addr, vif->bss_conf.bssid, ETH_ALEN);
399 basic->aid = cpu_to_le16(vif->cfg.aid);
406 switch (vif->type) {
409 if (vif->p2p && !is_mt7921(dev))
417 if (vif->p2p && !is_mt7921(dev))
422 basic->aid = cpu_to_le16(vif->cfg.aid);
438 void mt76_connac_mcu_sta_uapsd(struct sk_buff *skb, struct ieee80211_vif *vif,
444 if (vif->type != NL80211_IFTYPE_AP || !sta->wme)
471 struct ieee80211_vif *vif,
484 if (vif->type == NL80211_IFTYPE_STATION)
501 struct ieee80211_vif *vif,
504 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
521 mt76_connac_mcu_wtbl_hdr_trans_tlv(skb, vif, wcid, sta_wtbl, wtbl_hdr);
528 struct ieee80211_vif *vif,
540 mt76_connac_mcu_wtbl_hdr_trans_tlv(skb, vif, wcid, NULL, wtbl_hdr);
548 struct ieee80211_vif *vif,
552 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
565 if (vif->type == NL80211_IFTYPE_STATION)
566 generic->partial_aid = cpu_to_le16(vif->cfg.aid);
573 if (!is_connac_v1(dev) && vif->type == NL80211_IFTYPE_STATION)
574 memcpy(generic->peer_addr, vif->bss_conf.bssid,
586 rx->rca1 = sta ? vif->type != NL80211_IFTYPE_AP : 1;
602 struct ieee80211_vif *vif)
608 if (vif->type != NL80211_IFTYPE_AP &&
609 vif->type != NL80211_IFTYPE_STATION)
795 mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
815 he_cap = ieee80211_get_he_iftype_cap(sband, vif->type);
816 eht_cap = ieee80211_get_eht_iftype_cap(sband, vif->type);
852 struct ieee80211_vif *vif,
855 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
889 mt76_connac_mcu_sta_uapsd(skb, vif, sta);
895 mt76_connac_mcu_sta_amsdu_tlv(skb, sta, vif);
914 phy->phy_type = mt76_connac_get_phy_mode_v2(mphy, vif, band, sta);
915 phy->basic_rate = cpu_to_le16((u16)vif->bss_conf.basic_rates);
1046 struct mt76_vif *mvif = (struct mt76_vif *)info->vif->drv_priv;
1057 mt76_connac_mcu_sta_basic_tlv(dev, skb, info->vif, info->sta,
1061 info->vif, info->rcpi,
1074 mt76_connac_mcu_wtbl_generic_tlv(dev, skb, info->vif,
1077 mt76_connac_mcu_wtbl_hdr_trans_tlv(skb, info->vif, info->wcid,
1135 struct ieee80211_vif *vif,
1139 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
1190 switch (vif->type) {
1210 memcpy(dev_req.tlv.omac_addr, vif->addr, ETH_ALEN);
1307 u8 mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
1329 he_cap = ieee80211_get_he_iftype_cap(sband, vif->type);
1360 u8 mt76_connac_get_phy_mode_ext(struct mt76_phy *phy, struct ieee80211_vif *vif,
1371 eht_cap = ieee80211_get_eht_iftype_cap(sband, vif->type);
1373 if (!eht_cap || !eht_cap->has_eht || !vif->bss_conf.eht_support)
1395 mt76_connac_get_he_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif)
1397 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
1405 return ieee80211_get_he_iftype_cap(sband, vif->type);
1410 mt76_connac_get_eht_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif)
1417 return ieee80211_get_eht_iftype_cap(sband, vif->type);
1424 mt76_connac_mcu_uni_bss_he_tlv(struct mt76_phy *phy, struct ieee80211_vif *vif,
1430 cap = mt76_connac_get_he_phy_cap(phy, vif);
1433 he->he_pe_duration = vif->bss_conf.htc_trig_based_pkt_ext;
1437 he->he_rts_thres = cpu_to_le16(vif->bss_conf.frame_time_rts_th);
1529 struct ieee80211_vif *vif,
1534 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
1552 .bcn_interval = cpu_to_le16(vif->bss_conf.beacon_int),
1553 .dtim_period = vif->bss_conf.dtim_period,
1558 .phymode = mt76_connac_get_phy_mode(phy, vif, band, NULL),
1563 .qos = vif->bss_conf.qos,
1574 basic_phy = mt76_connac_get_phy_mode_v2(phy, vif, band, NULL);
1577 switch (vif->type) {
1580 if (vif->p2p)
1589 if (vif->p2p)
1603 memcpy(basic_req.basic.bssid, vif->bss_conf.bssid, ETH_ALEN);
1613 if (vif->bss_conf.he_support) {
1639 vif->bss_conf.he_bss_color.enabled;
1641 vif->bss_conf.he_bss_color.color;
1644 mt76_connac_mcu_uni_bss_he_tlv(phy, vif,
1657 int mt76_connac_mcu_hw_scan(struct mt76_phy *phy, struct ieee80211_vif *vif,
1660 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
1764 struct ieee80211_vif *vif)
1766 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
1789 struct ieee80211_vif *vif,
1792 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
1875 struct ieee80211_vif *vif,
2204 struct mt76_vif *vif,
2220 .bss_idx = vif->idx,
2245 struct ieee80211_vif *vif)
2247 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2248 int ct_window = vif->bss_conf.p2p_noa_attr.oppps_ctwindow;
2278 struct ieee80211_vif *vif,
2311 struct ieee80211_vif *vif,
2314 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2339 ieee80211_iter_keys_rcu(hw, vif, mt76_connac_mcu_key_iter, gtk_tlv);
2352 mt76_connac_mcu_set_arp_filter(struct mt76_dev *dev, struct ieee80211_vif *vif,
2355 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2378 mt76_connac_mcu_set_gtk_rekey(struct mt76_dev *dev, struct ieee80211_vif *vif,
2381 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2406 struct ieee80211_vif *vif,
2410 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2437 struct ieee80211_vif *vif,
2441 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2470 mt76_connac_mcu_set_wow_ctrl(struct mt76_phy *phy, struct ieee80211_vif *vif,
2473 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2504 mt76_connac_mcu_sched_scan_req(phy, vif, wowlan->nd_config);
2506 mt76_connac_mcu_sched_scan_enable(phy, vif, suspend);
2560 struct ieee80211_vif *vif)
2568 mt76_connac_mcu_set_gtk_rekey(phy->dev, vif, suspend);
2569 mt76_connac_mcu_set_arp_filter(phy->dev, vif, suspend);
2571 mt76_connac_mcu_set_suspend_mode(phy->dev, vif, suspend, 1, true);
2574 mt76_connac_mcu_set_wow_pattern(phy->dev, vif, i, suspend,
2576 mt76_connac_mcu_set_wow_ctrl(phy, vif, suspend, wowlan);
2677 int mt76_connac_mcu_add_key(struct mt76_dev *dev, struct ieee80211_vif *vif,
2682 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2723 struct ieee80211_vif *vif,
2728 struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
2729 u32 type = vif->p2p ? NETWORK_P2P : NETWORK_INFRA;
2736 switch (vif->type) {
2742 u8 bssid_id = vif->bss_conf.bssid_indicator;
2748 bss->non_tx_bssid = vif->bss_conf.bssid_index;
2756 sta = ieee80211_find_sta(vif,
2757 vif->bss_conf.bssid);
2783 if (vif->type != NL80211_IFTYPE_MONITOR) {
2786 memcpy(bss->bssid, vif->bss_conf.bssid, ETH_ALEN);
2787 bss->bcn_interval = cpu_to_le16(vif->bss_conf.beacon_int);
2788 bss->dtim_period = vif->bss_conf.dtim_period;
2789 bss->phy_mode = mt76_connac_get_phy_mode(phy, vif,