Lines Matching refs:dev

18 mt7615_write_fw_txp(struct mt7615_dev *dev, struct mt76_tx_info *tx_info,  in mt7615_write_fw_txp()  argument
65 struct mt7615_dev *dev = container_of(mdev, struct mt7615_dev, mt76); in mt7615_tx_prepare_skb() local
76 wcid = &dev->mt76.global_wcid; in mt7615_tx_prepare_skb()
79 struct mt7615_phy *phy = &dev->phy; in mt7615_tx_prepare_skb()
85 spin_lock_bh(&dev->mt76.lock); in mt7615_tx_prepare_skb()
88 spin_unlock_bh(&dev->mt76.lock); in mt7615_tx_prepare_skb()
99 mt7615_mac_write_txwi(dev, txwi_ptr, tx_info->skb, wcid, sta, in mt7615_tx_prepare_skb()
104 if (is_mt7615(&dev->mt76)) in mt7615_tx_prepare_skb()
105 mt7615_write_fw_txp(dev, tx_info, txp, id); in mt7615_tx_prepare_skb()
114 void mt7615_dma_reset(struct mt7615_dev *dev) in mt7615_dma_reset() argument
118 mt76_clear(dev, MT_WPDMA_GLO_CFG, in mt7615_dma_reset()
125 mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[i], true); in mt7615_dma_reset()
128 mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[i], true); in mt7615_dma_reset()
130 mt76_for_each_q_rx(&dev->mt76, i) in mt7615_dma_reset()
131 mt76_queue_rx_reset(dev, i); in mt7615_dma_reset()
133 mt76_tx_status_check(&dev->mt76, true); in mt7615_dma_reset()
135 mt7615_dma_start(dev); in mt7615_dma_reset()
140 mt7615_hif_int_event_trigger(struct mt7615_dev *dev, u8 event) in mt7615_hif_int_event_trigger() argument
144 if (is_mt7663(&dev->mt76)) in mt7615_hif_int_event_trigger()
147 mt76_wr(dev, reg, event); in mt7615_hif_int_event_trigger()
149 mt7622_trigger_hif_int(dev, true); in mt7615_hif_int_event_trigger()
150 mt7622_trigger_hif_int(dev, false); in mt7615_hif_int_event_trigger()
154 mt7615_wait_reset_state(struct mt7615_dev *dev, u32 state) in mt7615_wait_reset_state() argument
158 ret = wait_event_timeout(dev->reset_wait, in mt7615_wait_reset_state()
159 (READ_ONCE(dev->reset_state) & state), in mt7615_wait_reset_state()
169 struct mt7615_dev *dev = mt7615_hw_dev(hw); in mt7615_update_vif_beacon() local
175 mt7615_mcu_add_beacon(dev, hw, vif, in mt7615_update_vif_beacon()
184 mt7615_update_beacons(struct mt7615_dev *dev) in mt7615_update_beacons() argument
186 struct mt76_phy *mphy_ext = dev->mt76.phys[MT_BAND1]; in mt7615_update_beacons()
188 ieee80211_iterate_active_interfaces(dev->mt76.hw, in mt7615_update_beacons()
190 mt7615_update_vif_beacon, dev->mt76.hw); in mt7615_update_beacons()
204 struct mt7615_dev *dev; in mt7615_mac_reset_work() local
208 dev = container_of(work, struct mt7615_dev, reset_work); in mt7615_mac_reset_work()
209 ext_phy = dev->mt76.phys[MT_BAND1]; in mt7615_mac_reset_work()
212 if (!(READ_ONCE(dev->reset_state) & MT_MCU_CMD_STOP_PDMA)) in mt7615_mac_reset_work()
215 ieee80211_stop_queues(mt76_hw(dev)); in mt7615_mac_reset_work()
219 set_bit(MT76_RESET, &dev->mphy.state); in mt7615_mac_reset_work()
220 set_bit(MT76_MCU_RESET, &dev->mphy.state); in mt7615_mac_reset_work()
221 wake_up(&dev->mt76.mcu.wait); in mt7615_mac_reset_work()
222 cancel_delayed_work_sync(&dev->mphy.mac_work); in mt7615_mac_reset_work()
223 del_timer_sync(&dev->phy.roc_timer); in mt7615_mac_reset_work()
224 cancel_work_sync(&dev->phy.roc_work); in mt7615_mac_reset_work()
233 mt76_txq_schedule_all(&dev->mphy); in mt7615_mac_reset_work()
237 mt76_worker_disable(&dev->mt76.tx_worker); in mt7615_mac_reset_work()
238 mt76_for_each_q_rx(&dev->mt76, i) in mt7615_mac_reset_work()
239 napi_disable(&dev->mt76.napi[i]); in mt7615_mac_reset_work()
240 napi_disable(&dev->mt76.tx_napi); in mt7615_mac_reset_work()
242 mt7615_mutex_acquire(dev); in mt7615_mac_reset_work()
244 mt7615_hif_int_event_trigger(dev, MT_MCU_INT_EVENT_PDMA_STOPPED); in mt7615_mac_reset_work()
246 if (mt7615_wait_reset_state(dev, MT_MCU_CMD_RESET_DONE)) { in mt7615_mac_reset_work()
247 mt7615_dma_reset(dev); in mt7615_mac_reset_work()
249 mt7615_tx_token_put(dev); in mt7615_mac_reset_work()
250 idr_init(&dev->mt76.token); in mt7615_mac_reset_work()
252 mt76_wr(dev, MT_WPDMA_MEM_RNG_ERR, 0); in mt7615_mac_reset_work()
254 mt7615_hif_int_event_trigger(dev, MT_MCU_INT_EVENT_PDMA_INIT); in mt7615_mac_reset_work()
255 mt7615_wait_reset_state(dev, MT_MCU_CMD_RECOVERY_DONE); in mt7615_mac_reset_work()
258 clear_bit(MT76_MCU_RESET, &dev->mphy.state); in mt7615_mac_reset_work()
259 clear_bit(MT76_RESET, &dev->mphy.state); in mt7615_mac_reset_work()
263 mt76_worker_enable(&dev->mt76.tx_worker); in mt7615_mac_reset_work()
266 napi_enable(&dev->mt76.tx_napi); in mt7615_mac_reset_work()
267 napi_schedule(&dev->mt76.tx_napi); in mt7615_mac_reset_work()
269 mt76_for_each_q_rx(&dev->mt76, i) { in mt7615_mac_reset_work()
270 napi_enable(&dev->mt76.napi[i]); in mt7615_mac_reset_work()
271 napi_schedule(&dev->mt76.napi[i]); in mt7615_mac_reset_work()
275 ieee80211_wake_queues(mt76_hw(dev)); in mt7615_mac_reset_work()
279 mt7615_hif_int_event_trigger(dev, MT_MCU_INT_EVENT_RESET_DONE); in mt7615_mac_reset_work()
280 mt7615_wait_reset_state(dev, MT_MCU_CMD_NORMAL_STATE); in mt7615_mac_reset_work()
282 mt7615_update_beacons(dev); in mt7615_mac_reset_work()
284 mt7615_mutex_release(dev); in mt7615_mac_reset_work()
286 timeout = mt7615_get_macwork_timeout(dev); in mt7615_mac_reset_work()
287 ieee80211_queue_delayed_work(mt76_hw(dev), &dev->mphy.mac_work, in mt7615_mac_reset_work()