Lines Matching refs:mep
154 static void reset_gpd_list(struct mtu3_ep *mep) in reset_gpd_list() argument
156 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in reset_gpd_list()
165 int mtu3_gpd_ring_alloc(struct mtu3_ep *mep) in mtu3_gpd_ring_alloc() argument
168 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in mtu3_gpd_ring_alloc()
171 gpd = dma_pool_zalloc(mep->mtu->qmu_gpd_pool, GFP_ATOMIC, &ring->dma); in mtu3_gpd_ring_alloc()
180 void mtu3_gpd_ring_free(struct mtu3_ep *mep) in mtu3_gpd_ring_free() argument
182 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in mtu3_gpd_ring_free()
184 dma_pool_free(mep->mtu->qmu_gpd_pool, in mtu3_gpd_ring_free()
189 void mtu3_qmu_resume(struct mtu3_ep *mep) in mtu3_qmu_resume() argument
191 struct mtu3 *mtu = mep->mtu; in mtu3_qmu_resume()
193 int epnum = mep->epnum; in mtu3_qmu_resume()
196 offset = mep->is_in ? USB_QMU_TQCSR(epnum) : USB_QMU_RQCSR(epnum); in mtu3_qmu_resume()
238 int mtu3_prepare_transfer(struct mtu3_ep *mep) in mtu3_prepare_transfer() argument
240 return gpd_ring_empty(&mep->gpd_ring); in mtu3_prepare_transfer()
243 static int mtu3_prepare_tx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) in mtu3_prepare_tx_gpd() argument
246 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in mtu3_prepare_tx_gpd()
249 struct mtu3 *mtu = mep->mtu; in mtu3_prepare_tx_gpd()
261 dev_dbg(mep->mtu->dev, "TX-EP%d queue gpd=%p, enq=%p, qdma=%pad\n", in mtu3_prepare_tx_gpd()
262 mep->epnum, gpd, enq, &enq_dma); in mtu3_prepare_tx_gpd()
281 trace_mtu3_prepare_gpd(mep, gpd); in mtu3_prepare_tx_gpd()
286 static int mtu3_prepare_rx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) in mtu3_prepare_rx_gpd() argument
289 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in mtu3_prepare_rx_gpd()
292 struct mtu3 *mtu = mep->mtu; in mtu3_prepare_rx_gpd()
304 dev_dbg(mep->mtu->dev, "RX-EP%d queue gpd=%p, enq=%p, qdma=%pad\n", in mtu3_prepare_rx_gpd()
305 mep->epnum, gpd, enq, &enq_dma); in mtu3_prepare_rx_gpd()
316 trace_mtu3_prepare_gpd(mep, gpd); in mtu3_prepare_rx_gpd()
321 void mtu3_insert_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq) in mtu3_insert_gpd() argument
324 if (mep->is_in) in mtu3_insert_gpd()
325 mtu3_prepare_tx_gpd(mep, mreq); in mtu3_insert_gpd()
327 mtu3_prepare_rx_gpd(mep, mreq); in mtu3_insert_gpd()
330 int mtu3_qmu_start(struct mtu3_ep *mep) in mtu3_qmu_start() argument
332 struct mtu3 *mtu = mep->mtu; in mtu3_qmu_start()
334 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in mtu3_qmu_start()
335 u8 epnum = mep->epnum; in mtu3_qmu_start()
337 if (mep->is_in) { in mtu3_qmu_start()
374 void mtu3_qmu_stop(struct mtu3_ep *mep) in mtu3_qmu_stop() argument
376 struct mtu3 *mtu = mep->mtu; in mtu3_qmu_stop()
378 int epnum = mep->epnum; in mtu3_qmu_stop()
383 qcsr = mep->is_in ? USB_QMU_TQCSR(epnum) : USB_QMU_RQCSR(epnum); in mtu3_qmu_stop()
386 dev_dbg(mtu->dev, "%s's qmu is inactive now!\n", mep->name); in mtu3_qmu_stop()
391 if (mep->is_in) in mtu3_qmu_stop()
397 dev_err(mtu->dev, "stop %s's qmu failed\n", mep->name); in mtu3_qmu_stop()
402 if (mep->is_in) in mtu3_qmu_stop()
405 dev_dbg(mtu->dev, "%s's qmu stop now!\n", mep->name); in mtu3_qmu_stop()
408 void mtu3_qmu_flush(struct mtu3_ep *mep) in mtu3_qmu_flush() argument
411 dev_dbg(mep->mtu->dev, "%s flush QMU %s\n", __func__, in mtu3_qmu_flush()
412 ((mep->is_in) ? "TX" : "RX")); in mtu3_qmu_flush()
415 mtu3_qmu_stop(mep); in mtu3_qmu_flush()
416 reset_gpd_list(mep); in mtu3_qmu_flush()
426 struct mtu3_ep *mep = mtu->in_eps + epnum; in qmu_tx_zlp_error_handler() local
427 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in qmu_tx_zlp_error_handler()
435 mreq = next_request(mep); in qmu_tx_zlp_error_handler()
448 trace_mtu3_zlp_exp_gpd(mep, gpd_current); in qmu_tx_zlp_error_handler()
450 mtu3_clrbits(mbase, MU3D_EP_TXCR0(mep->epnum), TX_DMAREQEN); in qmu_tx_zlp_error_handler()
452 ret = readl_poll_timeout_atomic(mbase + MU3D_EP_TXCR0(mep->epnum), in qmu_tx_zlp_error_handler()
458 mtu3_setbits(mbase, MU3D_EP_TXCR0(mep->epnum), TX_TXPKTRDY); in qmu_tx_zlp_error_handler()
465 mtu3_setbits(mbase, MU3D_EP_TXCR0(mep->epnum), TX_DMAREQEN); in qmu_tx_zlp_error_handler()
466 mtu3_qmu_resume(mep); in qmu_tx_zlp_error_handler()
478 struct mtu3_ep *mep = mtu->in_eps + epnum; in qmu_done_tx() local
479 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in qmu_done_tx()
496 mreq = next_request(mep); in qmu_done_tx()
505 trace_mtu3_complete_gpd(mep, gpd); in qmu_done_tx()
506 mtu3_req_complete(mep, request, 0); in qmu_done_tx()
518 struct mtu3_ep *mep = mtu->out_eps + epnum; in qmu_done_rx() local
519 struct mtu3_gpd_ring *ring = &mep->gpd_ring; in qmu_done_rx()
535 mreq = next_request(mep); in qmu_done_rx()
544 trace_mtu3_complete_gpd(mep, gpd); in qmu_done_rx()
545 mtu3_req_complete(mep, req, 0); in qmu_done_rx()