Lines Matching full: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()
108 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_poll()
109 list_splice_init(&dev->mt76.sta_poll_list, &sta_poll_list); in mt7915_mac_sta_poll()
110 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_poll()
121 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_poll()
123 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_poll()
129 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_poll()
230 mt76_rx_signal(msta->vif->phy->mt76->antenna_mask, rssi); in mt7915_mac_sta_poll()
273 mtk_wed_device_ppe_check(&dev->mt76.mmio.wed, skb, in mt7915_wed_check_ppe()
283 struct mt76_phy *mphy = &dev->mt76.phy; in mt7915_mac_fill_rx()
307 if ((rxd1 & MT_RXD1_NORMAL_BAND_IDX) && !phy->mt76->band_idx) { in mt7915_mac_fill_rx()
308 mphy = dev->mt76.phys[MT_BAND1]; in mt7915_mac_fill_rx()
336 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); 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()
851 struct mt76_dev *mdev = &dev->mt76; in mt7915_mac_tx_free_prepare()
872 mt76_set_tx_blocked(&dev->mt76, false); in mt7915_mac_tx_free_done()
874 mt76_worker_schedule(&dev->mt76.tx_worker); in mt7915_mac_tx_free_done()
887 struct mt76_dev *mdev = &dev->mt76; in mt7915_mac_tx_free()
920 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7915_mac_tx_free()
926 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); in mt7915_mac_tx_free()
976 struct mt76_dev *mdev = &dev->mt76; in mt7915_mac_tx_free_v0()
1021 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7915_mac_add_txs()
1028 mt76_connac2_mac_fill_txs(&dev->mt76, wcid, txs_data); in mt7915_mac_add_txs()
1030 mt76_connac2_mac_add_txs_skb(&dev->mt76, wcid, pid, txs_data); in mt7915_mac_add_txs()
1035 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); in mt7915_mac_add_txs()
1043 struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76); in mt7915_rx_check()
1072 struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76); in mt7915_queue_rx_skb()
1105 mt76_rx(&dev->mt76, q, skb); in mt7915_queue_rx_skb()
1118 u32 reg = MT_WF_PHY_RX_CTRL1(phy->mt76->band_idx); in mt7915_mac_cca_stats_reset()
1130 mt76_rr(dev, MT_TX_AGG_CNT(phy->mt76->band_idx, i)); in mt7915_mac_reset_counters()
1131 mt76_rr(dev, MT_TX_AGG_CNT2(phy->mt76->band_idx, i)); in mt7915_mac_reset_counters()
1134 phy->mt76->survey_time = ktime_get_boottime(); in mt7915_mac_reset_counters()
1135 memset(phy->mt76->aggr_stats, 0, sizeof(phy->mt76->aggr_stats)); in mt7915_mac_reset_counters()
1138 mt76_set(dev, MT_WF_RMAC_MIB_AIRTIME0(phy->mt76->band_idx), in mt7915_mac_reset_counters()
1154 u8 band = phy->mt76->band_idx; in mt7915_mac_set_timing()
1156 bool a_band = !(phy->mt76->chandef.chan->band == NL80211_BAND_2GHZ); in mt7915_mac_set_timing()
1158 if (!test_bit(MT76_STATE_RUNNING, &phy->mt76->state)) in mt7915_mac_set_timing()
1173 if (!is_mt7915(&dev->mt76)) { in mt7915_mac_set_timing()
1207 reg = is_mt7915(&dev->mt76) ? MT_WF_PHY_RXTD12(band) : in mt7915_mac_enable_nf()
1213 reg = is_mt7915(&dev->mt76) ? MT_WF_PHY_RX_CTRL1(band) : in mt7915_mac_enable_nf()
1226 for (nss = 0; nss < hweight8(phy->mt76->chainmask); nss++) { in mt7915_phy_get_nf()
1227 u32 reg = is_mt7915(&dev->mt76) ? in mt7915_phy_get_nf()
1252 nf = mt7915_phy_get_nf(phy, phy->mt76->band_idx); in mt7915_update_channel()
1294 struct mt76_phy *mphy_ext = dev->mt76.phys[MT_BAND1]; in mt7915_update_beacons()
1296 ieee80211_iterate_active_interfaces(dev->mt76.hw, in mt7915_update_beacons()
1298 mt7915_update_vif_beacon, dev->mt76.hw); in mt7915_update_beacons()
1313 struct mt76_dev *mdev = &dev->mt76; in mt7915_mac_restart()
1316 ext_phy = dev->mt76.phys[MT_BAND1]; in mt7915_mac_restart()
1336 wake_up(&dev->mt76.mcu.wait); in mt7915_mac_restart()
1346 mt76_worker_disable(&dev->mt76.tx_worker); in mt7915_mac_restart()
1349 napi_disable(&dev->mt76.napi[i]); in mt7915_mac_restart()
1351 napi_disable(&dev->mt76.tx_napi); in mt7915_mac_restart()
1354 mt76_connac2_tx_token_put(&dev->mt76); in mt7915_mac_restart()
1355 idr_init(&dev->mt76.token); in mt7915_mac_restart()
1361 napi_enable(&dev->mt76.napi[i]); in mt7915_mac_restart()
1368 napi_schedule(&dev->mt76.napi[i]); in mt7915_mac_restart()
1375 mt76_wr(dev, MT_INT_MASK_CSR, dev->mt76.mmio.irqmask); in mt7915_mac_restart()
1379 mt76_wr(dev, MT_INT1_MASK_CSR, dev->mt76.mmio.irqmask); in mt7915_mac_restart()
1425 clear_bit(MT76_RESET, &phy2->mt76->state); in mt7915_mac_restart()
1427 napi_enable(&dev->mt76.tx_napi); in mt7915_mac_restart()
1430 napi_schedule(&dev->mt76.tx_napi); in mt7915_mac_restart()
1433 mt76_worker_enable(&dev->mt76.tx_worker); in mt7915_mac_restart()
1445 ext_phy = dev->mt76.phys[MT_BAND1]; in mt7915_mac_full_reset()
1451 wake_up(&dev->mt76.mcu.wait); in mt7915_mac_full_reset()
1460 mutex_lock(&dev->mt76.mutex); in mt7915_mac_full_reset()
1467 dev_err(dev->mt76.dev, "chip full reset failed\n"); in mt7915_mac_full_reset()
1469 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_full_reset()
1470 while (!list_empty(&dev->mt76.sta_poll_list)) in mt7915_mac_full_reset()
1471 list_del_init(dev->mt76.sta_poll_list.next); in mt7915_mac_full_reset()
1472 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_full_reset()
1474 memset(dev->mt76.wcid_mask, 0, sizeof(dev->mt76.wcid_mask)); in mt7915_mac_full_reset()
1475 dev->mt76.vif_mask = 0; in mt7915_mac_full_reset()
1480 i = mt76_wcid_alloc(dev->mt76.wcid_mask, MT7915_WTBL_STA); in mt7915_mac_full_reset()
1481 dev->mt76.global_wcid.idx = i; in mt7915_mac_full_reset()
1484 mutex_unlock(&dev->mt76.mutex); in mt7915_mac_full_reset()
1500 ext_phy = dev->mt76.phys[MT_BAND1]; in mt7915_mac_reset_work()
1538 wake_up(&dev->mt76.mcu.wait); in mt7915_mac_reset_work()
1541 set_bit(MT76_RESET, &phy2->mt76->state); in mt7915_mac_reset_work()
1542 cancel_delayed_work_sync(&phy2->mt76->mac_work); in mt7915_mac_reset_work()
1545 mutex_lock(&dev->mt76.mutex); in mt7915_mac_reset_work()
1547 mt76_worker_disable(&dev->mt76.tx_worker); in mt7915_mac_reset_work()
1548 mt76_for_each_q_rx(&dev->mt76, i) in mt7915_mac_reset_work()
1549 napi_disable(&dev->mt76.napi[i]); in mt7915_mac_reset_work()
1550 napi_disable(&dev->mt76.tx_napi); in mt7915_mac_reset_work()
1553 if (mtk_wed_device_active(&dev->mt76.mmio.wed)) in mt7915_mac_reset_work()
1554 mtk_wed_device_stop(&dev->mt76.mmio.wed); in mt7915_mac_reset_work()
1561 mt76_connac2_tx_token_put(&dev->mt76); in mt7915_mac_reset_work()
1562 idr_init(&dev->mt76.token); in mt7915_mac_reset_work()
1577 clear_bit(MT76_RESET, &phy2->mt76->state); in mt7915_mac_reset_work()
1579 mt76_for_each_q_rx(&dev->mt76, i) { in mt7915_mac_reset_work()
1580 napi_enable(&dev->mt76.napi[i]); in mt7915_mac_reset_work()
1584 mt76_for_each_q_rx(&dev->mt76, i) { in mt7915_mac_reset_work()
1585 napi_schedule(&dev->mt76.napi[i]); in mt7915_mac_reset_work()
1589 tasklet_schedule(&dev->mt76.irq_tasklet); in mt7915_mac_reset_work()
1591 mt76_worker_enable(&dev->mt76.tx_worker); in mt7915_mac_reset_work()
1593 napi_enable(&dev->mt76.tx_napi); in mt7915_mac_reset_work()
1595 napi_schedule(&dev->mt76.tx_napi); in mt7915_mac_reset_work()
1602 mutex_unlock(&dev->mt76.mutex); in mt7915_mac_reset_work()
1610 &phy2->mt76->mac_work, in mt7915_mac_reset_work()
1649 dev_warn(dev->mt76.dev, "%s len %lu is too large\n", in mt7915_mac_dump_work()
1681 queue_work(dev->mt76.wq, &dev->reset_work); in mt7915_mac_dump_work()
1695 dev_info(dev->mt76.dev, in mt7915_reset()
1697 wiphy_name(dev->mt76.hw->wiphy)); in mt7915_reset()
1700 queue_work(dev->mt76.wq, &dev->dump_work); in mt7915_reset()
1706 wake_up(&dev->mt76.mcu.wait); in mt7915_reset()
1709 queue_work(dev->mt76.wq, &dev->reset_work); in mt7915_reset()
1718 u8 band = phy->mt76->band_idx; in mt7915_mac_update_stats()
1722 mib->fcs_err_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1744 mib->rx_mrdy_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1760 mib->tx_mpdu_attempts_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1765 mib->tx_mpdu_success_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1799 mib->rx_ampdu_valid_subframe_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1815 mib->rx_pfdrop_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1820 mib->rx_vec_queue_overflow_drop_cnt += is_mt7915(&dev->mt76) ? in mt7915_mac_update_stats()
1850 if (is_mt7915(&dev->mt76)) { in mt7915_mac_update_stats()
1864 phy->mt76->aggr_stats[aggr0++] += val & 0xffff; in mt7915_mac_update_stats()
1865 phy->mt76->aggr_stats[aggr0++] += val >> 16; in mt7915_mac_update_stats()
1868 phy->mt76->aggr_stats[aggr1++] += val & 0xffff; in mt7915_mac_update_stats()
1869 phy->mt76->aggr_stats[aggr1++] += val >> 16; in mt7915_mac_update_stats()
1916 phy->mt76->aggr_stats[aggr0++] += FIELD_GET(GENMASK(15, 0), val); in mt7915_mac_update_stats()
1917 phy->mt76->aggr_stats[aggr0++] += FIELD_GET(GENMASK(31, 16), val); in mt7915_mac_update_stats()
1956 trb = mt76_rr(dev, MT_TRB_RXPSR0(phy->mt76->band_idx)); in mt7915_mac_severe_check()
1964 phy->mt76->band_idx); in mt7915_mac_severe_check()
1978 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_rc_work()
1986 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_rc_work()
1999 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_rc_work()
2002 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7915_mac_sta_rc_work()
2040 mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_STOP, 0, in mt7915_dfs_stop_radar_detector()
2043 mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_STOP, 1, in mt7915_dfs_stop_radar_detector()
2051 switch (dev->mt76.region) { in mt7915_dfs_start_rdd()
2064 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_START, chain, in mt7915_dfs_start_rdd()
2069 if (is_mt7915(&dev->mt76)) { in mt7915_dfs_start_rdd()
2070 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_SET_WF_ANT, chain, in mt7915_dfs_start_rdd()
2076 return mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_DET_MODE, chain, in mt7915_dfs_start_rdd()
2082 struct cfg80211_chan_def *chandef = &phy->mt76->chandef; in mt7915_dfs_start_radar_detector()
2087 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_CAC_START, in mt7915_dfs_start_radar_detector()
2088 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7915_dfs_start_radar_detector()
2092 err = mt7915_dfs_start_rdd(dev, phy->mt76->band_idx); in mt7915_dfs_start_radar_detector()
2096 phy->rdd_state |= BIT(phy->mt76->band_idx); in mt7915_dfs_start_radar_detector()
2098 if (!is_mt7915(&dev->mt76)) in mt7915_dfs_start_radar_detector()
2120 switch (dev->mt76.region) { in mt7915_dfs_init_radar_specs()
2153 prev_state = phy->mt76->dfs_state; in mt7915_dfs_init_radar_detector()
2154 dfs_state = mt76_phy_dfs_state(phy->mt76); in mt7915_dfs_init_radar_detector()
2174 phy->mt76->dfs_state = MT_DFS_STATE_CAC; in mt7915_dfs_init_radar_detector()
2180 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_CAC_END, in mt7915_dfs_init_radar_detector()
2181 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7915_dfs_init_radar_detector()
2183 phy->mt76->dfs_state = MT_DFS_STATE_UNKNOWN; in mt7915_dfs_init_radar_detector()
2187 phy->mt76->dfs_state = MT_DFS_STATE_ACTIVE; in mt7915_dfs_init_radar_detector()
2191 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_NORMAL_START, in mt7915_dfs_init_radar_detector()
2192 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7915_dfs_init_radar_detector()
2196 if (is_mt7915(&dev->mt76)) { in mt7915_dfs_init_radar_detector()
2197 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_SET_WF_ANT, in mt7915_dfs_init_radar_detector()
2198 phy->mt76->band_idx, 0, in mt7915_dfs_init_radar_detector()
2205 phy->mt76->dfs_state = MT_DFS_STATE_DISABLED; in mt7915_dfs_init_radar_detector()
2329 mutex_lock(&dev->mt76.mutex); in mt7915_mac_add_twt_setup()
2394 mutex_unlock(&dev->mt76.mutex); in mt7915_mac_add_twt_setup()
2409 lockdep_assert_held(&dev->mt76.mutex); in mt7915_mac_twt_teardown_flow()