Lines Matching full:vif

142 mt7996_init_bitrate_mask(struct ieee80211_vif *vif, struct mt7996_vif_link *mlink)  in mt7996_init_bitrate_mask()  argument
162 struct ieee80211_vif *vif, struct ieee80211_sta *sta, in mt7996_set_hw_key() argument
174 else if (vif->valid_links) in mt7996_set_hw_key()
175 links = vif->valid_links; in mt7996_set_hw_key()
185 link = mt7996_vif_link(dev, vif, link_id); in mt7996_set_hw_key()
222 link_conf = link_conf_dereference_protected(vif, in mt7996_set_hw_key()
225 link_conf = &vif->bss_conf; in mt7996_set_hw_key()
229 mt7996_mcu_add_bss_info(link->phy, vif, link_conf, in mt7996_set_hw_key()
250 err = mt7996_mcu_add_key(&dev->mt76, vif, key, in mt7996_set_hw_key()
261 mt7996_key_iter(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_key_iter() argument
268 WARN_ON(mt7996_set_hw_key(hw, SET_KEY, vif, NULL, key)); in mt7996_key_iter()
271 int mt7996_vif_link_add(struct mt76_phy *mphy, struct ieee80211_vif *vif, in mt7996_vif_link_add() argument
276 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_vif_link_add()
288 idx = get_omac_idx(vif->type, phy->omac_mask); in mt7996_vif_link_add()
295 mlink->wmm_idx = vif->type == NL80211_IFTYPE_AP ? 0 : 3; in mt7996_vif_link_add()
299 ret = mt7996_mcu_add_dev_info(phy, vif, link_conf, mlink, true); in mt7996_vif_link_add()
317 if (vif->txq) { in mt7996_vif_link_add()
318 mtxq = (struct mt76_txq *)vif->txq->drv_priv; in mt7996_vif_link_add()
322 if (vif->type != NL80211_IFTYPE_AP && in mt7996_vif_link_add()
324 vif->offload_flags = 0; in mt7996_vif_link_add()
331 mt7996_init_bitrate_mask(vif, link); in mt7996_vif_link_add()
333 mt7996_mcu_add_bss_info(phy, vif, link_conf, mlink, msta_link, true); in mt7996_vif_link_add()
337 if (vif->type != NL80211_IFTYPE_STATION) in mt7996_vif_link_add()
342 ieee80211_iter_keys(mphy->hw, vif, mt7996_key_iter, NULL); in mt7996_vif_link_add()
350 void mt7996_vif_link_remove(struct mt76_phy *mphy, struct ieee80211_vif *vif, in mt7996_vif_link_remove() argument
355 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_vif_link_remove()
363 mt7996_mcu_add_bss_info(phy, vif, link_conf, mlink, msta_link, false); in mt7996_vif_link_remove()
365 mt7996_mcu_add_dev_info(phy, vif, link_conf, mlink, false); in mt7996_vif_link_remove()
374 for_each_vif_active_link(vif, iter, link_id) { in mt7996_vif_link_remove()
441 struct ieee80211_vif *vif) in mt7996_add_interface() argument
443 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_add_interface()
444 struct wireless_dev *wdev = ieee80211_vif_to_wdev(vif); in mt7996_add_interface()
461 if (vif->type == NL80211_IFTYPE_MONITOR) in mt7996_add_interface()
465 mt76_vif_init(vif, &mvif->mt76); in mt7996_add_interface()
467 vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR; in mt7996_add_interface()
481 static void mt7996_remove_iter(void *data, u8 *mac, struct ieee80211_vif *vif) in mt7996_remove_iter() argument
483 struct wireless_dev *wdev = ieee80211_vif_to_wdev(vif); in mt7996_remove_iter()
487 if (vif->type == NL80211_IFTYPE_MONITOR) in mt7996_remove_iter()
492 struct ieee80211_vif *vif) in mt7996_remove_interface() argument
500 mt76_vif_cleanup(&dev->mt76, vif); in mt7996_remove_interface()
545 struct ieee80211_vif *vif, struct ieee80211_sta *sta, in mt7996_set_key() argument
549 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_set_key()
555 if ((vif->type == NL80211_IFTYPE_ADHOC || in mt7996_set_key()
556 vif->type == NL80211_IFTYPE_MESH_POINT) && in mt7996_set_key()
588 err = mt7996_set_hw_key(hw, cmd, vif, sta, key); in mt7996_set_key()
600 mt7996_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_conf_tx() argument
605 struct mt7996_vif_link *mlink = mt7996_vif_link(dev, vif, link_id); in mt7996_conf_tx()
671 mt7996_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_get_txpower() argument
674 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_get_txpower()
681 wdev = ieee80211_vif_to_wdev(vif); in mt7996_get_txpower()
702 struct mt76_vif_link *mvif = mt76_vif_conf_link(&dev->mt76, conf->vif, conf); in mt7996_get_rates_table()
745 mt7996_vif_cfg_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_vif_cfg_changed() argument
752 if ((changed & BSS_CHANGED_ASSOC) && vif->cfg.assoc) { in mt7996_vif_cfg_changed()
756 for_each_vif_active_link(vif, link_conf, link_id) { in mt7996_vif_cfg_changed()
759 link = mt7996_vif_link(dev, vif, link_id); in mt7996_vif_cfg_changed()
766 mt7996_mcu_add_bss_info(link->phy, vif, link_conf, in mt7996_vif_cfg_changed()
779 mt7996_link_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_link_info_changed() argument
789 link = mt7996_vif_conf_link(dev, vif, info); in mt7996_link_info_changed()
804 mt7996_mcu_add_bss_info(phy, vif, info, &link->mt76, in mt7996_link_info_changed()
816 mt7996_mcu_set_timing(phy, vif, info); in mt7996_link_info_changed()
830 mt7996_mcu_set_tx(dev, vif, info); in mt7996_link_info_changed()
836 if ((vif->type == NL80211_IFTYPE_AP && in mt7996_link_info_changed()
838 vif->type == NL80211_IFTYPE_STATION) in mt7996_link_info_changed()
848 mt7996_mcu_add_beacon(hw, vif, info); in mt7996_link_info_changed()
870 struct ieee80211_vif *vif, in mt7996_channel_switch_beacon() argument
876 mt7996_mcu_add_beacon(hw, vif, &vif->bss_conf); in mt7996_channel_switch_beacon()
989 mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif, in mt7996_mac_sta_add_links() argument
1004 link_conf = link_conf_dereference_protected(vif, link_id); in mt7996_mac_sta_add_links()
1010 link = mt7996_vif_link(dev, vif, link_id); in mt7996_mac_sta_add_links()
1037 mt7996_mac_sta_change_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_mac_sta_change_links() argument
1049 ret = mt7996_mac_sta_add_links(dev, vif, sta, add); in mt7996_mac_sta_change_links()
1057 mt7996_mac_sta_add(struct mt76_phy *mphy, struct ieee80211_vif *vif, in mt7996_mac_sta_add() argument
1063 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_mac_sta_add()
1070 msta->vif = mvif; in mt7996_mac_sta_add()
1071 err = mt7996_mac_sta_add_links(dev, vif, sta, links); in mt7996_mac_sta_add()
1081 mt7996_mac_sta_event(struct mt7996_dev *dev, struct ieee80211_vif *vif, in mt7996_mac_sta_event() argument
1089 for_each_sta_active_link(vif, sta, link_sta, link_id) { in mt7996_mac_sta_event()
1095 link_conf = link_conf_dereference_protected(vif, link_id); in mt7996_mac_sta_event()
1099 link = mt7996_vif_link(dev, vif, link_id); in mt7996_mac_sta_event()
1115 err = mt7996_mcu_add_rate_ctrl(dev, msta_link->sta, vif, in mt7996_mac_sta_event()
1153 mt7996_mac_sta_remove(struct mt76_phy *mphy, struct ieee80211_vif *vif, in mt7996_mac_sta_remove() argument
1169 mt7996_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_sta_state() argument
1173 struct mt76_phy *mphy = mt76_vif_phy(hw, vif); in mt7996_sta_state()
1182 return mt7996_mac_sta_add(mphy, vif, sta); in mt7996_sta_state()
1186 mt7996_mac_sta_remove(mphy, vif, sta); in mt7996_sta_state()
1200 return mt7996_mac_sta_event(dev, vif, sta, ev); in mt7996_sta_state()
1210 struct ieee80211_vif *vif = info->control.vif; in mt7996_tx() local
1217 if (vif) { in mt7996_tx()
1218 struct mt7996_vif *mvif = (void *)vif->drv_priv; in mt7996_tx()
1274 mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_ampdu_action() argument
1296 for_each_sta_active_link(vif, sta, link_sta, link_id) { in mt7996_ampdu_action()
1304 link = mt7996_vif_link(dev, vif, link_id); in mt7996_ampdu_action()
1348 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); in mt7996_ampdu_action()
1407 mt7996_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) in mt7996_get_tsf() argument
1409 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_get_tsf()
1421 mt7996_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_set_tsf() argument
1424 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_set_tsf()
1436 link = mt7996_vif_link(dev, vif, mvif->mt76.deflink_id); in mt7996_set_tsf()
1457 mt7996_offset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_offset_tsf() argument
1460 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_offset_tsf()
1472 link = mt7996_vif_link(dev, vif, mvif->mt76.deflink_id); in mt7996_offset_tsf()
1545 struct ieee80211_vif *vif, in mt7996_sta_statistics() argument
1603 struct mt7996_dev *dev = msta->vif->deflink.phy->dev; in mt7996_link_rate_ctrl_update()
1625 struct ieee80211_vif *vif, in mt7996_link_sta_rc_update() argument
1637 mt7996_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_set_bitrate_mask() argument
1641 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_set_bitrate_mask()
1662 struct ieee80211_vif *vif, in mt7996_sta_set_4addr() argument
1673 for_each_sta_active_link(vif, sta, link_sta, link_id) { in mt7996_sta_set_4addr()
1677 link = mt7996_vif_link(dev, vif, link_id); in mt7996_sta_set_4addr()
1693 mt7996_mcu_wtbl_update_hdr_trans(dev, vif, link, msta_link); in mt7996_sta_set_4addr()
1700 struct ieee80211_vif *vif, in mt7996_sta_set_decap_offload() argument
1711 for_each_sta_active_link(vif, sta, link_sta, link_id) { in mt7996_sta_set_decap_offload()
1715 link = mt7996_vif_link(dev, vif, link_id); in mt7996_sta_set_decap_offload()
1733 mt7996_mcu_wtbl_update_hdr_trans(dev, vif, link, msta_link); in mt7996_sta_set_decap_offload()
1803 /* per vif counters */
1846 struct ieee80211_vif *vif, in mt7996_get_et_strings() argument
1856 struct ieee80211_vif *vif, int sset) in mt7996_get_et_sset_count() argument
1870 if (msta->vif->deflink.mt76.idx != wi->idx) in mt7996_ethtool_worker()
1878 struct ieee80211_vif *vif, in mt7996_get_et_stats() argument
1882 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_get_et_stats()
1956 /* Add values for all stations owned by this vif */ in mt7996_get_et_stats()
1978 struct mt7996_vif_link *link = &msta->vif->deflink; in mt7996_twt_teardown_request()
2045 struct ieee80211_vif *vif, in mt7996_net_fill_forward_path() argument
2050 struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; in mt7996_net_fill_forward_path()
2097 mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7996_change_vif_links() argument