Lines Matching full:vif

358 	struct ieee80211_vif *vif = link_conf->vif;  in mt7925_mac_link_bss_add()  local
359 struct mt792x_vif *mvif = mconf->vif; in mt7925_mac_link_bss_add()
363 if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { in mt7925_mac_link_bss_add()
374 mconf->mt76.omac_idx = ieee80211_vif_is_mld(vif) ? in mt7925_mac_link_bss_add()
377 mconf->mt76.wmm_idx = ieee80211_vif_is_mld(vif) ? in mt7925_mac_link_bss_add()
407 if (vif->txq) { in mt7925_mac_link_bss_add()
408 mtxq = (struct mt76_txq *)vif->txq->drv_priv; in mt7925_mac_link_bss_add()
417 mt7925_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) in mt7925_add_interface() argument
419 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_add_interface()
427 mvif->bss_conf.vif = mvif; in mt7925_add_interface()
428 mvif->sta.vif = mvif; in mt7925_add_interface()
432 ret = mt7925_mac_link_bss_add(dev, &vif->bss_conf, &mvif->sta.deflink); in mt7925_add_interface()
436 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER; in mt7925_add_interface()
444 struct ieee80211_vif *vif) in mt7925_roc_iter() argument
446 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_roc_iter()
557 struct ieee80211_vif *vif, in mt7925_remain_on_channel() argument
562 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_remain_on_channel()
575 struct ieee80211_vif *vif) in mt7925_cancel_remain_on_channel() argument
577 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_cancel_remain_on_channel()
584 struct ieee80211_vif *vif, struct ieee80211_sta *sta, in mt7925_set_link_key() argument
588 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_set_link_key()
599 link_conf = mt792x_vif_to_bss_conf(vif, link_id); in mt7925_set_link_key()
600 link_sta = sta ? mt792x_sta_to_link_sta(vif, sta, link_id) : NULL; in mt7925_set_link_key()
646 err = mt7925_mcu_add_key(&dev->mt76, vif, &mlink->bip, in mt7925_set_link_key()
655 err = mt7925_mcu_add_key(&dev->mt76, vif, &mvif->wep_sta->deflink.bip, in mt7925_set_link_key()
663 struct ieee80211_vif *vif, struct ieee80211_sta *sta, in mt7925_set_key() argument
667 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_set_key()
675 if ((vif->type == NL80211_IFTYPE_ADHOC || in mt7925_set_key()
676 vif->type == NL80211_IFTYPE_MESH_POINT) && in mt7925_set_key()
684 if (ieee80211_vif_is_mld(vif)) { in mt7925_set_key()
691 err = mt7925_set_link_key(hw, cmd, vif, sta, key, link_id); in mt7925_set_key()
696 err = mt7925_set_link_key(hw, cmd, vif, sta, key, vif->bss_conf.link_id); in mt7925_set_key()
705 mt7925_pm_interface_iter(void *priv, u8 *mac, struct ieee80211_vif *vif) in mt7925_pm_interface_iter() argument
712 err = mt7925_mcu_set_beacon_filter(dev, vif, pm_enable); in mt7925_pm_interface_iter()
717 vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER; in mt7925_pm_interface_iter()
720 vif->driver_flags &= ~IEEE80211_VIF_BEACON_FILTER; in mt7925_pm_interface_iter()
726 mt7925_sniffer_interface_iter(void *priv, u8 *mac, struct ieee80211_vif *vif) in mt7925_sniffer_interface_iter() argument
733 mt7925_mcu_set_sniffer(dev, vif, monitor); in mt7925_sniffer_interface_iter()
740 mt7925_mcu_set_beacon_filter(dev, vif, false); in mt7925_sniffer_interface_iter()
811 mt7925_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_get_rates_table() argument
814 struct mt76_vif_link *mvif = (struct mt76_vif_link *)vif->drv_priv; in mt7925_get_rates_table()
819 rate = mt76_connac2_mac_tx_rate_val(mphy, &vif->bss_conf, beacon, mcast); in mt7925_get_rates_table()
840 struct ieee80211_vif *vif, in mt7925_mac_link_sta_add() argument
844 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_mac_link_sta_add()
885 link_conf = mt792x_vif_to_bss_conf(vif, link_id); in mt7925_mac_link_sta_add()
888 if (vif->type == NL80211_IFTYPE_STATION && !link_sta->sta->tdls) { in mt7925_mac_link_sta_add()
889 if (ieee80211_vif_is_mld(vif)) in mt7925_mac_link_sta_add()
897 if (ieee80211_vif_is_mld(vif) && in mt7925_mac_link_sta_add()
899 ret = mt7925_mcu_sta_update(dev, link_sta, vif, true, in mt7925_mac_link_sta_add()
903 } else if (ieee80211_vif_is_mld(vif) && in mt7925_mac_link_sta_add()
905 ret = mt7925_mcu_sta_update(dev, mlink->pri_link, vif, in mt7925_mac_link_sta_add()
910 ret = mt7925_mcu_sta_update(dev, link_sta, vif, true, in mt7925_mac_link_sta_add()
915 ret = mt7925_mcu_sta_update(dev, link_sta, vif, true, in mt7925_mac_link_sta_add()
927 mt7925_mac_sta_add_links(struct mt792x_dev *dev, struct ieee80211_vif *vif, in mt7925_mac_sta_add_links() argument
955 link_sta = mt792x_sta_to_link_sta(vif, sta, link_id); in mt7925_mac_sta_add_links()
956 mt7925_mac_link_sta_add(&dev->mt76, vif, link_sta); in mt7925_mac_sta_add_links()
962 int mt7925_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif, in mt7925_mac_sta_add() argument
966 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_mac_sta_add()
970 msta->vif = mvif; in mt7925_mac_sta_add()
972 if (vif->type == NL80211_IFTYPE_STATION) in mt7925_mac_sta_add()
975 if (ieee80211_vif_is_mld(vif)) { in mt7925_mac_sta_add()
978 err = mt7925_mac_sta_add_links(dev, vif, sta, sta->valid_links); in mt7925_mac_sta_add()
980 err = mt7925_mac_link_sta_add(mdev, vif, &sta->deflink); in mt7925_mac_sta_add()
988 mt7925_mac_select_links(struct mt76_dev *mdev, struct ieee80211_vif *vif) in mt7925_mac_select_links() argument
990 unsigned long usable_links = ieee80211_vif_usable_links(vif); in mt7925_mac_select_links()
998 if (!ieee80211_vif_is_mld(vif)) in mt7925_mac_select_links()
1001 if (vif->active_links == usable_links) in mt7925_mac_select_links()
1002 return vif->active_links; in mt7925_mac_select_links()
1007 rcu_dereference(vif->link_conf[link_id]); in mt7925_mac_select_links()
1019 if (!(BIT(data[i].link_id) & vif->active_links)) in mt7925_mac_select_links()
1038 mt7925_mac_set_links(struct mt76_dev *mdev, struct ieee80211_vif *vif) in mt7925_mac_set_links() argument
1041 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_mac_set_links()
1043 mt792x_vif_to_bss_conf(vif, mvif->deflink_id); in mt7925_mac_set_links()
1047 u16 sel_links = mt7925_mac_select_links(mdev, vif); in mt7925_mac_set_links()
1050 if (!ieee80211_vif_is_mld(vif) || hweight16(sel_links) < 2) in mt7925_mac_set_links()
1053 link_conf = mt792x_vif_to_bss_conf(vif, secondary_link_id); in mt7925_mac_set_links()
1067 ieee80211_set_active_links_async(vif, sel_links); in mt7925_mac_set_links()
1071 struct ieee80211_vif *vif, in mt7925_mac_link_sta_assoc() argument
1084 if (ieee80211_vif_is_mld(vif)) { in mt7925_mac_link_sta_assoc()
1085 link_conf = mt792x_vif_to_bss_conf(vif, msta->deflink_id); in mt7925_mac_link_sta_assoc()
1087 link_conf = mt792x_vif_to_bss_conf(vif, vif->bss_conf.link_id); in mt7925_mac_link_sta_assoc()
1090 if (vif->type == NL80211_IFTYPE_STATION && !link_sta->sta->tdls) { in mt7925_mac_link_sta_assoc()
1104 mt7925_mcu_sta_update(dev, link_sta, vif, true, MT76_STA_INFO_STATE_ASSOC); in mt7925_mac_link_sta_assoc()
1109 int mt7925_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif, in mt7925_mac_sta_event() argument
1117 if (ieee80211_vif_is_mld(vif)) { in mt7925_mac_sta_event()
1120 link_sta = mt792x_sta_to_link_sta(vif, sta, msta->deflink_id); in mt7925_mac_sta_event()
1121 mt7925_mac_set_links(mdev, vif); in mt7925_mac_sta_event()
1124 mt7925_mac_link_sta_assoc(mdev, vif, link_sta); in mt7925_mac_sta_event()
1131 struct ieee80211_vif *vif, in mt7925_mac_link_sta_remove() argument
1148 mt7925_mcu_sta_update(dev, link_sta, vif, false, in mt7925_mac_link_sta_remove()
1153 link_conf = mt792x_vif_to_bss_conf(vif, link_id); in mt7925_mac_link_sta_remove()
1155 if (vif->type == NL80211_IFTYPE_STATION && !link_sta->sta->tdls) { in mt7925_mac_link_sta_remove()
1160 if (ieee80211_vif_is_mld(vif)) in mt7925_mac_link_sta_remove()
1176 mt7925_mac_sta_remove_links(struct mt792x_dev *dev, struct ieee80211_vif *vif, in mt7925_mac_sta_remove_links() argument
1191 link_sta = mt792x_sta_to_link_sta(vif, sta, link_id); in mt7925_mac_sta_remove_links()
1199 link_conf = mt792x_vif_to_bss_conf(vif, link_id); in mt7925_mac_sta_remove_links()
1213 link_sta = mt792x_sta_to_link_sta(vif, sta, link_id); in mt7925_mac_sta_remove_links()
1221 mt7925_mac_link_sta_remove(&dev->mt76, vif, link_sta); in mt7925_mac_sta_remove_links()
1241 void mt7925_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif, in mt7925_mac_sta_remove() argument
1246 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_mac_sta_remove()
1249 rem = ieee80211_vif_is_mld(vif) ? msta->valid_links : BIT(0); in mt7925_mac_sta_remove()
1251 mt7925_mac_sta_remove_links(dev, vif, sta, rem); in mt7925_mac_sta_remove()
1253 if (ieee80211_vif_is_mld(vif)) in mt7925_mac_sta_remove()
1254 mt7925_mcu_del_dev(mdev, vif); in mt7925_mac_sta_remove()
1256 if (vif->type == NL80211_IFTYPE_STATION) { in mt7925_mac_sta_remove()
1277 mt7925_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_ampdu_action() argument
1325 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); in mt7925_ampdu_action()
1334 mt7925_mlo_pm_iter(void *priv, u8 *mac, struct ieee80211_vif *vif) in mt7925_mlo_pm_iter() argument
1337 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_mlo_pm_iter()
1338 unsigned long valid = ieee80211_vif_is_mld(vif) ? in mt7925_mlo_pm_iter()
1348 bss_conf = mt792x_vif_to_bss_conf(vif, i); in mt7925_mlo_pm_iter()
1445 mt7925_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_hw_scan() argument
1453 err = mt7925_mcu_hw_scan(mphy, vif, req); in mt7925_hw_scan()
1460 mt7925_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif) in mt7925_cancel_hw_scan() argument
1466 mt7925_mcu_cancel_hw_scan(mphy, vif); in mt7925_cancel_hw_scan()
1471 mt7925_start_sched_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_start_sched_scan() argument
1481 err = mt7925_mcu_sched_scan_req(mphy, vif, req); in mt7925_start_sched_scan()
1485 err = mt7925_mcu_sched_scan_enable(mphy, vif, true); in mt7925_start_sched_scan()
1493 mt7925_stop_sched_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif) in mt7925_stop_sched_scan() argument
1500 err = mt7925_mcu_sched_scan_enable(mphy, vif, false); in mt7925_stop_sched_scan()
1581 struct ieee80211_vif *vif, in mt7925_set_rekey_data() argument
1587 mt76_connac_mcu_update_gtk_rekey(hw, vif, data); in mt7925_set_rekey_data()
1593 struct ieee80211_vif *vif, in mt7925_sta_set_decap_offload() argument
1598 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_sta_set_decap_offload()
1605 valid = ieee80211_vif_is_mld(vif) ? mvif->valid_links : BIT(0); in mt7925_sta_set_decap_offload()
1617 mt7925_mcu_wtbl_update_hdr_trans(dev, vif, sta, i); in mt7925_sta_set_decap_offload()
1680 struct ieee80211_vif *vif, in mt7925_ipv6_addr_change() argument
1683 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_ipv6_addr_change()
1684 unsigned long valid = ieee80211_vif_is_mld(vif) ? in mt7925_ipv6_addr_change()
1690 bss_conf = mt792x_vif_to_bss_conf(vif, i); in mt7925_ipv6_addr_change()
1734 struct ieee80211_vif *vif, in mt7925_channel_switch_beacon() argument
1740 mt7925_mcu_uni_add_beacon_offload(dev, hw, vif, true); in mt7925_channel_switch_beacon()
1745 mt7925_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_conf_tx() argument
1749 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_conf_tx()
1765 mt7925_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_start_ap() argument
1768 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_start_ap()
1783 err = mt7925_mcu_sta_update(dev, NULL, vif, true, in mt7925_start_ap()
1792 mt7925_stop_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_stop_ap() argument
1795 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_stop_ap()
1833 struct ieee80211_vif *vif; in mt7925_change_chanctx() local
1840 mvif = mconf->vif; in mt7925_change_chanctx()
1841 vif = container_of((void *)mvif, struct ieee80211_vif, drv_priv); in mt7925_change_chanctx()
1844 if (vif->type == NL80211_IFTYPE_MONITOR) { in mt7925_change_chanctx()
1845 mt7925_mcu_set_sniffer(mvif->phy->dev, vif, true); in mt7925_change_chanctx()
1848 if (ieee80211_vif_is_mld(vif)) { in mt7925_change_chanctx()
1865 link_conf = mt792x_vif_to_bss_conf(vif, mconf->link_id); in mt7925_change_chanctx()
1875 struct ieee80211_vif *vif, in mt7925_mgd_prepare_tx() argument
1878 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_mgd_prepare_tx()
1891 struct ieee80211_vif *vif, in mt7925_mgd_complete_tx() argument
1894 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_mgd_complete_tx()
1900 struct ieee80211_vif *vif, in mt7925_vif_cfg_changed() argument
1903 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_vif_cfg_changed()
1905 unsigned long valid = ieee80211_vif_is_mld(vif) ? in mt7925_vif_cfg_changed()
1913 mt7925_mcu_sta_update(dev, NULL, vif, true, in mt7925_vif_cfg_changed()
1915 mt7925_mcu_set_beacon_filter(dev, vif, vif->cfg.assoc); in mt7925_vif_cfg_changed()
1917 if (ieee80211_vif_is_mld(vif)) in mt7925_vif_cfg_changed()
1923 bss_conf = mt792x_vif_to_bss_conf(vif, i); in mt7925_vif_cfg_changed()
1931 bss_conf = &vif->bss_conf; in mt7925_vif_cfg_changed()
1938 bss_conf = mt792x_vif_to_bss_conf(vif, i); in mt7925_vif_cfg_changed()
1949 struct ieee80211_vif *vif, in mt7925_link_info_changed() argument
1953 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_link_info_changed()
1973 mt7925_get_rates_table(hw, vif, false, true); in mt7925_link_info_changed()
1977 mt7925_get_rates_table(hw, vif, false, false); in mt7925_link_info_changed()
1982 mt7925_get_rates_table(hw, vif, true, false); in mt7925_link_info_changed()
1984 mt7925_mcu_uni_add_beacon_offload(dev, hw, vif, in mt7925_link_info_changed()
2004 mt7925_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_change_vif_links() argument
2010 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_change_vif_links()
2058 mconf->vif = mvif; in mt7925_change_vif_links()
2060 mlink->wcid.link_valid = !!vif->valid_links; in mt7925_change_vif_links()
2071 link_conf = mt792x_vif_to_bss_conf(vif, link_id); in mt7925_change_vif_links()
2082 vif->active_links); in mt7925_change_vif_links()
2111 mt7925_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in mt7925_change_sta_links() argument
2124 err = mt7925_mac_sta_remove_links(dev, vif, sta, rem); in mt7925_change_sta_links()
2128 err = mt7925_mac_sta_add_links(dev, vif, sta, add); in mt7925_change_sta_links()
2139 struct ieee80211_vif *vif, in mt7925_assign_vif_chanctx() argument
2144 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_assign_vif_chanctx()
2151 if (ieee80211_vif_is_mld(vif)) { in mt7925_assign_vif_chanctx()
2153 pri_link_conf = mt792x_vif_to_bss_conf(vif, mvif->deflink_id); in mt7925_assign_vif_chanctx()
2155 if (vif->type == NL80211_IFTYPE_STATION && in mt7925_assign_vif_chanctx()
2171 struct ieee80211_vif *vif, in mt7925_unassign_vif_chanctx() argument
2176 struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; in mt7925_unassign_vif_chanctx()
2182 if (ieee80211_vif_is_mld(vif)) { in mt7925_unassign_vif_chanctx()
2185 if (vif->type == NL80211_IFTYPE_STATION && in mt7925_unassign_vif_chanctx()