Lines Matching defs:dpaa2_chan

31 	struct dpaa2_qdma_chan *dpaa2_chan = to_dpaa2_qdma_chan(chan);
32 struct dpaa2_qdma_engine *dpaa2_qdma = dpaa2_chan->qdma;
35 dpaa2_chan->fd_pool = dma_pool_create("fd_pool", dev,
38 if (!dpaa2_chan->fd_pool)
41 dpaa2_chan->fl_pool =
46 if (!dpaa2_chan->fl_pool)
49 dpaa2_chan->sdd_pool =
53 if (!dpaa2_chan->sdd_pool)
58 dma_pool_destroy(dpaa2_chan->fl_pool);
60 dma_pool_destroy(dpaa2_chan->fd_pool);
67 struct dpaa2_qdma_chan *dpaa2_chan = to_dpaa2_qdma_chan(chan);
68 struct dpaa2_qdma_engine *dpaa2_qdma = dpaa2_chan->qdma;
73 spin_lock_irqsave(&dpaa2_chan->vchan.lock, flags);
74 vchan_get_all_descriptors(&dpaa2_chan->vchan, &head);
75 spin_unlock_irqrestore(&dpaa2_chan->vchan.lock, flags);
77 vchan_dma_desc_free_list(&dpaa2_chan->vchan, &head);
79 dpaa2_dpdmai_free_comp(dpaa2_chan, &dpaa2_chan->comp_used);
80 dpaa2_dpdmai_free_comp(dpaa2_chan, &dpaa2_chan->comp_free);
82 dma_pool_destroy(dpaa2_chan->fd_pool);
83 dma_pool_destroy(dpaa2_chan->fl_pool);
84 dma_pool_destroy(dpaa2_chan->sdd_pool);
92 dpaa2_qdma_request_desc(struct dpaa2_qdma_chan *dpaa2_chan)
94 struct dpaa2_qdma_priv *qdma_priv = dpaa2_chan->qdma->priv;
99 spin_lock_irqsave(&dpaa2_chan->queue_lock, flags);
100 if (list_empty(&dpaa2_chan->comp_free)) {
101 spin_unlock_irqrestore(&dpaa2_chan->queue_lock, flags);
106 dma_pool_alloc(dpaa2_chan->fd_pool, GFP_NOWAIT,
112 dma_pool_alloc(dpaa2_chan->fl_pool, GFP_NOWAIT,
118 dma_pool_alloc(dpaa2_chan->sdd_pool, GFP_NOWAIT,
123 comp_temp->qchan = dpaa2_chan;
127 comp_temp = list_first_entry(&dpaa2_chan->comp_free,
130 spin_unlock_irqrestore(&dpaa2_chan->queue_lock, flags);
132 comp_temp->qchan = dpaa2_chan;
137 dma_pool_free(dpaa2_chan->fl_pool,
141 dma_pool_free(dpaa2_chan->fd_pool,
244 struct dpaa2_qdma_chan *dpaa2_chan = to_dpaa2_qdma_chan(chan);
250 dpaa2_qdma = dpaa2_chan->qdma;
251 dpaa2_comp = dpaa2_qdma_request_desc(dpaa2_chan);
269 return vchan_tx_prep(&dpaa2_chan->vchan, &dpaa2_comp->vdesc, flags);
274 struct dpaa2_qdma_chan *dpaa2_chan = to_dpaa2_qdma_chan(chan);
281 spin_lock_irqsave(&dpaa2_chan->queue_lock, flags);
282 spin_lock(&dpaa2_chan->vchan.lock);
283 if (vchan_issue_pending(&dpaa2_chan->vchan)) {
284 vdesc = vchan_next_desc(&dpaa2_chan->vchan);
292 list_add_tail(&dpaa2_comp->list, &dpaa2_chan->comp_used);
294 err = dpaa2_io_service_enqueue_fq(NULL, dpaa2_chan->fqid, fd);
298 &dpaa2_chan->comp_free);
302 spin_unlock(&dpaa2_chan->vchan.lock);
303 spin_unlock_irqrestore(&dpaa2_chan->queue_lock, flags);
639 struct dpaa2_qdma_chan *dpaa2_chan;
645 dpaa2_chan = &dpaa2_qdma->chans[i];
646 dpaa2_chan->qdma = dpaa2_qdma;
647 dpaa2_chan->fqid = priv->tx_fqid[i % num];
648 dpaa2_chan->vchan.desc_free = dpaa2_qdma_free_desc;
649 vchan_init(&dpaa2_chan->vchan, &dpaa2_qdma->dma_dev);
650 spin_lock_init(&dpaa2_chan->queue_lock);
651 INIT_LIST_HEAD(&dpaa2_chan->comp_used);
652 INIT_LIST_HEAD(&dpaa2_chan->comp_free);