Lines Matching defs:cvd
231 struct mtk_cqdma_vdesc *cvd)
235 dev_err(cqdma2dev(to_cqdma_dev(cvd->ch)), "cqdma wait transaction timeout\n");
240 dev_err(cqdma2dev(to_cqdma_dev(cvd->ch)), "cqdma warm reset timeout\n");
243 mtk_dma_set(pc, MTK_CQDMA_SRC, cvd->src & MTK_CQDMA_ADDR_LIMIT);
245 mtk_dma_set(pc, MTK_CQDMA_SRC2, cvd->src >> MTK_CQDMA_ADDR2_SHFIT);
251 mtk_dma_set(pc, MTK_CQDMA_DST, cvd->dest & MTK_CQDMA_ADDR_LIMIT);
253 mtk_dma_set(pc, MTK_CQDMA_DST2, cvd->dest >> MTK_CQDMA_ADDR2_SHFIT);
259 mtk_dma_set(pc, MTK_CQDMA_LEN1, cvd->len);
269 struct mtk_cqdma_vdesc *cvd;
280 cvd = to_cqdma_vdesc(vd);
283 list_add_tail(&cvd->node, &pc->queue);
287 mtk_cqdma_start(pc, cvd);
300 struct mtk_cqdma_vdesc *cvd;
302 list_for_each_entry(cvd, &cvc->pc->queue, node)
303 if (cvc == to_cqdma_vchan(cvd->ch))
316 struct mtk_cqdma_vdesc *cvd, *ret = NULL;
319 cvd = list_first_entry_or_null(&pc->queue,
321 if (unlikely(!cvd || !cvd->parent))
324 cvc = to_cqdma_vchan(cvd->ch);
325 ret = cvd;
328 cvd->parent->residue -= cvd->len;
331 list_del(&cvd->node);
336 if (!cvd->parent->residue) {
338 vchan_cookie_complete(&cvd->parent->vd);
350 cvd = list_first_entry_or_null(&pc->queue,
352 if (cvd)
353 mtk_cqdma_start(pc, cvd);
361 struct mtk_cqdma_vdesc *cvd = NULL;
366 cvd = mtk_cqdma_consume_work_queue(pc);
370 if (cvd) {
371 dma_run_dependencies(&cvd->vd.tx);
377 if (cvd->parent != cvd)
378 kfree(cvd);
445 struct mtk_cqdma_vdesc *cvd;
460 cvd = to_cqdma_vdesc(vd);
461 bytes = cvd->residue;
490 struct mtk_cqdma_vdesc **cvd;
506 cvd = kcalloc(nr_vd, sizeof(*cvd), GFP_NOWAIT);
507 if (!cvd)
511 cvd[i] = kzalloc(sizeof(*cvd[i]), GFP_NOWAIT);
512 if (!cvd[i]) {
514 kfree(cvd[i - 1]);
519 cvd[i]->ch = c;
523 cvd[i]->len = tlen;
524 cvd[i]->src = src;
525 cvd[i]->dest = dest;
528 tx = vchan_tx_prep(to_virt_chan(c), &cvd[i]->vd, flags);
532 cvd[0]->residue = len;
535 cvd[i]->residue = tlen;
538 cvd[i]->parent = cvd[0];
547 return &cvd[0]->vd.tx;