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);