Lines Matching refs:mt76

59 	if (idx >= ARRAY_SIZE(dev->mt76.wcid))  in mt7915_rx_get_wcid()
62 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7915_rx_get_wcid()
227 mt76_rx_signal(msta->vif->phy->mt76->antenna_mask, rssi); in mt7915_mac_sta_poll()
270 mtk_wed_device_ppe_check(&dev->mt76.mmio.wed, skb, in mt7915_wed_check_ppe()
280 struct mt76_phy *mphy = &dev->mt76.phy; in mt7915_mac_fill_rx()
304 if ((rxd1 & MT_RXD1_NORMAL_BAND_IDX) && !phy->mt76->band_idx) { in mt7915_mac_fill_rx()
305 mphy = dev->mt76.phys[MT_BAND1]; in mt7915_mac_fill_rx()
469 if (!is_mt7915(&dev->mt76) || (rxd1 & MT_RXD1_NORMAL_GROUP_5)) { in mt7915_mac_fill_rx()
470 ret = mt76_connac2_mac_fill_rx_rate(&dev->mt76, status, in mt7915_mac_fill_rx()
544 mt7915_wed_check_ppe(dev, &dev->mt76.q_rx[q], msta, skb, in mt7915_mac_fill_rx()
549 mt76_connac2_mac_decode_he_radiotap(&dev->mt76, skb, rxv, mode); in mt7915_mac_fill_rx()
577 if (band_idx && !phy->mt76->band_idx) { in mt7915_mac_fill_rx_vector()
616 struct mt76_testmode_data *td = &phy->mt76->test; in mt7915_mac_write_txwi_tm()
625 if (skb != phy->mt76->test.tx_skb) in mt7915_mac_write_txwi_tm()
652 band = phy->mt76->chandef.chan->band; in mt7915_mac_write_txwi_tm()
656 r = &phy->mt76->hw->wiphy->bands[band]->bitrates[rate_idx]; in mt7915_mac_write_txwi_tm()
667 switch (phy->mt76->chandef.width) { in mt7915_mac_write_txwi_tm()
750 struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76); in mt7915_tx_prepare_skb()
764 wcid = &dev->mt76.global_wcid; in mt7915_tx_prepare_skb()
807 txp->bss_idx = mvif->mt76.idx; in mt7915_tx_prepare_skb()
877 struct mt76_dev *mdev = &dev->mt76; in mt7915_txwi_free()
893 wcid = rcu_dereference(dev->mt76.wcid[wcid_idx]); in mt7915_txwi_free()
919 struct mt76_dev *mdev = &dev->mt76; in mt7915_mac_tx_free_prepare()
940 mt76_set_tx_blocked(&dev->mt76, false); in mt7915_mac_tx_free_done()
942 mt76_worker_schedule(&dev->mt76.tx_worker); in mt7915_mac_tx_free_done()
955 struct mt76_dev *mdev = &dev->mt76; in mt7915_mac_tx_free()
988 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7915_mac_tx_free()
1029 struct mt76_dev *mdev = &dev->mt76; in mt7915_mac_tx_free_v0()
1074 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7915_mac_add_txs()
1081 mt76_connac2_mac_fill_txs(&dev->mt76, wcid, txs_data); in mt7915_mac_add_txs()
1083 mt76_connac2_mac_add_txs_skb(&dev->mt76, wcid, pid, txs_data); in mt7915_mac_add_txs()
1099 struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76); in mt7915_rx_check()
1128 struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76); in mt7915_queue_rx_skb()
1161 mt76_rx(&dev->mt76, q, skb); in mt7915_queue_rx_skb()
1174 u32 reg = MT_WF_PHY_RX_CTRL1(phy->mt76->band_idx); in mt7915_mac_cca_stats_reset()
1186 mt76_rr(dev, MT_TX_AGG_CNT(phy->mt76->band_idx, i)); in mt7915_mac_reset_counters()
1187 mt76_rr(dev, MT_TX_AGG_CNT2(phy->mt76->band_idx, i)); in mt7915_mac_reset_counters()
1190 phy->mt76->survey_time = ktime_get_boottime(); in mt7915_mac_reset_counters()
1191 memset(phy->mt76->aggr_stats, 0, sizeof(phy->mt76->aggr_stats)); in mt7915_mac_reset_counters()
1194 mt76_set(dev, MT_WF_RMAC_MIB_AIRTIME0(phy->mt76->band_idx), in mt7915_mac_reset_counters()
1210 u8 band = phy->mt76->band_idx; in mt7915_mac_set_timing()
1212 bool a_band = !(phy->mt76->chandef.chan->band == NL80211_BAND_2GHZ); in mt7915_mac_set_timing()
1214 if (!test_bit(MT76_STATE_RUNNING, &phy->mt76->state)) in mt7915_mac_set_timing()
1229 if (!is_mt7915(&dev->mt76)) { in mt7915_mac_set_timing()
1263 reg = is_mt7915(&dev->mt76) ? MT_WF_PHY_RXTD12(band) : in mt7915_mac_enable_nf()
1269 reg = is_mt7915(&dev->mt76) ? MT_WF_PHY_RX_CTRL1(band) : in mt7915_mac_enable_nf()
1282 for (nss = 0; nss < hweight8(phy->mt76->chainmask); nss++) { in mt7915_phy_get_nf()
1283 u32 reg = is_mt7915(&dev->mt76) ? in mt7915_phy_get_nf()
1308 nf = mt7915_phy_get_nf(phy, phy->mt76->band_idx); in mt7915_update_channel()
1350 struct mt76_phy *mphy_ext = dev->mt76.phys[MT_BAND1]; in mt7915_update_beacons()
1352 ieee80211_iterate_active_interfaces(dev->mt76.hw, in mt7915_update_beacons()
1354 mt7915_update_vif_beacon, dev->mt76.hw); in mt7915_update_beacons()
1369 spin_lock_bh(&dev->mt76.token_lock); in mt7915_tx_token_put()
1370 idr_for_each_entry(&dev->mt76.token, txwi, id) { in mt7915_tx_token_put()
1372 dev->mt76.token_count--; in mt7915_tx_token_put()
1374 spin_unlock_bh(&dev->mt76.token_lock); in mt7915_tx_token_put()
1375 idr_destroy(&dev->mt76.token); in mt7915_tx_token_put()
1383 struct mt76_dev *mdev = &dev->mt76; in mt7915_mac_restart()
1386 ext_phy = dev->mt76.phys[MT_BAND1]; in mt7915_mac_restart()
1402 wake_up(&dev->mt76.mcu.wait); in mt7915_mac_restart()
1414 mt76_worker_disable(&dev->mt76.tx_worker); in mt7915_mac_restart()
1417 napi_disable(&dev->mt76.napi[i]); in mt7915_mac_restart()
1419 napi_disable(&dev->mt76.tx_napi); in mt7915_mac_restart()
1423 idr_init(&dev->mt76.token); in mt7915_mac_restart()
1430 napi_enable(&dev->mt76.napi[i]); in mt7915_mac_restart()
1431 napi_schedule(&dev->mt76.napi[i]); in mt7915_mac_restart()
1438 mt76_wr(dev, MT_INT_MASK_CSR, dev->mt76.mmio.irqmask); in mt7915_mac_restart()
1442 mt76_wr(dev, MT_INT1_MASK_CSR, dev->mt76.mmio.irqmask); in mt7915_mac_restart()
1482 clear_bit(MT76_RESET, &phy2->mt76->state); in mt7915_mac_restart()
1485 napi_enable(&dev->mt76.tx_napi); in mt7915_mac_restart()
1486 napi_schedule(&dev->mt76.tx_napi); in mt7915_mac_restart()
1489 mt76_worker_enable(&dev->mt76.tx_worker); in mt7915_mac_restart()
1500 ext_phy = dev->mt76.phys[MT_BAND1]; in mt7915_mac_full_reset()
1504 wake_up(&dev->mt76.mcu.wait); in mt7915_mac_full_reset()
1513 mutex_lock(&dev->mt76.mutex); in mt7915_mac_full_reset()
1518 mutex_unlock(&dev->mt76.mutex); in mt7915_mac_full_reset()
1521 dev_err(dev->mt76.dev, "chip full reset failed\n"); in mt7915_mac_full_reset()
1549 ext_phy = dev->mt76.phys[MT_BAND1]; in mt7915_mac_reset_work()
1581 if (mtk_wed_device_active(&dev->mt76.mmio.wed)) { in mt7915_mac_reset_work()
1582 mtk_wed_device_stop(&dev->mt76.mmio.wed); in mt7915_mac_reset_work()
1583 if (!is_mt7986(&dev->mt76)) in mt7915_mac_reset_work()
1593 wake_up(&dev->mt76.mcu.wait); in mt7915_mac_reset_work()
1596 set_bit(MT76_RESET, &phy2->mt76->state); in mt7915_mac_reset_work()
1597 cancel_delayed_work_sync(&phy2->mt76->mac_work); in mt7915_mac_reset_work()
1599 mt76_worker_disable(&dev->mt76.tx_worker); in mt7915_mac_reset_work()
1600 mt76_for_each_q_rx(&dev->mt76, i) in mt7915_mac_reset_work()
1601 napi_disable(&dev->mt76.napi[i]); in mt7915_mac_reset_work()
1602 napi_disable(&dev->mt76.tx_napi); in mt7915_mac_reset_work()
1604 mutex_lock(&dev->mt76.mutex); in mt7915_mac_reset_work()
1612 idr_init(&dev->mt76.token); in mt7915_mac_reset_work()
1621 clear_bit(MT76_RESET, &phy2->mt76->state); in mt7915_mac_reset_work()
1624 mt76_for_each_q_rx(&dev->mt76, i) { in mt7915_mac_reset_work()
1625 napi_enable(&dev->mt76.napi[i]); in mt7915_mac_reset_work()
1626 napi_schedule(&dev->mt76.napi[i]); in mt7915_mac_reset_work()
1635 mt76_worker_enable(&dev->mt76.tx_worker); in mt7915_mac_reset_work()
1638 napi_enable(&dev->mt76.tx_napi); in mt7915_mac_reset_work()
1639 napi_schedule(&dev->mt76.tx_napi); in mt7915_mac_reset_work()
1646 mutex_unlock(&dev->mt76.mutex); in mt7915_mac_reset_work()
1654 &phy2->mt76->mac_work, in mt7915_mac_reset_work()
1693 dev_warn(dev->mt76.dev, "%s len %lu is too large\n", in mt7915_mac_dump_work()
1725 queue_work(dev->mt76.wq, &dev->reset_work); in mt7915_mac_dump_work()
1739 dev_info(dev->mt76.dev, in mt7915_reset()
1741 wiphy_name(dev->mt76.hw->wiphy)); in mt7915_reset()
1744 queue_work(dev->mt76.wq, &dev->dump_work); in mt7915_reset()
1748 queue_work(dev->mt76.wq, &dev->reset_work); in mt7915_reset()
1757 u8 band = phy->mt76->band_idx; in mt7915_mac_update_stats()
1761 mib->fcs_err_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1783 mib->rx_mrdy_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1799 mib->tx_mpdu_attempts_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1804 mib->tx_mpdu_success_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1838 mib->rx_ampdu_valid_subframe_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1854 mib->rx_pfdrop_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1859 mib->rx_vec_queue_overflow_drop_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1889 if (is_mt7915(&dev->mt76)) { in mt7915_mac_update_stats()
1903 phy->mt76->aggr_stats[aggr0++] += val & 0xffff; in mt7915_mac_update_stats()
1904 phy->mt76->aggr_stats[aggr0++] += val >> 16; in mt7915_mac_update_stats()
1907 phy->mt76->aggr_stats[aggr1++] += val & 0xffff; in mt7915_mac_update_stats()
1908 phy->mt76->aggr_stats[aggr1++] += val >> 16; in mt7915_mac_update_stats()
1955 phy->mt76->aggr_stats[aggr0++] += FIELD_GET(GENMASK(15, 0), val); in mt7915_mac_update_stats()
1956 phy->mt76->aggr_stats[aggr0++] += FIELD_GET(GENMASK(31, 16), val); in mt7915_mac_update_stats()
1995 trb = mt76_rr(dev, MT_TRB_RXPSR0(phy->mt76->band_idx)); in mt7915_mac_severe_check()
2003 phy->mt76->band_idx); in mt7915_mac_severe_check()
2076 mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_STOP, 0, in mt7915_dfs_stop_radar_detector()
2079 mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_STOP, 1, in mt7915_dfs_stop_radar_detector()
2087 switch (dev->mt76.region) { in mt7915_dfs_start_rdd()
2100 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_START, chain, in mt7915_dfs_start_rdd()
2105 if (is_mt7915(&dev->mt76)) { in mt7915_dfs_start_rdd()
2106 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_SET_WF_ANT, chain, in mt7915_dfs_start_rdd()
2112 return mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_DET_MODE, chain, in mt7915_dfs_start_rdd()
2118 struct cfg80211_chan_def *chandef = &phy->mt76->chandef; in mt7915_dfs_start_radar_detector()
2123 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_CAC_START, in mt7915_dfs_start_radar_detector()
2124 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7915_dfs_start_radar_detector()
2128 err = mt7915_dfs_start_rdd(dev, phy->mt76->band_idx); in mt7915_dfs_start_radar_detector()
2132 phy->rdd_state |= BIT(phy->mt76->band_idx); in mt7915_dfs_start_radar_detector()
2134 if (!is_mt7915(&dev->mt76)) in mt7915_dfs_start_radar_detector()
2156 switch (dev->mt76.region) { in mt7915_dfs_init_radar_specs()
2189 prev_state = phy->mt76->dfs_state; in mt7915_dfs_init_radar_detector()
2190 dfs_state = mt76_phy_dfs_state(phy->mt76); in mt7915_dfs_init_radar_detector()
2210 phy->mt76->dfs_state = MT_DFS_STATE_CAC; in mt7915_dfs_init_radar_detector()
2216 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_CAC_END, in mt7915_dfs_init_radar_detector()
2217 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7915_dfs_init_radar_detector()
2219 phy->mt76->dfs_state = MT_DFS_STATE_UNKNOWN; in mt7915_dfs_init_radar_detector()
2223 phy->mt76->dfs_state = MT_DFS_STATE_ACTIVE; in mt7915_dfs_init_radar_detector()
2227 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_NORMAL_START, in mt7915_dfs_init_radar_detector()
2228 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7915_dfs_init_radar_detector()
2232 if (is_mt7915(&dev->mt76)) { in mt7915_dfs_init_radar_detector()
2233 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_SET_WF_ANT, in mt7915_dfs_init_radar_detector()
2234 phy->mt76->band_idx, 0, in mt7915_dfs_init_radar_detector()
2241 phy->mt76->dfs_state = MT_DFS_STATE_DISABLED; in mt7915_dfs_init_radar_detector()
2365 mutex_lock(&dev->mt76.mutex); in mt7915_mac_add_twt_setup()
2430 mutex_unlock(&dev->mt76.mutex); in mt7915_mac_add_twt_setup()
2445 lockdep_assert_held(&dev->mt76.mutex); in mt7915_mac_twt_teardown_flow()