Lines Matching refs:mt76

64 	if (idx >= ARRAY_SIZE(dev->mt76.wcid))  in mt7996_rx_get_wcid()
67 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7996_rx_get_wcid()
112 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
113 list_splice_init(&dev->mt76.sta_poll_list, &sta_poll_list); in mt7996_mac_sta_poll()
114 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
124 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
126 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
132 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
188 mt76_rx_signal(msta->vif->deflink.phy->mt76->antenna_mask, rssi); in mt7996_mac_sta_poll()
318 i = mt76_get_rate(&dev->mt76, sband, i, cck); in mt7996_mac_fill_rx_rate()
421 mtk_wed_device_ppe_check(&dev->mt76.mmio.wed, skb, in mt7996_wed_check_ppe()
431 struct mt76_phy *mphy = &dev->mt76.phy; in mt7996_mac_fill_rx()
460 mphy = dev->mt76.phys[band_idx]; in mt7996_mac_fill_rx()
484 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); in mt7996_mac_fill_rx()
684 mt7996_wed_check_ppe(dev, &dev->mt76.q_rx[q], msta, skb, in mt7996_mac_fill_rx()
898 if (is_mt7996(&dev->mt76)) in mt7996_mac_write_txwi()
937 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_tx_prepare_skb()
951 wcid = &dev->mt76.global_wcid; in mt7996_tx_prepare_skb()
991 txp->fw.bss_idx = mvif->deflink.mt76.idx; in mt7996_tx_prepare_skb()
1076 struct mt76_dev *mdev = &dev->mt76; in mt7996_txwi_free()
1107 struct mt76_dev *mdev = &dev->mt76; in mt7996_mac_tx_free()
1154 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7996_mac_tx_free()
1160 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); in mt7996_mac_tx_free()
1195 mt76_set_tx_blocked(&dev->mt76, false); in mt7996_mac_tx_free()
1197 mt76_worker_schedule(&dev->mt76.tx_worker); in mt7996_mac_tx_free()
1211 struct mt76_dev *mdev = &dev->mt76; in mt7996_mac_add_txs_skb()
1240 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && wcid->sta) { in mt7996_mac_add_txs_skb()
1375 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7996_mac_add_txs()
1386 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); in mt7996_mac_add_txs()
1394 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_rx_check()
1429 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_queue_rx_skb()
1445 if (mtk_wed_device_active(&dev->mt76.mmio.wed_hif2) && in mt7996_queue_rx_skb()
1470 mt76_rx(&dev->mt76, q, skb); in mt7996_queue_rx_skb()
1483 u32 reg = MT_WF_PHYRX_BAND_RX_CTRL1(phy->mt76->band_idx); in mt7996_mac_cca_stats_reset()
1492 u8 band_idx = phy->mt76->band_idx; in mt7996_mac_reset_counters()
1498 phy->mt76->survey_time = ktime_get_boottime(); in mt7996_mac_reset_counters()
1500 memset(phy->mt76->aggr_stats, 0, sizeof(phy->mt76->aggr_stats)); in mt7996_mac_reset_counters()
1520 u8 band_idx = phy->mt76->band_idx; in mt7996_mac_set_coverage_class()
1523 if (!test_bit(MT76_STATE_RUNNING, &phy->mt76->state)) in mt7996_mac_set_coverage_class()
1560 for (ant = 0; ant < hweight8(phy->mt76->antenna_mask); ant++) { in mt7996_phy_get_nf()
1624 ieee80211_iterate_active_interfaces(dev->mt76.hw, in mt7996_update_beacons()
1626 mt7996_update_vif_beacon, dev->mt76.hw); in mt7996_update_beacons()
1628 phy2 = dev->mt76.phys[MT_BAND1]; in mt7996_update_beacons()
1636 phy3 = dev->mt76.phys[MT_BAND2]; in mt7996_update_beacons()
1650 spin_lock_bh(&dev->mt76.token_lock); in mt7996_tx_token_put()
1651 idr_for_each_entry(&dev->mt76.token, txwi, id) { in mt7996_tx_token_put()
1653 dev->mt76.token_count--; in mt7996_tx_token_put()
1655 spin_unlock_bh(&dev->mt76.token_lock); in mt7996_tx_token_put()
1656 idr_destroy(&dev->mt76.token); in mt7996_tx_token_put()
1663 struct mt76_dev *mdev = &dev->mt76; in mt7996_mac_restart()
1682 wake_up(&dev->mt76.mcu.wait); in mt7996_mac_restart()
1684 set_bit(MT76_RESET, &phy2->mt76->state); in mt7996_mac_restart()
1686 set_bit(MT76_RESET, &phy3->mt76->state); in mt7996_mac_restart()
1691 mt76_txq_schedule_all(phy2->mt76); in mt7996_mac_restart()
1693 mt76_txq_schedule_all(phy3->mt76); in mt7996_mac_restart()
1696 mt76_worker_disable(&dev->mt76.tx_worker); in mt7996_mac_restart()
1698 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && in mt7996_mac_restart()
1703 napi_disable(&dev->mt76.napi[i]); in mt7996_mac_restart()
1705 napi_disable(&dev->mt76.tx_napi); in mt7996_mac_restart()
1709 idr_init(&dev->mt76.token); in mt7996_mac_restart()
1714 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && in mt7996_mac_restart()
1719 napi_enable(&dev->mt76.napi[i]); in mt7996_mac_restart()
1721 napi_schedule(&dev->mt76.napi[i]); in mt7996_mac_restart()
1728 mt76_wr(dev, MT_INT_MASK_CSR, dev->mt76.mmio.irqmask); in mt7996_mac_restart()
1731 mt76_wr(dev, MT_INT1_MASK_CSR, dev->mt76.mmio.irqmask); in mt7996_mac_restart()
1762 if (phy2 && test_bit(MT76_STATE_RUNNING, &phy2->mt76->state)) { in mt7996_mac_restart()
1768 if (phy3 && test_bit(MT76_STATE_RUNNING, &phy3->mt76->state)) { in mt7996_mac_restart()
1778 clear_bit(MT76_RESET, &phy2->mt76->state); in mt7996_mac_restart()
1780 clear_bit(MT76_RESET, &phy3->mt76->state); in mt7996_mac_restart()
1782 napi_enable(&dev->mt76.tx_napi); in mt7996_mac_restart()
1784 napi_schedule(&dev->mt76.tx_napi); in mt7996_mac_restart()
1787 mt76_worker_enable(&dev->mt76.tx_worker); in mt7996_mac_restart()
1801 wake_up(&dev->mt76.mcu.wait); in mt7996_mac_full_reset()
1804 ieee80211_stop_queues(phy2->mt76->hw); in mt7996_mac_full_reset()
1806 ieee80211_stop_queues(phy3->mt76->hw); in mt7996_mac_full_reset()
1811 cancel_delayed_work_sync(&phy2->mt76->mac_work); in mt7996_mac_full_reset()
1813 cancel_delayed_work_sync(&phy3->mt76->mac_work); in mt7996_mac_full_reset()
1815 mutex_lock(&dev->mt76.mutex); in mt7996_mac_full_reset()
1820 mutex_unlock(&dev->mt76.mutex); in mt7996_mac_full_reset()
1823 dev_err(dev->mt76.dev, "chip full reset failed\n"); in mt7996_mac_full_reset()
1827 ieee80211_restart_hw(phy2->mt76->hw); in mt7996_mac_full_reset()
1829 ieee80211_restart_hw(phy3->mt76->hw); in mt7996_mac_full_reset()
1833 ieee80211_wake_queues(phy2->mt76->hw); in mt7996_mac_full_reset()
1835 ieee80211_wake_queues(phy3->mt76->hw); in mt7996_mac_full_reset()
1842 ieee80211_queue_delayed_work(phy2->mt76->hw, in mt7996_mac_full_reset()
1843 &phy2->mt76->mac_work, in mt7996_mac_full_reset()
1846 ieee80211_queue_delayed_work(phy3->mt76->hw, in mt7996_mac_full_reset()
1847 &phy3->mt76->mac_work, in mt7996_mac_full_reset()
1889 dev_info(dev->mt76.dev,"\n%s L1 SER recovery start.", in mt7996_mac_reset_work()
1890 wiphy_name(dev->mt76.hw->wiphy)); in mt7996_mac_reset_work()
1892 if (mtk_wed_device_active(&dev->mt76.mmio.wed_hif2)) in mt7996_mac_reset_work()
1893 mtk_wed_device_stop(&dev->mt76.mmio.wed_hif2); in mt7996_mac_reset_work()
1895 if (mtk_wed_device_active(&dev->mt76.mmio.wed)) in mt7996_mac_reset_work()
1896 mtk_wed_device_stop(&dev->mt76.mmio.wed); in mt7996_mac_reset_work()
1900 ieee80211_stop_queues(phy2->mt76->hw); in mt7996_mac_reset_work()
1902 ieee80211_stop_queues(phy3->mt76->hw); in mt7996_mac_reset_work()
1906 wake_up(&dev->mt76.mcu.wait); in mt7996_mac_reset_work()
1911 set_bit(MT76_RESET, &phy2->mt76->state); in mt7996_mac_reset_work()
1912 cancel_delayed_work_sync(&phy2->mt76->mac_work); in mt7996_mac_reset_work()
1915 set_bit(MT76_RESET, &phy3->mt76->state); in mt7996_mac_reset_work()
1916 cancel_delayed_work_sync(&phy3->mt76->mac_work); in mt7996_mac_reset_work()
1918 mt76_worker_disable(&dev->mt76.tx_worker); in mt7996_mac_reset_work()
1919 mt76_for_each_q_rx(&dev->mt76, i) { in mt7996_mac_reset_work()
1920 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && in mt7996_mac_reset_work()
1921 mt76_queue_is_wed_rro(&dev->mt76.q_rx[i])) in mt7996_mac_reset_work()
1924 napi_disable(&dev->mt76.napi[i]); in mt7996_mac_reset_work()
1926 napi_disable(&dev->mt76.tx_napi); in mt7996_mac_reset_work()
1928 mutex_lock(&dev->mt76.mutex); in mt7996_mac_reset_work()
1936 idr_init(&dev->mt76.token); in mt7996_mac_reset_work()
1948 if (mtk_wed_device_active(&dev->mt76.mmio.wed)) { in mt7996_mac_reset_work()
1950 dev->mt76.mmio.irqmask; in mt7996_mac_reset_work()
1952 if (mtk_wed_get_rx_capa(&dev->mt76.mmio.wed)) in mt7996_mac_reset_work()
1957 mtk_wed_device_start_hw_rro(&dev->mt76.mmio.wed, wed_irq_mask, in mt7996_mac_reset_work()
1963 if (mtk_wed_device_active(&dev->mt76.mmio.wed_hif2)) { in mt7996_mac_reset_work()
1965 mtk_wed_device_start(&dev->mt76.mmio.wed_hif2, in mt7996_mac_reset_work()
1972 clear_bit(MT76_RESET, &phy2->mt76->state); in mt7996_mac_reset_work()
1974 clear_bit(MT76_RESET, &phy3->mt76->state); in mt7996_mac_reset_work()
1976 mt76_for_each_q_rx(&dev->mt76, i) { in mt7996_mac_reset_work()
1977 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && in mt7996_mac_reset_work()
1978 mt76_queue_is_wed_rro(&dev->mt76.q_rx[i])) in mt7996_mac_reset_work()
1981 napi_enable(&dev->mt76.napi[i]); in mt7996_mac_reset_work()
1983 napi_schedule(&dev->mt76.napi[i]); in mt7996_mac_reset_work()
1987 tasklet_schedule(&dev->mt76.irq_tasklet); in mt7996_mac_reset_work()
1989 mt76_worker_enable(&dev->mt76.tx_worker); in mt7996_mac_reset_work()
1991 napi_enable(&dev->mt76.tx_napi); in mt7996_mac_reset_work()
1993 napi_schedule(&dev->mt76.tx_napi); in mt7996_mac_reset_work()
1998 ieee80211_wake_queues(phy2->mt76->hw); in mt7996_mac_reset_work()
2000 ieee80211_wake_queues(phy3->mt76->hw); in mt7996_mac_reset_work()
2002 mutex_unlock(&dev->mt76.mutex); in mt7996_mac_reset_work()
2009 ieee80211_queue_delayed_work(phy2->mt76->hw, in mt7996_mac_reset_work()
2010 &phy2->mt76->mac_work, in mt7996_mac_reset_work()
2013 ieee80211_queue_delayed_work(phy3->mt76->hw, in mt7996_mac_reset_work()
2014 &phy3->mt76->mac_work, in mt7996_mac_reset_work()
2016 dev_info(dev->mt76.dev,"\n%s L1 SER recovery completed.", in mt7996_mac_reset_work()
2017 wiphy_name(dev->mt76.hw->wiphy)); in mt7996_mac_reset_work()
2055 dev_warn(dev->mt76.dev, "%s len %zu is too large\n", in mt7996_mac_dump_work()
2086 queue_work(dev->mt76.wq, &dev->reset_work); in mt7996_mac_dump_work()
2100 dev_info(dev->mt76.dev, in mt7996_reset()
2102 wiphy_name(dev->mt76.hw->wiphy)); in mt7996_reset()
2105 queue_work(dev->mt76.wq, &dev->dump_work); in mt7996_reset()
2109 queue_work(dev->mt76.wq, &dev->reset_work); in mt7996_reset()
2117 u8 band_idx = phy->mt76->band_idx; in mt7996_mac_update_stats()
2250 phy->mt76->aggr_stats[i] += cnt; in mt7996_mac_update_stats()
2263 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_rc_work()
2271 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_rc_work()
2285 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_rc_work()
2288 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_rc_work()
2309 if (mtk_wed_device_active(&phy->dev->mt76.mmio.wed)) { in mt7996_mac_work()
2339 switch (dev->mt76.region) { in mt7996_dfs_start_rdd()
2363 struct cfg80211_chan_def *chandef = &phy->mt76->chandef; in mt7996_dfs_start_radar_detector()
2365 u8 band_idx = phy->mt76->band_idx; in mt7996_dfs_start_radar_detector()
2399 switch (dev->mt76.region) { in mt7996_dfs_init_radar_specs()
2432 prev_state = phy->mt76->dfs_state; in mt7996_dfs_init_radar_detector()
2433 dfs_state = mt76_phy_dfs_state(phy->mt76); in mt7996_dfs_init_radar_detector()
2453 phy->mt76->dfs_state = MT_DFS_STATE_CAC; in mt7996_dfs_init_radar_detector()
2460 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7996_dfs_init_radar_detector()
2462 phy->mt76->dfs_state = MT_DFS_STATE_UNKNOWN; in mt7996_dfs_init_radar_detector()
2466 phy->mt76->dfs_state = MT_DFS_STATE_ACTIVE; in mt7996_dfs_init_radar_detector()
2471 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7996_dfs_init_radar_detector()
2476 phy->mt76->dfs_state = MT_DFS_STATE_DISABLED; in mt7996_dfs_init_radar_detector()
2599 mutex_lock(&dev->mt76.mutex); in mt7996_mac_add_twt_setup()
2664 mutex_unlock(&dev->mt76.mutex); in mt7996_mac_add_twt_setup()
2678 lockdep_assert_held(&dev->mt76.mutex); in mt7996_mac_twt_teardown_flow()