Lines Matching full:mt76
16 struct mt76x02_dev *dev = from_tasklet(dev, t, mt76.pre_tbtt_tasklet); in mt76x02_pre_tbtt_tasklet()
17 struct mt76_dev *mdev = &dev->mt76; in mt76x02_pre_tbtt_tasklet()
71 tasklet_enable(&dev->mt76.pre_tbtt_tasklet); in mt76x02e_pre_tbtt_enable()
73 tasklet_disable(&dev->mt76.pre_tbtt_tasklet); in mt76x02e_pre_tbtt_enable()
136 dev = container_of(w, struct mt76x02_dev, mt76.tx_worker); in mt76x02_tx_worker()
147 mt76.tx_napi); in mt76x02_poll_tx()
152 mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WM], false); in mt76x02_poll_tx()
159 mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WM], false); in mt76x02_poll_tx()
163 mt76_worker_schedule(&dev->mt76.tx_worker); in mt76x02_poll_tx()
178 status_fifo = devm_kzalloc(dev->mt76.dev, fifo_size, GFP_KERNEL); in mt76x02_dma_init()
182 dev->mt76.tx_worker.fn = mt76x02_tx_worker; in mt76x02_dma_init()
183 tasklet_setup(&dev->mt76.pre_tbtt_tasklet, mt76x02_pre_tbtt_tasklet); in mt76x02_dma_init()
188 mt76_dma_attach(&dev->mt76); in mt76x02_dma_init()
205 ret = mt76_init_mcu_queue(&dev->mt76, MT_MCUQ_WM, MT_TX_HW_QUEUE_MCU, in mt76x02_dma_init()
218 ret = mt76x02_init_rx_queue(dev, &dev->mt76.q_rx[MT_RXQ_MCU], 1, in mt76x02_dma_init()
223 q = &dev->mt76.q_rx[MT_RXQ_MAIN]; in mt76x02_dma_init()
234 netif_napi_add_tx(&dev->mt76.tx_napi_dev, &dev->mt76.tx_napi, in mt76x02_dma_init()
236 napi_enable(&dev->mt76.tx_napi); in mt76x02_dma_init()
246 dev = container_of(mdev, struct mt76x02_dev, mt76); in mt76x02_rx_poll_complete()
257 intr &= dev->mt76.mmio.irqmask; in mt76x02_irq_handler()
263 trace_dev_irq(&dev->mt76, intr, dev->mt76.mmio.irqmask); in mt76x02_irq_handler()
272 napi_schedule(&dev->mt76.napi[0]); in mt76x02_irq_handler()
275 napi_schedule(&dev->mt76.napi[1]); in mt76x02_irq_handler()
278 tasklet_schedule(&dev->mt76.pre_tbtt_tasklet); in mt76x02_irq_handler()
282 if (dev->mt76.csa_complete) in mt76x02_irq_handler()
283 mt76_csa_finish(&dev->mt76); in mt76x02_irq_handler()
292 napi_schedule(&dev->mt76.tx_napi); in mt76x02_irq_handler()
306 mt76x02_wait_for_wpdma(&dev->mt76, 1000); in mt76x02_dma_enable()
333 mt76_wr(dev, MT_RX_FILTR_CFG, dev->mt76.rxfilter); in mt76x02_mac_start()
352 prev_dma_idx = dev->mt76.tx_dma_idx[i]; in mt76x02_tx_hang()
354 dev->mt76.tx_dma_idx[i] = dma_idx; in mt76x02_tx_hang()
390 lockdep_assert_held(&dev->mt76.mutex); in mt76x02_reset_state()
395 ieee80211_iter_keys_rcu(dev->mt76.hw, NULL, mt76x02_key_sync, NULL); in mt76x02_reset_state()
405 wcid = rcu_dereference_protected(dev->mt76.wcid[i], in mt76x02_reset_state()
406 lockdep_is_held(&dev->mt76.mutex)); in mt76x02_reset_state()
410 rcu_assign_pointer(dev->mt76.wcid[i], NULL); in mt76x02_reset_state()
418 __mt76_sta_remove(&dev->mt76, vif, sta); in mt76x02_reset_state()
422 dev->mt76.vif_mask = 0; in mt76x02_reset_state()
423 dev->mt76.beacon_mask = 0; in mt76x02_reset_state()
428 u32 mask = dev->mt76.mmio.irqmask; in mt76x02_watchdog_reset()
429 bool restart = dev->mt76.mcu_ops->mcu_restart; in mt76x02_watchdog_reset()
432 ieee80211_stop_queues(dev->mt76.hw); in mt76x02_watchdog_reset()
435 tasklet_disable(&dev->mt76.pre_tbtt_tasklet); in mt76x02_watchdog_reset()
436 mt76_worker_disable(&dev->mt76.tx_worker); in mt76x02_watchdog_reset()
437 napi_disable(&dev->mt76.tx_napi); in mt76x02_watchdog_reset()
439 mt76_for_each_q_rx(&dev->mt76, i) { in mt76x02_watchdog_reset()
440 napi_disable(&dev->mt76.napi[i]); in mt76x02_watchdog_reset()
443 mutex_lock(&dev->mt76.mutex); in mt76x02_watchdog_reset()
449 if (dev->mt76.beacon_mask) in mt76x02_watchdog_reset()
470 mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WM], true); in mt76x02_watchdog_reset()
474 mt76_for_each_q_rx(&dev->mt76, i) { in mt76x02_watchdog_reset()
478 mt76_tx_status_check(&dev->mt76, true); in mt76x02_watchdog_reset()
485 if (dev->mt76.beacon_mask && !restart) in mt76x02_watchdog_reset()
492 mutex_unlock(&dev->mt76.mutex); in mt76x02_watchdog_reset()
496 mt76_worker_enable(&dev->mt76.tx_worker); in mt76x02_watchdog_reset()
497 tasklet_enable(&dev->mt76.pre_tbtt_tasklet); in mt76x02_watchdog_reset()
500 napi_enable(&dev->mt76.tx_napi); in mt76x02_watchdog_reset()
501 napi_schedule(&dev->mt76.tx_napi); in mt76x02_watchdog_reset()
503 mt76_for_each_q_rx(&dev->mt76, i) { in mt76x02_watchdog_reset()
504 napi_enable(&dev->mt76.napi[i]); in mt76x02_watchdog_reset()
505 napi_schedule(&dev->mt76.napi[i]); in mt76x02_watchdog_reset()
512 ieee80211_restart_hw(dev->mt76.hw); in mt76x02_watchdog_reset()
514 ieee80211_wake_queues(dev->mt76.hw); in mt76x02_watchdog_reset()
543 memset(dev->mt76.tx_dma_idx, 0xff, in mt76x02_check_tx_hang()
544 sizeof(dev->mt76.tx_dma_idx)); in mt76x02_check_tx_hang()