Lines Matching full:mt76
20 return phy && test_bit(MT76_STATE_RUNNING, &phy->mt76->state); in mt7915_dev_running()
33 ret = mt76_connac_mcu_set_pm(&dev->mt76, in mt7915_run()
34 dev->phy.mt76->band_idx, 0); in mt7915_run()
38 ret = mt7915_mcu_set_mac(dev, dev->phy.mt76->band_idx, in mt7915_run()
43 mt7915_mac_enable_nf(dev, dev->phy.mt76->band_idx); in mt7915_run()
47 ret = mt76_connac_mcu_set_pm(&dev->mt76, in mt7915_run()
48 phy->mt76->band_idx, 0); in mt7915_run()
52 ret = mt7915_mcu_set_mac(dev, phy->mt76->band_idx, in mt7915_run()
57 mt7915_mac_enable_nf(dev, phy->mt76->band_idx); in mt7915_run()
71 ret = mt76_connac_mcu_set_rts_thresh(&dev->mt76, 0x92b, in mt7915_run()
72 phy->mt76->band_idx); in mt7915_run()
84 set_bit(MT76_STATE_RUNNING, &phy->mt76->state); in mt7915_run()
86 if (!mt76_testmode_enabled(phy->mt76)) in mt7915_run()
87 ieee80211_queue_delayed_work(hw, &phy->mt76->mac_work, in mt7915_run()
104 mutex_lock(&dev->mt76.mutex); in mt7915_start()
106 mutex_unlock(&dev->mt76.mutex); in mt7915_start()
116 cancel_delayed_work_sync(&phy->mt76->mac_work); in mt7915_stop()
118 mutex_lock(&dev->mt76.mutex); in mt7915_stop()
120 mt76_testmode_reset(phy->mt76, true); in mt7915_stop()
122 clear_bit(MT76_STATE_RUNNING, &phy->mt76->state); in mt7915_stop()
125 mt76_connac_mcu_set_pm(&dev->mt76, phy->mt76->band_idx, 1); in mt7915_stop()
126 mt7915_mcu_set_mac(dev, phy->mt76->band_idx, false, false); in mt7915_stop()
130 mt76_connac_mcu_set_pm(&dev->mt76, dev->phy.mt76->band_idx, 1); in mt7915_stop()
131 mt7915_mcu_set_mac(dev, dev->phy.mt76->band_idx, false, false); in mt7915_stop()
134 mutex_unlock(&dev->mt76.mutex); in mt7915_stop()
214 mutex_lock(&dev->mt76.mutex); in mt7915_add_interface()
216 mt76_testmode_reset(phy->mt76, true); in mt7915_add_interface()
222 mvif->mt76.idx = __ffs64(~dev->mt76.vif_mask); in mt7915_add_interface()
223 if (mvif->mt76.idx >= (MT7915_MAX_INTERFACES << dev->dbdc_support)) { in mt7915_add_interface()
233 mvif->mt76.omac_idx = idx; in mt7915_add_interface()
235 mvif->mt76.band_idx = phy->mt76->band_idx; in mt7915_add_interface()
236 mvif->mt76.wcid = &mvif->sta.wcid; in mt7915_add_interface()
238 mvif->mt76.wmm_idx = vif->type != NL80211_IFTYPE_AP; in mt7915_add_interface()
240 mvif->mt76.wmm_idx += 2; in mt7915_add_interface()
246 dev->mt76.vif_mask |= BIT_ULL(mvif->mt76.idx); in mt7915_add_interface()
247 phy->omac_mask |= BIT_ULL(mvif->mt76.omac_idx); in mt7915_add_interface()
249 idx = mt76_wcid_alloc(dev->mt76.wcid_mask, mt7915_wtbl_size(dev)); in mt7915_add_interface()
258 mt76_wcid_init(&mvif->sta.wcid, phy->mt76->band_idx); in mt7915_add_interface()
269 (!mvif->mt76.omac_idx || mvif->mt76.omac_idx > 3)) in mt7915_add_interface()
278 rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.wcid); in mt7915_add_interface()
281 mutex_unlock(&dev->mt76.mutex); in mt7915_add_interface()
297 mt76_wcid_mask_clear(dev->mt76.wcid_mask, mvif->sta.wcid.idx); in mt7915_remove_interface()
299 mutex_lock(&dev->mt76.mutex); in mt7915_remove_interface()
300 mt76_testmode_reset(phy->mt76, true); in mt7915_remove_interface()
301 mutex_unlock(&dev->mt76.mutex); in mt7915_remove_interface()
308 rcu_assign_pointer(dev->mt76.wcid[idx], NULL); in mt7915_remove_interface()
310 mutex_lock(&dev->mt76.mutex); in mt7915_remove_interface()
311 dev->mt76.vif_mask &= ~BIT_ULL(mvif->mt76.idx); in mt7915_remove_interface()
312 phy->omac_mask &= ~BIT_ULL(mvif->mt76.omac_idx); in mt7915_remove_interface()
313 mutex_unlock(&dev->mt76.mutex); in mt7915_remove_interface()
315 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7915_remove_interface()
318 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7915_remove_interface()
320 mt76_wcid_cleanup(&dev->mt76, &msta->wcid); in mt7915_remove_interface()
347 if (!mt76_testmode_enabled(phy->mt76)) in mt7915_set_channel()
348 ieee80211_queue_delayed_work(phy->mt76->hw, in mt7915_set_channel()
349 &phy->mt76->mac_work, in mt7915_set_channel()
405 mutex_lock(&dev->mt76.mutex); in mt7915_set_key()
407 if (cmd == SET_KEY && !sta && !mvif->mt76.cipher) { in mt7915_set_key()
408 mvif->mt76.cipher = mt76_connac_mcu_get_cipher(key->cipher); in mt7915_set_key()
420 mt76_wcid_key_setup(&dev->mt76, wcid, key); in mt7915_set_key()
421 err = mt76_connac_mcu_add_key(&dev->mt76, vif, &msta->bip, in mt7915_set_key()
425 mutex_unlock(&dev->mt76.mutex); in mt7915_set_key()
437 mutex_lock(&dev->mt76.mutex); in mt7915_set_sar_specs()
438 if (!cfg80211_chandef_valid(&phy->mt76->chandef)) in mt7915_set_sar_specs()
447 mutex_unlock(&dev->mt76.mutex); in mt7915_set_sar_specs()
460 if (phy->mt76->test.state != MT76_TM_STATE_OFF) { in mt7915_config()
461 mutex_lock(&dev->mt76.mutex); in mt7915_config()
462 mt76_testmode_reset(phy->mt76, false); in mt7915_config()
463 mutex_unlock(&dev->mt76.mutex); in mt7915_config()
466 ret = mt76_update_channel(phy->mt76); in mt7915_config()
478 mutex_lock(&dev->mt76.mutex); in mt7915_config()
482 bool band = phy->mt76->band_idx; in mt7915_config()
497 mt76_testmode_reset(phy->mt76, true); in mt7915_config()
501 mutex_unlock(&dev->mt76.mutex); in mt7915_config()
527 bool band = phy->mt76->band_idx; in mt7915_configure_filter()
542 mutex_lock(&dev->mt76.mutex); in mt7915_configure_filter()
579 mutex_unlock(&dev->mt76.mutex); in mt7915_configure_filter()
593 if (mvif->mt76.omac_idx > HW_BSSID_MAX) in mt7915_update_bss_color()
614 mutex_lock(&dev->mt76.mutex); in mt7915_bss_info_changed()
641 if (phy->mt76->chandef.chan->band == NL80211_BAND_2GHZ && in mt7915_bss_info_changed()
674 mutex_unlock(&dev->mt76.mutex); in mt7915_bss_info_changed()
703 mutex_lock(&dev->mt76.mutex); in mt7915_start_ap()
712 mutex_unlock(&dev->mt76.mutex); in mt7915_start_ap()
723 mutex_lock(&dev->mt76.mutex); in mt7915_stop_ap()
725 mutex_unlock(&dev->mt76.mutex); in mt7915_stop_ap()
735 mutex_lock(&dev->mt76.mutex); in mt7915_channel_switch_beacon()
737 mutex_unlock(&dev->mt76.mutex); in mt7915_channel_switch_beacon()
743 struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76); in mt7915_mac_sta_add()
749 idx = mt76_wcid_alloc(dev->mt76.wcid_mask, MT7915_WTBL_STA); in mt7915_mac_sta_add()
801 struct mt76_phy *ext_phy = dev->mt76.phys[MT_BAND1]; in mt7915_drop_other_sta()
824 struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76); in mt7915_mac_sta_event()
868 struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76); in mt7915_mac_sta_remove()
890 struct mt76_wcid *wcid = &dev->mt76.global_wcid; in mt7915_tx()
915 mutex_lock(&dev->mt76.mutex); in mt7915_set_rts_threshold()
916 ret = mt76_connac_mcu_set_rts_thresh(&dev->mt76, val, in mt7915_set_rts_threshold()
917 phy->mt76->band_idx); in mt7915_set_rts_threshold()
918 mutex_unlock(&dev->mt76.mutex); in mt7915_set_rts_threshold()
942 mutex_lock(&dev->mt76.mutex); in mt7915_ampdu_action()
945 mt76_rx_aggr_start(&dev->mt76, &msta->wcid, tid, ssn, in mt7915_ampdu_action()
950 mt76_rx_aggr_stop(&dev->mt76, &msta->wcid, tid); in mt7915_ampdu_action()
975 mutex_unlock(&dev->mt76.mutex); in mt7915_ampdu_action()
988 mutex_lock(&dev->mt76.mutex); in mt7915_get_stats()
995 mutex_unlock(&dev->mt76.mutex); in mt7915_get_stats()
1004 bool band = phy->mt76->band_idx; in __mt7915_get_tsf()
1011 lockdep_assert_held(&dev->mt76.mutex); in __mt7915_get_tsf()
1013 n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in __mt7915_get_tsf()
1014 : mvif->mt76.omac_idx; in __mt7915_get_tsf()
1016 if (is_mt7915(&dev->mt76)) in __mt7915_get_tsf()
1035 mutex_lock(&dev->mt76.mutex); in mt7915_get_tsf()
1037 mutex_unlock(&dev->mt76.mutex); in mt7915_get_tsf()
1049 bool band = phy->mt76->band_idx; in mt7915_set_tsf()
1056 mutex_lock(&dev->mt76.mutex); in mt7915_set_tsf()
1058 n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in mt7915_set_tsf()
1059 : mvif->mt76.omac_idx; in mt7915_set_tsf()
1063 if (is_mt7915(&dev->mt76)) in mt7915_set_tsf()
1070 mutex_unlock(&dev->mt76.mutex); in mt7915_set_tsf()
1080 bool band = phy->mt76->band_idx; in mt7915_offset_tsf()
1087 mutex_lock(&dev->mt76.mutex); in mt7915_offset_tsf()
1089 n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in mt7915_offset_tsf()
1090 : mvif->mt76.omac_idx; in mt7915_offset_tsf()
1094 if (is_mt7915(&dev->mt76)) in mt7915_offset_tsf()
1101 mutex_unlock(&dev->mt76.mutex); in mt7915_offset_tsf()
1110 mutex_lock(&dev->mt76.mutex); in mt7915_set_coverage_class()
1113 mutex_unlock(&dev->mt76.mutex); in mt7915_set_coverage_class()
1123 u8 band = phy->mt76->band_idx; in mt7915_set_antenna()
1128 mutex_lock(&dev->mt76.mutex); in mt7915_set_antenna()
1130 phy->mt76->antenna_mask = tx_ant; in mt7915_set_antenna()
1133 if ((is_mt7916(&dev->mt76) || is_mt7981(&dev->mt76)) && in mt7915_set_antenna()
1135 phy->mt76->chainmask = (dev->chainmask >> chainshift) << chainshift; in mt7915_set_antenna()
1137 phy->mt76->chainmask = tx_ant << (chainshift * band); in mt7915_set_antenna()
1139 mt76_set_stream_caps(phy->mt76, true); in mt7915_set_antenna()
1143 mutex_unlock(&dev->mt76.mutex); in mt7915_set_antenna()
1181 if (mtk_wed_device_active(&phy->dev->mt76.mmio.wed)) { in mt7915_sta_statistics()
1190 if (mtk_wed_get_rx_capa(&phy->dev->mt76.mmio.wed)) { in mt7915_sta_statistics()
1218 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7915_sta_rc_work()
1222 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7915_sta_rc_work()
1283 mt76_connac_mcu_wtbl_update_hdr_trans(&dev->mt76, vif, sta); in mt7915_sta_set_4addr()
1302 mt76_connac_mcu_wtbl_update_hdr_trans(&dev->mt76, vif, sta); in mt7915_sta_set_decap_offload()
1317 mutex_lock(&dev->mt76.mutex); in mt7915_sta_set_txpwr()
1333 mutex_unlock(&dev->mt76.mutex); in mt7915_sta_set_txpwr()
1504 if (msta->vif->mt76.idx != wi->idx) in mt7915_ethtool_worker()
1521 .idx = mvif->mt76.idx, in mt7915_get_et_stats()
1526 mutex_lock(&dev->mt76.mutex); in mt7915_get_et_stats()
1541 data[ei++] = phy->mt76->aggr_stats[i]; in mt7915_get_et_stats()
1630 mutex_unlock(&dev->mt76.mutex); in mt7915_get_et_stats()
1637 mt76_ethtool_page_pool_stats(&dev->mt76, &data[ei], &ei); in mt7915_get_et_stats()
1641 dev_err(dev->mt76.dev, "ei: %d size: %d", ei, stats_size); in mt7915_get_et_stats()
1652 mutex_lock(&dev->mt76.mutex); in mt7915_twt_teardown_request()
1654 mutex_unlock(&dev->mt76.mutex); in mt7915_twt_teardown_request()
1672 mutex_lock(&dev->mt76.mutex); in mt7915_set_radar_background()
1674 if (dev->mt76.region == NL80211_DFS_UNSET) in mt7915_set_radar_background()
1707 mutex_unlock(&dev->mt76.mutex); in mt7915_set_radar_background()
1724 struct mtk_wed_device *wed = &dev->mt76.mmio.wed; in mt7915_net_fill_forward_path()
1735 path->mtk_wdma.bss = mvif->mt76.idx; in mt7915_net_fill_forward_path()
1736 path->mtk_wdma.wcid = is_mt7915(&dev->mt76) ? msta->wcid.idx : 0x3ff; in mt7915_net_fill_forward_path()
1752 ieee80211_queue_delayed_work(hw, &phy->mt76->mac_work, in mt7915_reconfig_complete()