Lines Matching refs:epnum
73 static dma_addr_t read_txq_cur_addr(void __iomem *mbase, u8 epnum)
78 txcpr = mtu3_readl(mbase, USB_QMU_TQCPR(epnum));
79 txhiar = mtu3_readl(mbase, USB_QMU_TQHIAR(epnum));
84 static dma_addr_t read_rxq_cur_addr(void __iomem *mbase, u8 epnum)
89 rxcpr = mtu3_readl(mbase, USB_QMU_RQCPR(epnum));
90 rxhiar = mtu3_readl(mbase, USB_QMU_RQHIAR(epnum));
95 static void write_txq_start_addr(void __iomem *mbase, u8 epnum, dma_addr_t dma)
99 mtu3_writel(mbase, USB_QMU_TQSAR(epnum),
101 tqhiar = mtu3_readl(mbase, USB_QMU_TQHIAR(epnum));
104 mtu3_writel(mbase, USB_QMU_TQHIAR(epnum), tqhiar);
107 static void write_rxq_start_addr(void __iomem *mbase, u8 epnum, dma_addr_t dma)
111 mtu3_writel(mbase, USB_QMU_RQSAR(epnum),
113 rqhiar = mtu3_readl(mbase, USB_QMU_RQHIAR(epnum));
116 mtu3_writel(mbase, USB_QMU_RQHIAR(epnum), rqhiar);
193 int epnum = mep->epnum;
196 offset = mep->is_in ? USB_QMU_TQCSR(epnum) : USB_QMU_RQCSR(epnum);
263 mep->epnum, gpd, enq, &enq_dma);
306 mep->epnum, gpd, enq, &enq_dma);
336 u8 epnum = mep->epnum;
340 write_txq_start_addr(mbase, epnum, ring->dma);
341 mtu3_setbits(mbase, MU3D_EP_TXCR0(epnum), TX_DMAREQEN);
343 mtu3_setbits(mbase, U3D_QCR1, QMU_TX_ZLP(epnum));
345 QMU_TX_LEN_ERR(epnum) | QMU_TX_CS_ERR(epnum));
347 if (mtu3_readl(mbase, USB_QMU_TQCSR(epnum)) & QMU_Q_ACTIVE) {
348 dev_warn(mtu->dev, "Tx %d Active Now!\n", epnum);
351 mtu3_writel(mbase, USB_QMU_TQCSR(epnum), QMU_Q_START);
354 write_rxq_start_addr(mbase, epnum, ring->dma);
355 mtu3_setbits(mbase, MU3D_EP_RXCR0(epnum), RX_DMAREQEN);
357 mtu3_clrbits(mbase, U3D_QCR3, QMU_RX_ZLP(epnum));
359 mtu3_setbits(mbase, U3D_QCR3, QMU_RX_COZ(epnum));
361 QMU_RX_LEN_ERR(epnum) | QMU_RX_CS_ERR(epnum));
362 mtu3_writel(mbase, U3D_RQERRIESR1, QMU_RX_ZLP_ERR(epnum));
364 if (mtu3_readl(mbase, USB_QMU_RQCSR(epnum)) & QMU_Q_ACTIVE) {
365 dev_warn(mtu->dev, "Rx %d Active Now!\n", epnum);
368 mtu3_writel(mbase, USB_QMU_RQCSR(epnum), QMU_Q_START);
379 int epnum = mep->epnum;
384 qcsr = mep->is_in ? USB_QMU_TQCSR(epnum) : USB_QMU_RQCSR(epnum);
393 mtu3_setbits(mbase, MU3D_EP_TXCR0(epnum), TX_FLUSHFIFO);
404 mtu3_setbits(mbase, MU3D_EP_TXCR0(epnum), TX_FLUSHFIFO);
425 static void qmu_tx_zlp_error_handler(struct mtu3 *mtu, u8 epnum)
427 struct mtu3_ep *mep = mtu->in_eps + epnum;
440 cur_gpd_dma = read_txq_cur_addr(mbase, epnum);
444 dev_err(mtu->dev, "TX EP%d buffer length error(!=0)\n", epnum);
451 mtu3_clrbits(mbase, MU3D_EP_TXCR0(mep->epnum), TX_DMAREQEN);
453 ret = readl_poll_timeout_atomic(mbase + MU3D_EP_TXCR0(mep->epnum),
459 mtu3_setbits(mbase, MU3D_EP_TXCR0(mep->epnum), TX_TXPKTRDY);
466 mtu3_setbits(mbase, MU3D_EP_TXCR0(mep->epnum), TX_DMAREQEN);
474 static void qmu_error_rx(struct mtu3 *mtu, u8 epnum)
476 struct mtu3_ep *mep = mtu->out_eps + epnum;
482 cur_gpd_dma = read_rxq_cur_addr(mtu->mac_base, epnum);
498 __func__, epnum, gpd_current, mreq);
508 static void qmu_done_tx(struct mtu3 *mtu, u8 epnum)
510 struct mtu3_ep *mep = mtu->in_eps + epnum;
520 cur_gpd_dma = read_txq_cur_addr(mbase, epnum);
524 __func__, epnum, gpd, gpd_current, ring->enqueue);
544 __func__, epnum, ring->dequeue, ring->enqueue);
548 static void qmu_done_rx(struct mtu3 *mtu, u8 epnum)
550 struct mtu3_ep *mep = mtu->out_eps + epnum;
559 cur_gpd_dma = read_rxq_cur_addr(mbase, epnum);
563 __func__, epnum, gpd, gpd_current, ring->enqueue);
583 __func__, epnum, ring->dequeue, ring->enqueue);