Lines Matching full:wed
579 static int mt7915_mmio_wed_offload_enable(struct mtk_wed_device *wed) in mt7915_mmio_wed_offload_enable() argument
583 dev = container_of(wed, struct mt7915_dev, mt76.mmio.wed); in mt7915_mmio_wed_offload_enable()
586 dev->mt76.token_size = wed->wlan.token_start; in mt7915_mmio_wed_offload_enable()
593 static void mt7915_mmio_wed_offload_disable(struct mtk_wed_device *wed) in mt7915_mmio_wed_offload_disable() argument
597 dev = container_of(wed, struct mt7915_dev, mt76.mmio.wed); in mt7915_mmio_wed_offload_disable()
604 static void mt7915_mmio_wed_release_rx_buf(struct mtk_wed_device *wed) in mt7915_mmio_wed_release_rx_buf() argument
609 dev = container_of(wed, struct mt7915_dev, mt76.mmio.wed); in mt7915_mmio_wed_release_rx_buf()
626 static u32 mt7915_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size) in mt7915_mmio_wed_init_rx_buf() argument
628 struct mtk_rxbm_desc *desc = wed->rx_buf_ring.desc; in mt7915_mmio_wed_init_rx_buf()
634 dev = container_of(wed, struct mt7915_dev, mt76.mmio.wed); in mt7915_mmio_wed_init_rx_buf()
674 mt7915_mmio_wed_release_rx_buf(wed); in mt7915_mmio_wed_init_rx_buf()
678 static void mt7915_mmio_wed_update_rx_stats(struct mtk_wed_device *wed, in mt7915_mmio_wed_update_rx_stats() argument
685 dev = container_of(wed, struct mt7915_dev, mt76.mmio.wed); in mt7915_mmio_wed_update_rx_stats()
703 static int mt7915_mmio_wed_reset(struct mtk_wed_device *wed) in mt7915_mmio_wed_reset() argument
705 struct mt76_dev *mdev = container_of(wed, struct mt76_dev, mmio.wed); in mt7915_mmio_wed_reset()
722 dev_err(mdev->dev, "wed reset timeout\n"); in mt7915_mmio_wed_reset()
732 static void mt7915_mmio_wed_reset_complete(struct mtk_wed_device *wed) in mt7915_mmio_wed_reset_complete() argument
734 struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed); in mt7915_mmio_wed_reset_complete()
744 struct mtk_wed_device *wed = &dev->mt76.mmio.wed; in mt7915_mmio_wed_init() local
753 wed->wlan.pci_dev = pci_dev; in mt7915_mmio_wed_init()
754 wed->wlan.bus_type = MTK_WED_BUS_PCIE; in mt7915_mmio_wed_init()
755 wed->wlan.base = devm_ioremap(dev->mt76.dev, in mt7915_mmio_wed_init()
758 wed->wlan.phy_base = pci_resource_start(pci_dev, 0); in mt7915_mmio_wed_init()
759 wed->wlan.wpdma_int = pci_resource_start(pci_dev, 0) + in mt7915_mmio_wed_init()
761 wed->wlan.wpdma_mask = pci_resource_start(pci_dev, 0) + in mt7915_mmio_wed_init()
763 wed->wlan.wpdma_phys = pci_resource_start(pci_dev, 0) + in mt7915_mmio_wed_init()
765 wed->wlan.wpdma_tx = pci_resource_start(pci_dev, 0) + in mt7915_mmio_wed_init()
767 wed->wlan.wpdma_txfree = pci_resource_start(pci_dev, 0) + in mt7915_mmio_wed_init()
769 wed->wlan.wpdma_rx_glo = pci_resource_start(pci_dev, 0) + in mt7915_mmio_wed_init()
771 wed->wlan.wpdma_rx = pci_resource_start(pci_dev, 0) + in mt7915_mmio_wed_init()
781 wed->wlan.platform_dev = plat_dev; in mt7915_mmio_wed_init()
782 wed->wlan.bus_type = MTK_WED_BUS_AXI; in mt7915_mmio_wed_init()
783 wed->wlan.base = devm_ioremap(dev->mt76.dev, res->start, in mt7915_mmio_wed_init()
785 wed->wlan.phy_base = res->start; in mt7915_mmio_wed_init()
786 wed->wlan.wpdma_int = res->start + MT_INT_SOURCE_CSR; in mt7915_mmio_wed_init()
787 wed->wlan.wpdma_mask = res->start + MT_INT_MASK_CSR; in mt7915_mmio_wed_init()
788 wed->wlan.wpdma_tx = res->start + MT_TXQ_WED_RING_BASE; in mt7915_mmio_wed_init()
789 wed->wlan.wpdma_txfree = res->start + MT_RXQ_WED_RING_BASE; in mt7915_mmio_wed_init()
790 wed->wlan.wpdma_rx_glo = res->start + MT_WPDMA_GLO_CFG; in mt7915_mmio_wed_init()
791 wed->wlan.wpdma_rx = res->start + MT_RXQ_WED_DATA_RING_BASE; in mt7915_mmio_wed_init()
793 wed->wlan.nbuf = MT7915_HW_TOKEN_SIZE; in mt7915_mmio_wed_init()
794 wed->wlan.tx_tbit[0] = is_mt7915(&dev->mt76) ? 4 : 30; in mt7915_mmio_wed_init()
795 wed->wlan.tx_tbit[1] = is_mt7915(&dev->mt76) ? 5 : 31; in mt7915_mmio_wed_init()
796 wed->wlan.txfree_tbit = is_mt798x(&dev->mt76) ? 2 : 1; in mt7915_mmio_wed_init()
797 wed->wlan.token_start = MT7915_TOKEN_SIZE - wed->wlan.nbuf; in mt7915_mmio_wed_init()
798 wed->wlan.wcid_512 = !is_mt7915(&dev->mt76); in mt7915_mmio_wed_init()
800 wed->wlan.rx_nbuf = 65536; in mt7915_mmio_wed_init()
801 wed->wlan.rx_npkt = MT7915_WED_RX_TOKEN_SIZE; in mt7915_mmio_wed_init()
802 wed->wlan.rx_size = SKB_WITH_OVERHEAD(MT_RX_BUF_SIZE); in mt7915_mmio_wed_init()
804 wed->wlan.rx_tbit[0] = 16; in mt7915_mmio_wed_init()
805 wed->wlan.rx_tbit[1] = 17; in mt7915_mmio_wed_init()
807 wed->wlan.rx_tbit[0] = 22; in mt7915_mmio_wed_init()
808 wed->wlan.rx_tbit[1] = 23; in mt7915_mmio_wed_init()
810 wed->wlan.rx_tbit[0] = 18; in mt7915_mmio_wed_init()
811 wed->wlan.rx_tbit[1] = 19; in mt7915_mmio_wed_init()
814 wed->wlan.init_buf = mt7915_wed_init_buf; in mt7915_mmio_wed_init()
815 wed->wlan.offload_enable = mt7915_mmio_wed_offload_enable; in mt7915_mmio_wed_init()
816 wed->wlan.offload_disable = mt7915_mmio_wed_offload_disable; in mt7915_mmio_wed_init()
817 wed->wlan.init_rx_buf = mt7915_mmio_wed_init_rx_buf; in mt7915_mmio_wed_init()
818 wed->wlan.release_rx_buf = mt7915_mmio_wed_release_rx_buf; in mt7915_mmio_wed_init()
819 wed->wlan.update_wo_rx_stats = mt7915_mmio_wed_update_rx_stats; in mt7915_mmio_wed_init()
820 wed->wlan.reset = mt7915_mmio_wed_reset; in mt7915_mmio_wed_init()
821 wed->wlan.reset_complete = mt7915_mmio_wed_reset_complete; in mt7915_mmio_wed_init()
823 dev->mt76.rx_token_size = wed->wlan.rx_npkt; in mt7915_mmio_wed_init()
825 if (mtk_wed_device_attach(wed)) in mt7915_mmio_wed_init()
828 *irq = wed->irq; in mt7915_mmio_wed_init()
829 dev->mt76.dma_dev = wed->dev; in mt7915_mmio_wed_init()
831 ret = dma_set_mask(wed->dev, DMA_BIT_MASK(32)); in mt7915_mmio_wed_init()
907 if (mtk_wed_device_active(&mdev->mmio.wed)) in mt7915_dual_hif_set_irq_mask()
908 mtk_wed_device_irq_set_mask(&mdev->mmio.wed, in mt7915_dual_hif_set_irq_mask()
930 struct mtk_wed_device *wed = &dev->mt76.mmio.wed; in mt7915_irq_tasklet() local
933 if (mtk_wed_device_active(wed)) { in mt7915_irq_tasklet()
934 mtk_wed_device_irq_set_mask(wed, 0); in mt7915_irq_tasklet()
937 intr = mtk_wed_device_irq_get(wed, dev->mt76.mmio.irqmask); in mt7915_irq_tasklet()
1000 struct mtk_wed_device *wed = &dev->mt76.mmio.wed; in mt7915_irq_handler() local
1002 if (mtk_wed_device_active(wed)) in mt7915_irq_handler()
1003 mtk_wed_device_irq_set_mask(wed, 0); in mt7915_irq_handler()