Lines Matching refs:mt76

17 	if (phy && test_bit(MT76_STATE_RUNNING, &phy->mt76->state))  in mt7996_dev_running()
22 return phy && test_bit(MT76_STATE_RUNNING, &phy->mt76->state); in mt7996_dev_running()
34 mutex_lock(&dev->mt76.mutex); in mt7996_start()
43 mt7996_mac_enable_nf(dev, phy->mt76->band_idx); in mt7996_start()
53 set_bit(MT76_STATE_RUNNING, &phy->mt76->state); in mt7996_start()
55 ieee80211_iterate_interfaces(dev->mt76.hw, in mt7996_start()
57 mt7996_mcu_set_pm, dev->mt76.hw); in mt7996_start()
59 ieee80211_queue_delayed_work(hw, &phy->mt76->mac_work, in mt7996_start()
66 mutex_unlock(&dev->mt76.mutex); in mt7996_start()
76 cancel_delayed_work_sync(&phy->mt76->mac_work); in mt7996_stop()
78 mutex_lock(&dev->mt76.mutex); in mt7996_stop()
80 clear_bit(MT76_STATE_RUNNING, &phy->mt76->state); in mt7996_stop()
82 ieee80211_iterate_interfaces(dev->mt76.hw, in mt7996_stop()
84 mt7996_mcu_set_pm, dev->mt76.hw); in mt7996_stop()
86 mutex_unlock(&dev->mt76.mutex); in mt7996_stop()
163 u8 band_idx = phy->mt76->band_idx; in mt7996_add_interface()
166 mutex_lock(&dev->mt76.mutex); in mt7996_add_interface()
172 mvif->mt76.idx = __ffs64(~dev->mt76.vif_mask); in mt7996_add_interface()
173 if (mvif->mt76.idx >= mt7996_max_interface_num(dev)) { in mt7996_add_interface()
183 mvif->mt76.omac_idx = idx; in mt7996_add_interface()
185 mvif->mt76.band_idx = band_idx; in mt7996_add_interface()
186 mvif->mt76.wmm_idx = band_idx; in mt7996_add_interface()
196 dev->mt76.vif_mask |= BIT_ULL(mvif->mt76.idx); in mt7996_add_interface()
197 phy->omac_mask |= BIT_ULL(mvif->mt76.omac_idx); in mt7996_add_interface()
199 idx = MT7996_WTBL_RESERVED - mvif->mt76.idx; in mt7996_add_interface()
218 (!mvif->mt76.omac_idx || mvif->mt76.omac_idx > 3)) in mt7996_add_interface()
227 rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.wcid); in mt7996_add_interface()
230 mutex_unlock(&dev->mt76.mutex); in mt7996_add_interface()
253 rcu_assign_pointer(dev->mt76.wcid[idx], NULL); in mt7996_remove_interface()
255 mutex_lock(&dev->mt76.mutex); in mt7996_remove_interface()
256 dev->mt76.vif_mask &= ~BIT_ULL(mvif->mt76.idx); in mt7996_remove_interface()
257 phy->omac_mask &= ~BIT_ULL(mvif->mt76.omac_idx); in mt7996_remove_interface()
258 mutex_unlock(&dev->mt76.mutex); in mt7996_remove_interface()
265 mt76_packet_id_flush(&dev->mt76, &msta->wcid); in mt7996_remove_interface()
273 cancel_delayed_work_sync(&phy->mt76->mac_work); in mt7996_set_channel()
275 mutex_lock(&dev->mt76.mutex); in mt7996_set_channel()
276 set_bit(MT76_RESET, &phy->mt76->state); in mt7996_set_channel()
278 mt76_set_channel(phy->mt76); in mt7996_set_channel()
292 clear_bit(MT76_RESET, &phy->mt76->state); in mt7996_set_channel()
293 mutex_unlock(&dev->mt76.mutex); in mt7996_set_channel()
295 mt76_txq_schedule_all(phy->mt76); in mt7996_set_channel()
297 ieee80211_queue_delayed_work(phy->mt76->hw, in mt7996_set_channel()
298 &phy->mt76->mac_work, in mt7996_set_channel()
347 mutex_lock(&dev->mt76.mutex); in mt7996_set_key()
349 if (cmd == SET_KEY && !sta && !mvif->mt76.cipher) { in mt7996_set_key()
350 mvif->mt76.cipher = mt76_connac_mcu_get_cipher(key->cipher); in mt7996_set_key()
361 mt76_wcid_key_setup(&dev->mt76, wcid, in mt7996_set_key()
364 err = mt7996_mcu_add_key(&dev->mt76, vif, &msta->bip, in mt7996_set_key()
368 mutex_unlock(&dev->mt76.mutex); in mt7996_set_key()
387 mutex_lock(&dev->mt76.mutex); in mt7996_config()
397 mt76_rmw_field(dev, MT_DMA_DCR0(phy->mt76->band_idx), in mt7996_config()
399 mt76_wr(dev, MT_WF_RFCR(phy->mt76->band_idx), phy->rxfilter); in mt7996_config()
402 mutex_unlock(&dev->mt76.mutex); in mt7996_config()
441 mutex_lock(&dev->mt76.mutex); in mt7996_configure_filter()
467 mt76_wr(dev, MT_WF_RFCR(phy->mt76->band_idx), phy->rxfilter); in mt7996_configure_filter()
470 mt76_clear(dev, MT_WF_RFCR1(phy->mt76->band_idx), ctl_flags); in mt7996_configure_filter()
472 mt76_set(dev, MT_WF_RFCR1(phy->mt76->band_idx), ctl_flags); in mt7996_configure_filter()
474 mutex_unlock(&dev->mt76.mutex); in mt7996_configure_filter()
488 if (mvif->mt76.omac_idx > HW_BSSID_MAX) in mt7996_update_bss_color()
508 mutex_lock(&dev->mt76.mutex); in mt7996_bss_info_changed()
559 mutex_unlock(&dev->mt76.mutex); in mt7996_bss_info_changed()
569 mutex_lock(&dev->mt76.mutex); in mt7996_channel_switch_beacon()
571 mutex_unlock(&dev->mt76.mutex); in mt7996_channel_switch_beacon()
577 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_mac_sta_add()
580 u8 band_idx = mvif->phy->mt76->band_idx; in mt7996_mac_sta_add()
583 idx = mt76_wcid_alloc(dev->mt76.wcid_mask, MT7996_WTBL_STA); in mt7996_mac_sta_add()
611 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_mac_sta_remove()
639 struct mt76_wcid *wcid = &dev->mt76.global_wcid; in mt7996_tx()
663 mutex_lock(&phy->dev->mt76.mutex); in mt7996_set_rts_threshold()
665 mutex_unlock(&phy->dev->mt76.mutex); in mt7996_set_rts_threshold()
689 mutex_lock(&dev->mt76.mutex); in mt7996_ampdu_action()
692 mt76_rx_aggr_start(&dev->mt76, &msta->wcid, tid, ssn, in mt7996_ampdu_action()
697 mt76_rx_aggr_stop(&dev->mt76, &msta->wcid, tid); in mt7996_ampdu_action()
722 mutex_unlock(&dev->mt76.mutex); in mt7996_ampdu_action()
751 mutex_lock(&dev->mt76.mutex); in mt7996_get_stats()
758 mutex_unlock(&dev->mt76.mutex); in mt7996_get_stats()
773 lockdep_assert_held(&dev->mt76.mutex); in __mt7996_get_tsf()
775 n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in __mt7996_get_tsf()
776 : mvif->mt76.omac_idx; in __mt7996_get_tsf()
778 mt76_rmw(dev, MT_LPON_TCR(phy->mt76->band_idx, n), MT_LPON_TCR_SW_MODE, in __mt7996_get_tsf()
780 tsf.t32[0] = mt76_rr(dev, MT_LPON_UTTR0(phy->mt76->band_idx)); in __mt7996_get_tsf()
781 tsf.t32[1] = mt76_rr(dev, MT_LPON_UTTR1(phy->mt76->band_idx)); in __mt7996_get_tsf()
793 mutex_lock(&dev->mt76.mutex); in mt7996_get_tsf()
795 mutex_unlock(&dev->mt76.mutex); in mt7996_get_tsf()
813 mutex_lock(&dev->mt76.mutex); in mt7996_set_tsf()
815 n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in mt7996_set_tsf()
816 : mvif->mt76.omac_idx; in mt7996_set_tsf()
817 mt76_wr(dev, MT_LPON_UTTR0(phy->mt76->band_idx), tsf.t32[0]); in mt7996_set_tsf()
818 mt76_wr(dev, MT_LPON_UTTR1(phy->mt76->band_idx), tsf.t32[1]); in mt7996_set_tsf()
820 mt76_rmw(dev, MT_LPON_TCR(phy->mt76->band_idx, n), MT_LPON_TCR_SW_MODE, in mt7996_set_tsf()
823 mutex_unlock(&dev->mt76.mutex); in mt7996_set_tsf()
839 mutex_lock(&dev->mt76.mutex); in mt7996_offset_tsf()
841 n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0 in mt7996_offset_tsf()
842 : mvif->mt76.omac_idx; in mt7996_offset_tsf()
843 mt76_wr(dev, MT_LPON_UTTR0(phy->mt76->band_idx), tsf.t32[0]); in mt7996_offset_tsf()
844 mt76_wr(dev, MT_LPON_UTTR1(phy->mt76->band_idx), tsf.t32[1]); in mt7996_offset_tsf()
846 mt76_rmw(dev, MT_LPON_TCR(phy->mt76->band_idx, n), MT_LPON_TCR_SW_MODE, in mt7996_offset_tsf()
849 mutex_unlock(&dev->mt76.mutex); in mt7996_offset_tsf()
858 mutex_lock(&dev->mt76.mutex); in mt7996_set_coverage_class()
861 mutex_unlock(&dev->mt76.mutex); in mt7996_set_coverage_class()
870 u8 band_idx = phy->mt76->band_idx, shift = dev->chainshift[band_idx]; in mt7996_set_antenna()
878 mutex_lock(&dev->mt76.mutex); in mt7996_set_antenna()
880 phy->mt76->antenna_mask = tx_ant; in mt7996_set_antenna()
884 phy->mt76->chainmask = ((dev->chainmask >> shift) & in mt7996_set_antenna()
887 phy->mt76->chainmask = (dev->chainmask >> shift) << shift; in mt7996_set_antenna()
889 phy->mt76->chainmask = tx_ant << shift; in mt7996_set_antenna()
891 mt76_set_stream_caps(phy->mt76, true); in mt7996_set_antenna()
895 mutex_unlock(&dev->mt76.mutex); in mt7996_set_antenna()
1139 if (msta->vif->mt76.idx != wi->idx) in mt7996_ethtool_worker()
1155 .idx = mvif->mt76.idx, in mt7996_get_et_stats()
1161 mutex_lock(&dev->mt76.mutex); in mt7996_get_et_stats()
1176 data[ei++] = phy->mt76->aggr_stats[i]; in mt7996_get_et_stats()
1226 mutex_unlock(&dev->mt76.mutex); in mt7996_get_et_stats()
1233 dev_err(dev->mt76.dev, "ei: %d MT7996_SSTATS_LEN: %d", in mt7996_get_et_stats()
1245 mutex_lock(&dev->mt76.mutex); in mt7996_twt_teardown_request()
1247 mutex_unlock(&dev->mt76.mutex); in mt7996_twt_teardown_request()
1259 mutex_lock(&dev->mt76.mutex); in mt7996_set_radar_background()
1261 if (dev->mt76.region == NL80211_DFS_UNSET) in mt7996_set_radar_background()
1294 mutex_unlock(&dev->mt76.mutex); in mt7996_set_radar_background()