Lines Matching refs:dev

33 static int mt7921e_init_reset(struct mt792x_dev *dev)  in mt7921e_init_reset()  argument
35 return mt792x_wpdma_reset(dev, true); in mt7921e_init_reset()
38 static void mt7921e_unregister_device(struct mt792x_dev *dev) in mt7921e_unregister_device() argument
41 struct mt76_connac_pm *pm = &dev->pm; in mt7921e_unregister_device()
43 cancel_work_sync(&dev->init_work); in mt7921e_unregister_device()
44 mt76_unregister_device(&dev->mt76); in mt7921e_unregister_device()
45 mt76_for_each_q_rx(&dev->mt76, i) in mt7921e_unregister_device()
46 napi_disable(&dev->mt76.napi[i]); in mt7921e_unregister_device()
49 cancel_work_sync(&dev->reset_work); in mt7921e_unregister_device()
51 mt76_connac2_tx_token_put(&dev->mt76); in mt7921e_unregister_device()
52 __mt792x_mcu_drv_pmctrl(dev); in mt7921e_unregister_device()
53 mt792x_dma_cleanup(dev); in mt7921e_unregister_device()
54 mt792x_wfsys_reset(dev); in mt7921e_unregister_device()
55 skb_queue_purge(&dev->mt76.mcu.res_q); in mt7921e_unregister_device()
57 tasklet_disable(&dev->mt76.irq_tasklet); in mt7921e_unregister_device()
60 static u32 __mt7921_reg_addr(struct mt792x_dev *dev, u32 addr) in __mt7921_reg_addr() argument
129 return mt7921_reg_map_l1(dev, addr); in __mt7921_reg_addr()
131 dev_err(dev->mt76.dev, "Access currently unsupported address %08x\n", in __mt7921_reg_addr()
139 struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76); in mt7921_rr() local
140 u32 addr = __mt7921_reg_addr(dev, offset); in mt7921_rr()
142 return dev->bus_ops->rr(mdev, addr); in mt7921_rr()
147 struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76); in mt7921_wr() local
148 u32 addr = __mt7921_reg_addr(dev, offset); in mt7921_wr()
150 dev->bus_ops->wr(mdev, addr, val); in mt7921_wr()
155 struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76); in mt7921_rmw() local
156 u32 addr = __mt7921_reg_addr(dev, offset); in mt7921_rmw()
158 return dev->bus_ops->rmw(mdev, addr, mask, val); in mt7921_rmw()
161 static int mt7921_dma_init(struct mt792x_dev *dev) in mt7921_dma_init() argument
165 mt76_dma_attach(&dev->mt76); in mt7921_dma_init()
167 ret = mt792x_dma_disable(dev, true); in mt7921_dma_init()
172 ret = mt76_connac_init_tx_queues(dev->phy.mt76, MT7921_TXQ_BAND0, in mt7921_dma_init()
178 mt76_wr(dev, MT_WFDMA0_TX_RING0_EXT_CTRL, 0x4); in mt7921_dma_init()
181 ret = mt76_init_mcu_queue(&dev->mt76, MT_MCUQ_WM, MT7921_TXQ_MCU_WM, in mt7921_dma_init()
187 ret = mt76_init_mcu_queue(&dev->mt76, MT_MCUQ_FWDL, MT7921_TXQ_FWDL, in mt7921_dma_init()
193 ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_MCU], in mt7921_dma_init()
201 ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_MCU_WA], in mt7921_dma_init()
209 ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_MAIN], in mt7921_dma_init()
215 ret = mt76_init_queues(dev, mt792x_poll_rx); in mt7921_dma_init()
219 netif_napi_add_tx(&dev->mt76.tx_napi_dev, &dev->mt76.tx_napi, in mt7921_dma_init()
221 napi_enable(&dev->mt76.tx_napi); in mt7921_dma_init()
223 return mt792x_dma_enable(dev); in mt7921_dma_init()
269 struct mt792x_dev *dev; in mt7921_pci_probe() local
294 ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); in mt7921_pci_probe()
301 ops = mt792x_get_mac80211_ops(&pdev->dev, &mt7921_ops, in mt7921_pci_probe()
308 mdev = mt76_alloc_device(&pdev->dev, sizeof(*dev), ops, &drv_ops); in mt7921_pci_probe()
316 dev = container_of(mdev, struct mt792x_dev, mt76); in mt7921_pci_probe()
317 dev->fw_features = features; in mt7921_pci_probe()
318 dev->hif_ops = &mt7921_pcie_ops; in mt7921_pci_probe()
319 dev->irq_map = &irq_map; in mt7921_pci_probe()
320 mt76_mmio_init(&dev->mt76, pcim_iomap_table(pdev)[0]); in mt7921_pci_probe()
321 tasklet_init(&mdev->irq_tasklet, mt792x_irq_tasklet, (unsigned long)dev); in mt7921_pci_probe()
323 dev->phy.dev = dev; in mt7921_pci_probe()
324 dev->phy.mt76 = &dev->mt76.phy; in mt7921_pci_probe()
325 dev->mt76.phy.priv = &dev->phy; in mt7921_pci_probe()
326 dev->bus_ops = dev->mt76.bus; in mt7921_pci_probe()
327 bus_ops = devm_kmemdup(dev->mt76.dev, dev->bus_ops, sizeof(*bus_ops), in mt7921_pci_probe()
337 dev->mt76.bus = bus_ops; in mt7921_pci_probe()
339 ret = mt792xe_mcu_fw_pmctrl(dev); in mt7921_pci_probe()
343 ret = __mt792xe_mcu_drv_pmctrl(dev); in mt7921_pci_probe()
347 mdev->rev = (mt7921_l1_rr(dev, MT_HW_CHIPID) << 16) | in mt7921_pci_probe()
348 (mt7921_l1_rr(dev, MT_HW_REV) & 0xff); in mt7921_pci_probe()
349 dev_info(mdev->dev, "ASIC revision: %04x\n", mdev->rev); in mt7921_pci_probe()
351 ret = mt792x_wfsys_reset(dev); in mt7921_pci_probe()
355 mt76_wr(dev, irq_map.host_irq_enable, 0); in mt7921_pci_probe()
357 mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff); in mt7921_pci_probe()
359 ret = devm_request_irq(mdev->dev, pdev->irq, mt792x_irq_handler, in mt7921_pci_probe()
360 IRQF_SHARED, KBUILD_MODNAME, dev); in mt7921_pci_probe()
364 ret = mt7921_dma_init(dev); in mt7921_pci_probe()
368 ret = mt7921_register_device(dev); in mt7921_pci_probe()
375 devm_free_irq(&pdev->dev, pdev->irq, dev); in mt7921_pci_probe()
377 mt76_free_device(&dev->mt76); in mt7921_pci_probe()
387 struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76); in mt7921_pci_remove() local
389 mt7921e_unregister_device(dev); in mt7921_pci_remove()
391 devm_free_irq(&pdev->dev, pdev->irq, dev); in mt7921_pci_remove()
392 mt76_free_device(&dev->mt76); in mt7921_pci_remove()
400 struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76); in mt7921_pci_suspend() local
401 struct mt76_connac_pm *pm = &dev->pm; in mt7921_pci_suspend()
405 flush_work(&dev->reset_work); in mt7921_pci_suspend()
409 err = mt792x_mcu_drv_pmctrl(dev); in mt7921_pci_suspend()
420 mt76_connac_mcu_set_deep_sleep(&dev->mt76, true); in mt7921_pci_suspend()
430 mt76_poll(dev, MT_WFDMA0_GLO_CFG, in mt7921_pci_suspend()
435 mt76_clear(dev, MT_WFDMA0_GLO_CFG, in mt7921_pci_suspend()
439 mt76_wr(dev, dev->irq_map->host_irq_enable, 0); in mt7921_pci_suspend()
440 mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0x0); in mt7921_pci_suspend()
444 err = mt792x_mcu_fw_pmctrl(dev); in mt7921_pci_suspend()
457 mt76_connac_mcu_set_deep_sleep(&dev->mt76, false); in mt7921_pci_suspend()
465 mt792x_reset(&dev->mt76); in mt7921_pci_suspend()
474 struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76); in mt7921_pci_resume() local
475 struct mt76_connac_pm *pm = &dev->pm; in mt7921_pci_resume()
478 err = mt792x_mcu_drv_pmctrl(dev); in mt7921_pci_resume()
482 mt792x_wpdma_reinit_cond(dev); in mt7921_pci_resume()
485 mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff); in mt7921_pci_resume()
486 mt76_connac_irq_enable(&dev->mt76, in mt7921_pci_resume()
487 dev->irq_map->tx.all_complete_mask | in mt7921_pci_resume()
489 mt76_set(dev, MT_MCU2HOST_SW_INT_ENA, MT_MCU_CMD_WAKE_RX_PCIE); in mt7921_pci_resume()
492 mt76_set(dev, MT_WFDMA0_GLO_CFG, in mt7921_pci_resume()
508 mt76_connac_mcu_set_deep_sleep(&dev->mt76, false); in mt7921_pci_resume()
515 mt792x_reset(&dev->mt76); in mt7921_pci_resume()