Lines Matching refs:fdesc

84 	fchan->fdesc = to_st_fdma_desc(vdesc);  in st_fdma_xfer_desc()
85 nbytes = fchan->fdesc->node[0].desc->nbytes; in st_fdma_xfer_desc()
87 ch_cmd = fchan->fdesc->node[0].pdesc | FDMA_CH_CMD_STA_START; in st_fdma_xfer_desc()
143 if (fchan->fdesc) { in st_fdma_irq_handler()
144 if (!fchan->fdesc->iscyclic) { in st_fdma_irq_handler()
145 list_del(&fchan->fdesc->vdesc.node); in st_fdma_irq_handler()
146 vchan_cookie_complete(&fchan->fdesc->vdesc); in st_fdma_irq_handler()
147 fchan->fdesc = NULL; in st_fdma_irq_handler()
150 vchan_cyclic_callback(&fchan->fdesc->vdesc); in st_fdma_irq_handler()
154 if (!fchan->fdesc) in st_fdma_irq_handler()
228 struct st_fdma_desc *fdesc; in st_fdma_free_desc() local
231 fdesc = to_st_fdma_desc(vdesc); in st_fdma_free_desc()
232 for (i = 0; i < fdesc->n_nodes; i++) in st_fdma_free_desc()
233 dma_pool_free(fdesc->fchan->node_pool, fdesc->node[i].desc, in st_fdma_free_desc()
234 fdesc->node[i].pdesc); in st_fdma_free_desc()
235 kfree(fdesc); in st_fdma_free_desc()
241 struct st_fdma_desc *fdesc; in st_fdma_alloc_desc() local
244 fdesc = kzalloc_flex(*fdesc, node, sg_len, GFP_NOWAIT); in st_fdma_alloc_desc()
245 if (!fdesc) in st_fdma_alloc_desc()
248 fdesc->fchan = fchan; in st_fdma_alloc_desc()
249 fdesc->n_nodes = sg_len; in st_fdma_alloc_desc()
251 fdesc->node[i].desc = dma_pool_alloc(fchan->node_pool, in st_fdma_alloc_desc()
252 GFP_NOWAIT, &fdesc->node[i].pdesc); in st_fdma_alloc_desc()
253 if (!fdesc->node[i].desc) in st_fdma_alloc_desc()
256 return fdesc; in st_fdma_alloc_desc()
260 dma_pool_free(fchan->node_pool, fdesc->node[i].desc, in st_fdma_alloc_desc()
261 fdesc->node[i].pdesc); in st_fdma_alloc_desc()
262 kfree(fdesc); in st_fdma_alloc_desc()
301 fchan->fdesc = NULL; in st_fdma_free_chan_res()
316 struct st_fdma_desc *fdesc; in st_fdma_prep_dma_memcpy() local
325 fdesc = st_fdma_alloc_desc(fchan, 1); in st_fdma_prep_dma_memcpy()
326 if (!fdesc) { in st_fdma_prep_dma_memcpy()
331 hw_node = fdesc->node[0].desc; in st_fdma_prep_dma_memcpy()
344 return vchan_tx_prep(&fchan->vchan, &fdesc->vdesc, flags); in st_fdma_prep_dma_memcpy()
454 struct st_fdma_desc *fdesc; in st_fdma_prep_dma_cyclic() local
476 fdesc = st_fdma_alloc_desc(fchan, sg_len); in st_fdma_prep_dma_cyclic()
477 if (!fdesc) { in st_fdma_prep_dma_cyclic()
482 fdesc->iscyclic = true; in st_fdma_prep_dma_cyclic()
485 struct st_fdma_hw_node *hw_node = fdesc->node[i].desc; in st_fdma_prep_dma_cyclic()
487 hw_node->next = fdesc->node[(i + 1) % sg_len].pdesc; in st_fdma_prep_dma_cyclic()
504 return vchan_tx_prep(&fchan->vchan, &fdesc->vdesc, flags); in st_fdma_prep_dma_cyclic()
513 struct st_fdma_desc *fdesc; in st_fdma_prep_slave_sg() local
525 fdesc = st_fdma_alloc_desc(fchan, sg_len); in st_fdma_prep_slave_sg()
526 if (!fdesc) { in st_fdma_prep_slave_sg()
531 fdesc->iscyclic = false; in st_fdma_prep_slave_sg()
534 hw_node = fdesc->node[i].desc; in st_fdma_prep_slave_sg()
536 hw_node->next = fdesc->node[(i + 1) % sg_len].pdesc; in st_fdma_prep_slave_sg()
553 return vchan_tx_prep(&fchan->vchan, &fdesc->vdesc, flags); in st_fdma_prep_slave_sg()
560 struct st_fdma_desc *fdesc = fchan->fdesc; in st_fdma_desc_residue() local
570 for (i = fchan->fdesc->n_nodes - 1 ; i >= 0; i--) { in st_fdma_desc_residue()
571 if (cur_addr == fdesc->node[i].pdesc) { in st_fdma_desc_residue()
575 residue += fdesc->node[i].desc->nbytes; in st_fdma_desc_residue()
596 if (fchan->fdesc && cookie == fchan->fdesc->vdesc.tx.cookie) in st_fdma_tx_status()
615 if (vchan_issue_pending(&fchan->vchan) && !fchan->fdesc) in st_fdma_issue_pending()
631 if (fchan->fdesc) in st_fdma_pause()
648 if (fchan->fdesc) { in st_fdma_resume()
670 fchan->fdesc = NULL; in st_fdma_terminate_all()