Lines Matching +full:txrx +full:-
1 // SPDX-License-Identifier: ISC
34 if (!mt76_connac_pm_ref(&dev->mphy, &dev->pm)) { in mt7663s_txrx_worker()
35 queue_work(mdev->wq, &dev->pm.wake_work); in mt7663s_txrx_worker()
39 mt76_connac_pm_unref(&dev->mphy, &dev->pm); in mt7663s_txrx_worker()
55 struct mt76_sdio *sdio = &dev->sdio; in mt7663s_parse_intr()
56 struct mt7663s_intr *irq_data = sdio->intr_data; in mt7663s_parse_intr()
59 sdio_claim_host(sdio->func); in mt7663s_parse_intr()
60 err = sdio_readsb(sdio->func, irq_data, MCR_WHISR, sizeof(*irq_data)); in mt7663s_parse_intr()
61 sdio_release_host(sdio->func); in mt7663s_parse_intr()
66 intr->isr = irq_data->isr; in mt7663s_parse_intr()
67 intr->rec_mb = irq_data->rec_mb; in mt7663s_parse_intr()
68 intr->tx.wtqcr = irq_data->tx.wtqcr; in mt7663s_parse_intr()
69 intr->rx.num = irq_data->rx.num; in mt7663s_parse_intr()
71 intr->rx.len[i] = irq_data->rx.len[i]; in mt7663s_parse_intr()
106 ops = devm_kmemdup(&func->dev, &mt7615_ops, sizeof(mt7615_ops), in mt7663s_probe()
109 return -ENOMEM; in mt7663s_probe()
111 mdev = mt76_alloc_device(&func->dev, sizeof(*dev), ops, &drv_ops); in mt7663s_probe()
113 return -ENOMEM; in mt7663s_probe()
117 INIT_WORK(&dev->mcu_work, mt7663s_init_work); in mt7663s_probe()
118 dev->reg_map = mt7663_usb_sdio_reg_map; in mt7663s_probe()
119 dev->ops = ops; in mt7663s_probe()
130 mdev->rev = (mt76_rr(dev, MT_HW_CHIPID) << 16) | in mt7663s_probe()
132 dev_dbg(mdev->dev, "ASIC revision: %04x\n", mdev->rev); in mt7663s_probe()
134 mdev->sdio.parse_irq = mt7663s_parse_intr; in mt7663s_probe()
135 mdev->sdio.intr_data = devm_kmalloc(mdev->dev, in mt7663s_probe()
138 if (!mdev->sdio.intr_data) { in mt7663s_probe()
139 ret = -ENOMEM; in mt7663s_probe()
151 ret = mt76_worker_setup(mt76_hw(dev), &mdev->sdio.txrx_worker, in mt7663s_probe()
152 mt7663s_txrx_worker, "sdio-txrx"); in mt7663s_probe()
156 sched_set_fifo_low(mdev->sdio.txrx_worker.task); in mt7663s_probe()
165 mt76s_deinit(&dev->mt76); in mt7663s_probe()
166 mt76_free_device(&dev->mt76); in mt7663s_probe()
175 if (!test_and_clear_bit(MT76_STATE_INITIALIZED, &dev->mphy.state)) in mt7663s_remove()
178 ieee80211_unregister_hw(dev->mt76.hw); in mt7663s_remove()
179 mt76s_deinit(&dev->mt76); in mt7663s_remove()
180 mt76_free_device(&dev->mt76); in mt7663s_remove()
189 if (!test_bit(MT76_STATE_SUSPEND, &mdev->mphy.state) && in mt7663s_suspend()
193 err = mt76_connac_mcu_set_hif_suspend(&mdev->mt76, true); in mt7663s_suspend()
204 mt76_worker_disable(&mdev->mt76.sdio.txrx_worker); in mt7663s_suspend()
205 mt76_worker_disable(&mdev->mt76.sdio.status_worker); in mt7663s_suspend()
206 mt76_worker_disable(&mdev->mt76.sdio.net_worker); in mt7663s_suspend()
208 cancel_work_sync(&mdev->mt76.sdio.stat_work); in mt7663s_suspend()
209 clear_bit(MT76_READING_STATS, &mdev->mphy.state); in mt7663s_suspend()
211 mt76_tx_status_check(&mdev->mt76, true); in mt7663s_suspend()
222 mt76_worker_enable(&mdev->mt76.sdio.txrx_worker); in mt7663s_resume()
223 mt76_worker_enable(&mdev->mt76.sdio.status_worker); in mt7663s_resume()
224 mt76_worker_enable(&mdev->mt76.sdio.net_worker); in mt7663s_resume()
230 if (!test_bit(MT76_STATE_SUSPEND, &mdev->mphy.state) && in mt7663s_resume()
232 err = mt76_connac_mcu_set_hif_suspend(&mdev->mt76, false); in mt7663s_resume()