cvc 266 drivers/dma/mediatek/mtk-cqdma.c static void mtk_cqdma_issue_vchan_pending(struct mtk_cqdma_vchan *cvc) cvc 269 drivers/dma/mediatek/mtk-cqdma.c struct mtk_cqdma_pchan *pc = cvc->pc; cvc 273 drivers/dma/mediatek/mtk-cqdma.c lockdep_assert_held(&cvc->vc.lock); cvc 276 drivers/dma/mediatek/mtk-cqdma.c list_for_each_entry_safe(vd, vd2, &cvc->vc.desc_issued, node) { cvc 299 drivers/dma/mediatek/mtk-cqdma.c static bool mtk_cqdma_is_vchan_active(struct mtk_cqdma_vchan *cvc) cvc 303 drivers/dma/mediatek/mtk-cqdma.c list_for_each_entry(cvd, &cvc->pc->queue, node) cvc 304 drivers/dma/mediatek/mtk-cqdma.c if (cvc == to_cqdma_vchan(cvd->ch)) cvc 316 drivers/dma/mediatek/mtk-cqdma.c struct mtk_cqdma_vchan *cvc; cvc 325 drivers/dma/mediatek/mtk-cqdma.c cvc = to_cqdma_vchan(cvd->ch); cvc 334 drivers/dma/mediatek/mtk-cqdma.c spin_lock(&cvc->vc.lock); cvc 342 drivers/dma/mediatek/mtk-cqdma.c if (cvc->issue_synchronize && !mtk_cqdma_is_vchan_active(cvc)) { cvc 343 drivers/dma/mediatek/mtk-cqdma.c complete(&cvc->issue_completion); cvc 344 drivers/dma/mediatek/mtk-cqdma.c cvc->issue_synchronize = false; cvc 348 drivers/dma/mediatek/mtk-cqdma.c spin_unlock(&cvc->vc.lock); cvc 422 drivers/dma/mediatek/mtk-cqdma.c struct mtk_cqdma_vchan *cvc = to_cqdma_vchan(c); cvc 426 drivers/dma/mediatek/mtk-cqdma.c spin_lock_irqsave(&cvc->pc->lock, flags); cvc 427 drivers/dma/mediatek/mtk-cqdma.c list_for_each_entry(vd, &cvc->pc->queue, node) cvc 429 drivers/dma/mediatek/mtk-cqdma.c spin_unlock_irqrestore(&cvc->pc->lock, flags); cvc 432 drivers/dma/mediatek/mtk-cqdma.c spin_unlock_irqrestore(&cvc->pc->lock, flags); cvc 434 drivers/dma/mediatek/mtk-cqdma.c list_for_each_entry(vd, &cvc->vc.desc_issued, node) cvc 445 drivers/dma/mediatek/mtk-cqdma.c struct mtk_cqdma_vchan *cvc = to_cqdma_vchan(c); cvc 456 drivers/dma/mediatek/mtk-cqdma.c spin_lock_irqsave(&cvc->vc.lock, flags); cvc 458 drivers/dma/mediatek/mtk-cqdma.c spin_unlock_irqrestore(&cvc->vc.lock, flags); cvc 472 drivers/dma/mediatek/mtk-cqdma.c struct mtk_cqdma_vchan *cvc = to_cqdma_vchan(c); cvc 477 drivers/dma/mediatek/mtk-cqdma.c spin_lock_irqsave(&cvc->pc->lock, pc_flags); cvc 478 drivers/dma/mediatek/mtk-cqdma.c spin_lock_irqsave(&cvc->vc.lock, vc_flags); cvc 480 drivers/dma/mediatek/mtk-cqdma.c if (vchan_issue_pending(&cvc->vc)) cvc 481 drivers/dma/mediatek/mtk-cqdma.c mtk_cqdma_issue_vchan_pending(cvc); cvc 483 drivers/dma/mediatek/mtk-cqdma.c spin_unlock_irqrestore(&cvc->vc.lock, vc_flags); cvc 484 drivers/dma/mediatek/mtk-cqdma.c spin_unlock_irqrestore(&cvc->pc->lock, pc_flags); cvc 573 drivers/dma/mediatek/mtk-cqdma.c struct mtk_cqdma_vchan *cvc = to_cqdma_vchan(c); cvc 579 drivers/dma/mediatek/mtk-cqdma.c spin_lock_irqsave(&cvc->pc->lock, pc_flags); cvc 580 drivers/dma/mediatek/mtk-cqdma.c spin_lock_irqsave(&cvc->vc.lock, vc_flags); cvc 583 drivers/dma/mediatek/mtk-cqdma.c if (mtk_cqdma_is_vchan_active(cvc)) { cvc 584 drivers/dma/mediatek/mtk-cqdma.c cvc->issue_synchronize = true; cvc 588 drivers/dma/mediatek/mtk-cqdma.c spin_unlock_irqrestore(&cvc->vc.lock, vc_flags); cvc 589 drivers/dma/mediatek/mtk-cqdma.c spin_unlock_irqrestore(&cvc->pc->lock, pc_flags); cvc 593 drivers/dma/mediatek/mtk-cqdma.c wait_for_completion(&cvc->issue_completion); cvc 596 drivers/dma/mediatek/mtk-cqdma.c vchan_synchronize(&cvc->vc); cvc 598 drivers/dma/mediatek/mtk-cqdma.c WARN_ONCE(!list_empty(&cvc->vc.desc_completed), cvc 660 drivers/dma/mediatek/mtk-cqdma.c struct mtk_cqdma_vchan *cvc = to_cqdma_vchan(c); cvc 666 drivers/dma/mediatek/mtk-cqdma.c spin_lock_irqsave(&cvc->pc->lock, flags); cvc 669 drivers/dma/mediatek/mtk-cqdma.c if (refcount_dec_and_test(&cvc->pc->refcnt)) { cvc 671 drivers/dma/mediatek/mtk-cqdma.c mtk_dma_set(cvc->pc, MTK_CQDMA_FLUSH, MTK_CQDMA_FLUSH_BIT); cvc 674 drivers/dma/mediatek/mtk-cqdma.c if (mtk_cqdma_poll_engine_done(cvc->pc, true) < 0) cvc 678 drivers/dma/mediatek/mtk-cqdma.c mtk_dma_clr(cvc->pc, MTK_CQDMA_FLUSH, MTK_CQDMA_FLUSH_BIT); cvc 679 drivers/dma/mediatek/mtk-cqdma.c mtk_dma_clr(cvc->pc, MTK_CQDMA_INT_FLAG, cvc 683 drivers/dma/mediatek/mtk-cqdma.c mtk_dma_clr(cvc->pc, MTK_CQDMA_INT_EN, MTK_CQDMA_INT_EN_BIT); cvc 686 drivers/dma/mediatek/mtk-cqdma.c spin_unlock_irqrestore(&cvc->pc->lock, flags);