Lines Matching full:mt76

61 	if (idx >= ARRAY_SIZE(dev->mt76.wcid))  in mt7996_rx_get_wcid()
64 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7996_rx_get_wcid()
109 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
110 list_splice_init(&dev->mt76.sta_poll_list, &sta_poll_list); in mt7996_mac_sta_poll()
111 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
121 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
123 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
129 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_poll()
185 mt76_rx_signal(msta->vif->deflink.phy->mt76->antenna_mask, rssi); in mt7996_mac_sta_poll()
315 i = mt76_get_rate(&dev->mt76, sband, i, cck); in mt7996_mac_fill_rx_rate()
418 mtk_wed_device_ppe_check(&dev->mt76.mmio.wed, skb, in mt7996_wed_check_ppe()
428 struct mt76_phy *mphy = &dev->mt76.phy; in mt7996_mac_fill_rx()
457 mphy = dev->mt76.phys[band_idx]; in mt7996_mac_fill_rx()
481 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); in mt7996_mac_fill_rx()
681 mt7996_wed_check_ppe(dev, &dev->mt76.q_rx[q], msta, skb, in mt7996_mac_fill_rx()
895 if (is_mt7996(&dev->mt76)) in mt7996_mac_write_txwi()
934 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_tx_prepare_skb()
948 wcid = &dev->mt76.global_wcid; in mt7996_tx_prepare_skb()
988 txp->fw.bss_idx = mvif->deflink.mt76.idx; in mt7996_tx_prepare_skb()
1069 struct mt76_dev *mdev = &dev->mt76; in mt7996_txwi_free()
1100 struct mt76_dev *mdev = &dev->mt76; in mt7996_mac_tx_free()
1143 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7996_mac_tx_free()
1149 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); in mt7996_mac_tx_free()
1184 mt76_set_tx_blocked(&dev->mt76, false); in mt7996_mac_tx_free()
1186 mt76_worker_schedule(&dev->mt76.tx_worker); in mt7996_mac_tx_free()
1200 struct mt76_dev *mdev = &dev->mt76; in mt7996_mac_add_txs_skb()
1229 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && wcid->sta) { in mt7996_mac_add_txs_skb()
1364 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7996_mac_add_txs()
1375 mt76_wcid_add_poll(&dev->mt76, &msta->wcid); in mt7996_mac_add_txs()
1383 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_rx_check()
1416 struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76); in mt7996_queue_rx_skb()
1432 if (mtk_wed_device_active(&dev->mt76.mmio.wed_hif2) && in mt7996_queue_rx_skb()
1455 mt76_rx(&dev->mt76, q, skb); in mt7996_queue_rx_skb()
1468 u32 reg = MT_WF_PHYRX_BAND_RX_CTRL1(phy->mt76->band_idx); in mt7996_mac_cca_stats_reset()
1477 u8 band_idx = phy->mt76->band_idx; in mt7996_mac_reset_counters()
1483 phy->mt76->survey_time = ktime_get_boottime(); in mt7996_mac_reset_counters()
1485 memset(phy->mt76->aggr_stats, 0, sizeof(phy->mt76->aggr_stats)); in mt7996_mac_reset_counters()
1505 u8 band_idx = phy->mt76->band_idx; in mt7996_mac_set_coverage_class()
1508 if (!test_bit(MT76_STATE_RUNNING, &phy->mt76->state)) in mt7996_mac_set_coverage_class()
1545 for (ant = 0; ant < hweight8(phy->mt76->antenna_mask); ant++) { in mt7996_phy_get_nf()
1609 ieee80211_iterate_active_interfaces(dev->mt76.hw, in mt7996_update_beacons()
1611 mt7996_update_vif_beacon, dev->mt76.hw); in mt7996_update_beacons()
1613 phy2 = dev->mt76.phys[MT_BAND1]; in mt7996_update_beacons()
1621 phy3 = dev->mt76.phys[MT_BAND2]; in mt7996_update_beacons()
1635 spin_lock_bh(&dev->mt76.token_lock); in mt7996_tx_token_put()
1636 idr_for_each_entry(&dev->mt76.token, txwi, id) { in mt7996_tx_token_put()
1638 dev->mt76.token_count--; in mt7996_tx_token_put()
1640 spin_unlock_bh(&dev->mt76.token_lock); in mt7996_tx_token_put()
1641 idr_destroy(&dev->mt76.token); in mt7996_tx_token_put()
1648 struct mt76_dev *mdev = &dev->mt76; in mt7996_mac_restart()
1667 wake_up(&dev->mt76.mcu.wait); in mt7996_mac_restart()
1669 set_bit(MT76_RESET, &phy2->mt76->state); in mt7996_mac_restart()
1671 set_bit(MT76_RESET, &phy3->mt76->state); in mt7996_mac_restart()
1676 mt76_txq_schedule_all(phy2->mt76); in mt7996_mac_restart()
1678 mt76_txq_schedule_all(phy3->mt76); in mt7996_mac_restart()
1681 mt76_worker_disable(&dev->mt76.tx_worker); in mt7996_mac_restart()
1683 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && in mt7996_mac_restart()
1688 napi_disable(&dev->mt76.napi[i]); in mt7996_mac_restart()
1690 napi_disable(&dev->mt76.tx_napi); in mt7996_mac_restart()
1694 idr_init(&dev->mt76.token); in mt7996_mac_restart()
1699 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && in mt7996_mac_restart()
1704 napi_enable(&dev->mt76.napi[i]); in mt7996_mac_restart()
1706 napi_schedule(&dev->mt76.napi[i]); in mt7996_mac_restart()
1713 mt76_wr(dev, MT_INT_MASK_CSR, dev->mt76.mmio.irqmask); in mt7996_mac_restart()
1716 mt76_wr(dev, MT_INT1_MASK_CSR, dev->mt76.mmio.irqmask); in mt7996_mac_restart()
1747 if (phy2 && test_bit(MT76_STATE_RUNNING, &phy2->mt76->state)) { in mt7996_mac_restart()
1753 if (phy3 && test_bit(MT76_STATE_RUNNING, &phy3->mt76->state)) { in mt7996_mac_restart()
1763 clear_bit(MT76_RESET, &phy2->mt76->state); in mt7996_mac_restart()
1765 clear_bit(MT76_RESET, &phy3->mt76->state); in mt7996_mac_restart()
1767 napi_enable(&dev->mt76.tx_napi); in mt7996_mac_restart()
1769 napi_schedule(&dev->mt76.tx_napi); in mt7996_mac_restart()
1772 mt76_worker_enable(&dev->mt76.tx_worker); in mt7996_mac_restart()
1786 wake_up(&dev->mt76.mcu.wait); in mt7996_mac_full_reset()
1789 ieee80211_stop_queues(phy2->mt76->hw); in mt7996_mac_full_reset()
1791 ieee80211_stop_queues(phy3->mt76->hw); in mt7996_mac_full_reset()
1796 cancel_delayed_work_sync(&phy2->mt76->mac_work); in mt7996_mac_full_reset()
1798 cancel_delayed_work_sync(&phy3->mt76->mac_work); in mt7996_mac_full_reset()
1800 mutex_lock(&dev->mt76.mutex); in mt7996_mac_full_reset()
1805 mutex_unlock(&dev->mt76.mutex); in mt7996_mac_full_reset()
1808 dev_err(dev->mt76.dev, "chip full reset failed\n"); in mt7996_mac_full_reset()
1812 ieee80211_restart_hw(phy2->mt76->hw); in mt7996_mac_full_reset()
1814 ieee80211_restart_hw(phy3->mt76->hw); in mt7996_mac_full_reset()
1818 ieee80211_wake_queues(phy2->mt76->hw); in mt7996_mac_full_reset()
1820 ieee80211_wake_queues(phy3->mt76->hw); in mt7996_mac_full_reset()
1827 ieee80211_queue_delayed_work(phy2->mt76->hw, in mt7996_mac_full_reset()
1828 &phy2->mt76->mac_work, in mt7996_mac_full_reset()
1831 ieee80211_queue_delayed_work(phy3->mt76->hw, in mt7996_mac_full_reset()
1832 &phy3->mt76->mac_work, in mt7996_mac_full_reset()
1874 dev_info(dev->mt76.dev,"\n%s L1 SER recovery start.", in mt7996_mac_reset_work()
1875 wiphy_name(dev->mt76.hw->wiphy)); in mt7996_mac_reset_work()
1877 if (mtk_wed_device_active(&dev->mt76.mmio.wed_hif2)) in mt7996_mac_reset_work()
1878 mtk_wed_device_stop(&dev->mt76.mmio.wed_hif2); in mt7996_mac_reset_work()
1880 if (mtk_wed_device_active(&dev->mt76.mmio.wed)) in mt7996_mac_reset_work()
1881 mtk_wed_device_stop(&dev->mt76.mmio.wed); in mt7996_mac_reset_work()
1885 ieee80211_stop_queues(phy2->mt76->hw); in mt7996_mac_reset_work()
1887 ieee80211_stop_queues(phy3->mt76->hw); in mt7996_mac_reset_work()
1891 wake_up(&dev->mt76.mcu.wait); in mt7996_mac_reset_work()
1896 set_bit(MT76_RESET, &phy2->mt76->state); in mt7996_mac_reset_work()
1897 cancel_delayed_work_sync(&phy2->mt76->mac_work); in mt7996_mac_reset_work()
1900 set_bit(MT76_RESET, &phy3->mt76->state); in mt7996_mac_reset_work()
1901 cancel_delayed_work_sync(&phy3->mt76->mac_work); in mt7996_mac_reset_work()
1903 mt76_worker_disable(&dev->mt76.tx_worker); in mt7996_mac_reset_work()
1904 mt76_for_each_q_rx(&dev->mt76, i) { in mt7996_mac_reset_work()
1905 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && in mt7996_mac_reset_work()
1906 mt76_queue_is_wed_rro(&dev->mt76.q_rx[i])) in mt7996_mac_reset_work()
1909 napi_disable(&dev->mt76.napi[i]); in mt7996_mac_reset_work()
1911 napi_disable(&dev->mt76.tx_napi); in mt7996_mac_reset_work()
1913 mutex_lock(&dev->mt76.mutex); in mt7996_mac_reset_work()
1921 idr_init(&dev->mt76.token); in mt7996_mac_reset_work()
1933 if (mtk_wed_device_active(&dev->mt76.mmio.wed)) { in mt7996_mac_reset_work()
1935 dev->mt76.mmio.irqmask; in mt7996_mac_reset_work()
1937 if (mtk_wed_get_rx_capa(&dev->mt76.mmio.wed)) in mt7996_mac_reset_work()
1942 mtk_wed_device_start_hw_rro(&dev->mt76.mmio.wed, wed_irq_mask, in mt7996_mac_reset_work()
1948 if (mtk_wed_device_active(&dev->mt76.mmio.wed_hif2)) { in mt7996_mac_reset_work()
1950 mtk_wed_device_start(&dev->mt76.mmio.wed_hif2, in mt7996_mac_reset_work()
1957 clear_bit(MT76_RESET, &phy2->mt76->state); in mt7996_mac_reset_work()
1959 clear_bit(MT76_RESET, &phy3->mt76->state); in mt7996_mac_reset_work()
1961 mt76_for_each_q_rx(&dev->mt76, i) { in mt7996_mac_reset_work()
1962 if (mtk_wed_device_active(&dev->mt76.mmio.wed) && in mt7996_mac_reset_work()
1963 mt76_queue_is_wed_rro(&dev->mt76.q_rx[i])) in mt7996_mac_reset_work()
1966 napi_enable(&dev->mt76.napi[i]); in mt7996_mac_reset_work()
1968 napi_schedule(&dev->mt76.napi[i]); in mt7996_mac_reset_work()
1972 tasklet_schedule(&dev->mt76.irq_tasklet); in mt7996_mac_reset_work()
1974 mt76_worker_enable(&dev->mt76.tx_worker); in mt7996_mac_reset_work()
1976 napi_enable(&dev->mt76.tx_napi); in mt7996_mac_reset_work()
1978 napi_schedule(&dev->mt76.tx_napi); in mt7996_mac_reset_work()
1983 ieee80211_wake_queues(phy2->mt76->hw); in mt7996_mac_reset_work()
1985 ieee80211_wake_queues(phy3->mt76->hw); in mt7996_mac_reset_work()
1987 mutex_unlock(&dev->mt76.mutex); in mt7996_mac_reset_work()
1994 ieee80211_queue_delayed_work(phy2->mt76->hw, in mt7996_mac_reset_work()
1995 &phy2->mt76->mac_work, in mt7996_mac_reset_work()
1998 ieee80211_queue_delayed_work(phy3->mt76->hw, in mt7996_mac_reset_work()
1999 &phy3->mt76->mac_work, in mt7996_mac_reset_work()
2001 dev_info(dev->mt76.dev,"\n%s L1 SER recovery completed.", in mt7996_mac_reset_work()
2002 wiphy_name(dev->mt76.hw->wiphy)); in mt7996_mac_reset_work()
2040 dev_warn(dev->mt76.dev, "%s len %zu is too large\n", in mt7996_mac_dump_work()
2071 queue_work(dev->mt76.wq, &dev->reset_work); in mt7996_mac_dump_work()
2085 dev_info(dev->mt76.dev, in mt7996_reset()
2087 wiphy_name(dev->mt76.hw->wiphy)); in mt7996_reset()
2090 queue_work(dev->mt76.wq, &dev->dump_work); in mt7996_reset()
2094 queue_work(dev->mt76.wq, &dev->reset_work); in mt7996_reset()
2102 u8 band_idx = phy->mt76->band_idx; in mt7996_mac_update_stats()
2235 phy->mt76->aggr_stats[i] += cnt; in mt7996_mac_update_stats()
2248 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_rc_work()
2256 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_rc_work()
2270 spin_lock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_rc_work()
2273 spin_unlock_bh(&dev->mt76.sta_poll_lock); in mt7996_mac_sta_rc_work()
2294 if (mtk_wed_device_active(&phy->dev->mt76.mmio.wed)) { in mt7996_mac_work()
2324 switch (dev->mt76.region) { in mt7996_dfs_start_rdd()
2348 struct cfg80211_chan_def *chandef = &phy->mt76->chandef; in mt7996_dfs_start_radar_detector()
2350 u8 band_idx = phy->mt76->band_idx; in mt7996_dfs_start_radar_detector()
2384 switch (dev->mt76.region) { in mt7996_dfs_init_radar_specs()
2417 prev_state = phy->mt76->dfs_state; in mt7996_dfs_init_radar_detector()
2418 dfs_state = mt76_phy_dfs_state(phy->mt76); in mt7996_dfs_init_radar_detector()
2438 phy->mt76->dfs_state = MT_DFS_STATE_CAC; in mt7996_dfs_init_radar_detector()
2445 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7996_dfs_init_radar_detector()
2447 phy->mt76->dfs_state = MT_DFS_STATE_UNKNOWN; in mt7996_dfs_init_radar_detector()
2451 phy->mt76->dfs_state = MT_DFS_STATE_ACTIVE; in mt7996_dfs_init_radar_detector()
2456 phy->mt76->band_idx, MT_RX_SEL0, 0); in mt7996_dfs_init_radar_detector()
2461 phy->mt76->dfs_state = MT_DFS_STATE_DISABLED; in mt7996_dfs_init_radar_detector()
2584 mutex_lock(&dev->mt76.mutex); in mt7996_mac_add_twt_setup()
2649 mutex_unlock(&dev->mt76.mutex); in mt7996_mac_add_twt_setup()
2663 lockdep_assert_held(&dev->mt76.mutex); in mt7996_mac_twt_teardown_flow()