Lines Matching full:mt76
15 mt7996_mac_enable_nf(dev, phy->mt76->band_idx); in mt7996_run()
37 set_bit(MT76_STATE_RUNNING, &phy->mt76->state); in mt7996_run()
39 ieee80211_queue_delayed_work(dev->mphy.hw, &phy->mt76->mac_work, in mt7996_run()
57 mutex_lock(&dev->mt76.mutex); in mt7996_start()
59 if (!ret && is_mt7992(&dev->mt76)) { in mt7996_start()
64 mutex_unlock(&dev->mt76.mutex); in mt7996_start()
73 if (!phy || !test_bit(MT76_STATE_RUNNING, &phy->mt76->state)) in mt7996_stop_phy()
76 cancel_delayed_work_sync(&phy->mt76->mac_work); in mt7996_stop_phy()
78 mutex_lock(&dev->mt76.mutex); in mt7996_stop_phy()
82 clear_bit(MT76_STATE_RUNNING, &phy->mt76->state); in mt7996_stop_phy()
84 mutex_unlock(&dev->mt76.mutex); in mt7996_stop_phy()
192 if (cmd == SET_KEY && !sta && !mlink->mt76.cipher) { in mt7996_set_hw_key()
193 mlink->mt76.cipher = mt76_connac_mcu_get_cipher(key->cipher); in mt7996_set_hw_key()
194 mt7996_mcu_add_bss_info(phy, vif, &vif->bss_conf, &mlink->mt76, true); in mt7996_set_hw_key()
205 mt76_wcid_key_setup(&dev->mt76, wcid, key); in mt7996_set_hw_key()
210 return mt7996_mcu_add_key(&dev->mt76, vif, key, in mt7996_set_hw_key()
232 struct mt7996_vif_link *link = container_of(mlink, struct mt7996_vif_link, mt76); in mt7996_vif_link_add()
235 u8 band_idx = phy->mt76->band_idx; in mt7996_vif_link_add()
239 mlink->idx = __ffs64(~dev->mt76.vif_mask); in mt7996_vif_link_add()
257 dev->mt76.vif_mask |= BIT_ULL(mlink->idx); in mt7996_vif_link_add()
279 if (phy->mt76->chandef.chan->band != NL80211_BAND_2GHZ) in mt7996_vif_link_add()
292 rcu_assign_pointer(dev->mt76.wcid[idx], &link->sta.wcid); in mt7996_vif_link_add()
303 struct mt7996_vif_link *link = container_of(mlink, struct mt7996_vif_link, mt76); in mt7996_vif_link_remove()
316 rcu_assign_pointer(dev->mt76.wcid[idx], NULL); in mt7996_vif_link_remove()
318 dev->mt76.vif_mask &= ~BIT_ULL(mlink->idx); in mt7996_vif_link_remove()
321 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_vif_link_remove()
324 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_vif_link_remove()
326 mt76_wcid_cleanup(&dev->mt76, &msta->wcid); in mt7996_vif_link_remove()
346 mt76_wr(dev, MT_WF_RFCR(phy->mt76->band_idx), filter); in mt7996_phy_set_rxfilter()
348 mt76_set(dev, MT_WF_RFCR1(phy->mt76->band_idx), ctl_flags); in mt7996_phy_set_rxfilter()
350 mt76_clear(dev, MT_WF_RFCR1(phy->mt76->band_idx), ctl_flags); in mt7996_phy_set_rxfilter()
368 mt76_rmw_field(dev, MT_DMA_DCR0(phy->mt76->band_idx), in mt7996_set_monitor()
382 mutex_lock(&dev->mt76.mutex); in mt7996_add_interface()
388 test_bit(MT76_STATE_RUNNING, &phy->mt76->state)) in mt7996_add_interface()
399 mt76_vif_init(vif, &mvif->mt76); in mt7996_add_interface()
404 mutex_unlock(&dev->mt76.mutex); in mt7996_add_interface()
433 mt76_vif_cleanup(&dev->mt76, vif); in mt7996_remove_interface()
521 mutex_lock(&dev->mt76.mutex); in mt7996_set_key()
523 mutex_unlock(&dev->mt76.mutex); in mt7996_set_key()
570 mutex_lock(&dev->mt76.mutex); in mt7996_configure_filter()
601 mutex_unlock(&dev->mt76.mutex); in mt7996_configure_filter()
609 struct mt76_vif_link *mvif = mt76_vif_conf_link(&dev->mt76, conf->vif, conf); in mt7996_get_rates_table()
613 rate = mt76_connac2_mac_tx_rate_val(phy->mt76, conf, beacon, mcast); in mt7996_get_rates_table()
617 idx = MT7996_BEACON_RATES_TBL + 2 * phy->mt76->band_idx; in mt7996_get_rates_table()
638 u8 band = mvif->deflink.mt76.band_idx; in mt7996_update_mu_group()
662 mutex_lock(&dev->mt76.mutex); in mt7996_bss_info_changed()
664 mvif = mt76_vif_conf_link(&dev->mt76, vif, info); in mt7996_bss_info_changed()
742 mutex_unlock(&dev->mt76.mutex); in mt7996_bss_info_changed()
752 mutex_lock(&dev->mt76.mutex); in mt7996_channel_switch_beacon()
754 mutex_unlock(&dev->mt76.mutex); in mt7996_channel_switch_beacon()
760 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_mac_sta_add()
764 u8 band_idx = link->phy->mt76->band_idx; in mt7996_mac_sta_add()
767 idx = mt76_wcid_alloc(dev->mt76.wcid_mask, MT7996_WTBL_STA); in mt7996_mac_sta_add()
782 mt7996_mcu_add_sta(dev, vif, &link->mt76, sta, CONN_STATE_DISCONNECT, in mt7996_mac_sta_add()
791 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_mac_sta_event()
799 ret = mt7996_mcu_add_sta(dev, vif, &link->mt76, sta, in mt7996_mac_sta_event()
814 return mt7996_mcu_add_sta(dev, vif, &link->mt76, sta, in mt7996_mac_sta_event()
821 mt7996_mcu_add_sta(dev, vif, &link->mt76, sta, in mt7996_mac_sta_event()
835 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_mac_sta_remove()
857 struct mt76_wcid *wcid = &dev->mt76.global_wcid; in mt7996_tx()
865 if (mvif->mt76.roc_phy && in mt7996_tx()
867 mphy = mvif->mt76.roc_phy; in mt7996_tx()
871 mphy = mt76_vif_link_phy(&mvif->deflink.mt76); in mt7996_tx()
895 mutex_lock(&dev->mt76.mutex); in mt7996_set_rts_threshold()
905 mutex_unlock(&dev->mt76.mutex); in mt7996_set_rts_threshold()
929 mutex_lock(&dev->mt76.mutex); in mt7996_ampdu_action()
932 mt76_rx_aggr_start(&dev->mt76, &msta->wcid, tid, ssn, in mt7996_ampdu_action()
937 mt76_rx_aggr_stop(&dev->mt76, &msta->wcid, tid); in mt7996_ampdu_action()
962 mutex_unlock(&dev->mt76.mutex); in mt7996_ampdu_action()
974 mutex_lock(&dev->mt76.mutex); in mt7996_get_stats()
987 mutex_unlock(&dev->mt76.mutex); in mt7996_get_stats()
1005 lockdep_assert_held(&dev->mt76.mutex); in __mt7996_get_tsf()
1007 n = mvif->deflink.mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in __mt7996_get_tsf()
1008 : mvif->deflink.mt76.omac_idx; in __mt7996_get_tsf()
1010 mt76_rmw(dev, MT_LPON_TCR(phy->mt76->band_idx, n), MT_LPON_TCR_SW_MODE, in __mt7996_get_tsf()
1012 tsf.t32[0] = mt76_rr(dev, MT_LPON_UTTR0(phy->mt76->band_idx)); in __mt7996_get_tsf()
1013 tsf.t32[1] = mt76_rr(dev, MT_LPON_UTTR1(phy->mt76->band_idx)); in __mt7996_get_tsf()
1025 mutex_lock(&dev->mt76.mutex); in mt7996_get_tsf()
1027 mutex_unlock(&dev->mt76.mutex); in mt7996_get_tsf()
1048 mutex_lock(&dev->mt76.mutex); in mt7996_set_tsf()
1050 n = mvif->deflink.mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in mt7996_set_tsf()
1051 : mvif->deflink.mt76.omac_idx; in mt7996_set_tsf()
1052 mt76_wr(dev, MT_LPON_UTTR0(phy->mt76->band_idx), tsf.t32[0]); in mt7996_set_tsf()
1053 mt76_wr(dev, MT_LPON_UTTR1(phy->mt76->band_idx), tsf.t32[1]); in mt7996_set_tsf()
1055 mt76_rmw(dev, MT_LPON_TCR(phy->mt76->band_idx, n), MT_LPON_TCR_SW_MODE, in mt7996_set_tsf()
1058 mutex_unlock(&dev->mt76.mutex); in mt7996_set_tsf()
1077 mutex_lock(&dev->mt76.mutex); in mt7996_offset_tsf()
1079 n = mvif->deflink.mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in mt7996_offset_tsf()
1080 : mvif->deflink.mt76.omac_idx; in mt7996_offset_tsf()
1081 mt76_wr(dev, MT_LPON_UTTR0(phy->mt76->band_idx), tsf.t32[0]); in mt7996_offset_tsf()
1082 mt76_wr(dev, MT_LPON_UTTR1(phy->mt76->band_idx), tsf.t32[1]); in mt7996_offset_tsf()
1084 mt76_rmw(dev, MT_LPON_TCR(phy->mt76->band_idx, n), MT_LPON_TCR_SW_MODE, in mt7996_offset_tsf()
1087 mutex_unlock(&dev->mt76.mutex); in mt7996_offset_tsf()
1096 mutex_lock(&dev->mt76.mutex); in mt7996_set_coverage_class()
1101 mutex_unlock(&dev->mt76.mutex); in mt7996_set_coverage_class()
1120 mutex_lock(&dev->mt76.mutex); in mt7996_set_antenna()
1124 u8 band_idx = phy->mt76->band_idx; in mt7996_set_antenna()
1127 phy->mt76->chainmask = tx_ant & phy->orig_chainmask; in mt7996_set_antenna()
1128 phy->mt76->antenna_mask = phy->mt76->chainmask >> shift; in mt7996_set_antenna()
1130 mt76_set_stream_caps(phy->mt76, true); in mt7996_set_antenna()
1136 mutex_unlock(&dev->mt76.mutex); in mt7996_set_antenna()
1180 if (mtk_wed_device_active(&dev->mt76.mmio.wed)) { in mt7996_sta_statistics()
1201 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_sta_rc_work()
1205 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_sta_rc_work()
1412 if (msta->vif->deflink.mt76.idx != wi->idx) in mt7996_ethtool_worker()
1429 .idx = mvif->deflink.mt76.idx, in mt7996_get_et_stats()
1437 mutex_lock(&dev->mt76.mutex); in mt7996_get_et_stats()
1452 data[ei++] = phy->mt76->aggr_stats[i]; in mt7996_get_et_stats()
1502 mutex_unlock(&dev->mt76.mutex); in mt7996_get_et_stats()
1509 dev_err(dev->mt76.dev, "ei: %d MT7996_SSTATS_LEN: %d", in mt7996_get_et_stats()
1521 mutex_lock(&dev->mt76.mutex); in mt7996_twt_teardown_request()
1523 mutex_unlock(&dev->mt76.mutex); in mt7996_twt_teardown_request()
1542 mutex_lock(&dev->mt76.mutex); in mt7996_set_radar_background()
1544 if (dev->mt76.region == NL80211_DFS_UNSET) in mt7996_set_radar_background()
1577 mutex_unlock(&dev->mt76.mutex); in mt7996_set_radar_background()
1594 struct mtk_wed_device *wed = &dev->mt76.mmio.wed; in mt7996_net_fill_forward_path()
1601 if (phy != &dev->phy && phy->mt76->band_idx == MT_BAND2) in mt7996_net_fill_forward_path()
1602 wed = &dev->mt76.mmio.wed_hif2; in mt7996_net_fill_forward_path()
1613 path->mtk_wdma.bss = mvif->deflink.mt76.idx; in mt7996_net_fill_forward_path()