Lines Matching +full:txrx +full:-
1 // SPDX-License-Identifier: ISC
34 if (!mt76_connac_pm_ref(&dev->mphy, &dev->pm)) {
35 queue_work(mdev->wq, &dev->pm.wake_work);
39 mt76_connac_pm_unref(&dev->mphy, &dev->pm);
55 struct mt76_sdio *sdio = &dev->sdio;
56 struct mt7663s_intr *irq_data = sdio->intr_data;
59 sdio_claim_host(sdio->func);
60 err = sdio_readsb(sdio->func, irq_data, MCR_WHISR, sizeof(*irq_data));
61 sdio_release_host(sdio->func);
66 intr->isr = irq_data->isr;
67 intr->rec_mb = irq_data->rec_mb;
68 intr->tx.wtqcr = irq_data->tx.wtqcr;
69 intr->rx.num = irq_data->rx.num;
71 intr->rx.len[i] = irq_data->rx.len[i];
107 ops = devm_kmemdup(&func->dev, &mt7615_ops, sizeof(mt7615_ops),
110 return -ENOMEM;
112 mdev = mt76_alloc_device(&func->dev, sizeof(*dev), ops, &drv_ops);
114 return -ENOMEM;
118 INIT_WORK(&dev->mcu_work, mt7663s_init_work);
119 dev->reg_map = mt7663_usb_sdio_reg_map;
120 dev->ops = ops;
131 mdev->rev = (mt76_rr(dev, MT_HW_CHIPID) << 16) |
133 dev_dbg(mdev->dev, "ASIC revision: %04x\n", mdev->rev);
135 mdev->sdio.parse_irq = mt7663s_parse_intr;
136 mdev->sdio.intr_data = devm_kmalloc(mdev->dev,
139 if (!mdev->sdio.intr_data) {
140 ret = -ENOMEM;
152 ret = mt76_worker_setup(mt76_hw(dev), &mdev->sdio.txrx_worker,
153 mt7663s_txrx_worker, "sdio-txrx");
157 sched_set_fifo_low(mdev->sdio.txrx_worker.task);
166 mt76s_deinit(&dev->mt76);
167 mt76_free_device(&dev->mt76);
176 if (!test_and_clear_bit(MT76_STATE_INITIALIZED, &dev->mphy.state))
179 ieee80211_unregister_hw(dev->mt76.hw);
180 mt76s_deinit(&dev->mt76);
181 mt76_free_device(&dev->mt76);
190 if (!test_bit(MT76_STATE_SUSPEND, &mdev->mphy.state) &&
194 err = mt76_connac_mcu_set_hif_suspend(&mdev->mt76, true, true);
205 mt76_worker_disable(&mdev->mt76.sdio.txrx_worker);
206 mt76_worker_disable(&mdev->mt76.sdio.status_worker);
207 mt76_worker_disable(&mdev->mt76.sdio.net_worker);
208 mt76_worker_disable(&mdev->mt76.sdio.stat_worker);
210 clear_bit(MT76_READING_STATS, &mdev->mphy.state);
212 mt76_tx_status_check(&mdev->mt76, true);
223 mt76_worker_enable(&mdev->mt76.sdio.txrx_worker);
224 mt76_worker_enable(&mdev->mt76.sdio.status_worker);
225 mt76_worker_enable(&mdev->mt76.sdio.net_worker);
231 if (!test_bit(MT76_STATE_SUSPEND, &mdev->mphy.state) &&
233 err = mt76_connac_mcu_set_hif_suspend(&mdev->mt76, false, true);