Lines Matching refs:fsl_desc

282 	struct fsl_edma_desc *fsl_desc;  in fsl_edma_free_desc()  local
285 fsl_desc = to_fsl_edma_desc(vdesc); in fsl_edma_free_desc()
286 for (i = 0; i < fsl_desc->n_tcds; i++) in fsl_edma_free_desc()
287 dma_pool_free(fsl_desc->echan->tcd_pool, fsl_desc->tcd[i].vtcd, in fsl_edma_free_desc()
288 fsl_desc->tcd[i].ptcd); in fsl_edma_free_desc()
289 kfree(fsl_desc); in fsl_edma_free_desc()
505 struct fsl_edma_desc *fsl_desc; in fsl_edma_alloc_desc() local
508 fsl_desc = kzalloc(sizeof(*fsl_desc) + sizeof(struct fsl_edma_sw_tcd) * sg_len, in fsl_edma_alloc_desc()
510 if (!fsl_desc) in fsl_edma_alloc_desc()
513 fsl_desc->echan = fsl_chan; in fsl_edma_alloc_desc()
514 fsl_desc->n_tcds = sg_len; in fsl_edma_alloc_desc()
516 fsl_desc->tcd[i].vtcd = dma_pool_alloc(fsl_chan->tcd_pool, in fsl_edma_alloc_desc()
517 GFP_NOWAIT, &fsl_desc->tcd[i].ptcd); in fsl_edma_alloc_desc()
518 if (!fsl_desc->tcd[i].vtcd) in fsl_edma_alloc_desc()
521 return fsl_desc; in fsl_edma_alloc_desc()
525 dma_pool_free(fsl_chan->tcd_pool, fsl_desc->tcd[i].vtcd, in fsl_edma_alloc_desc()
526 fsl_desc->tcd[i].ptcd); in fsl_edma_alloc_desc()
527 kfree(fsl_desc); in fsl_edma_alloc_desc()
537 struct fsl_edma_desc *fsl_desc; in fsl_edma_prep_dma_cyclic() local
547 fsl_desc = fsl_edma_alloc_desc(fsl_chan, sg_len); in fsl_edma_prep_dma_cyclic()
548 if (!fsl_desc) in fsl_edma_prep_dma_cyclic()
550 fsl_desc->iscyclic = true; in fsl_edma_prep_dma_cyclic()
561 last_sg = fsl_desc->tcd[(i + 1) % sg_len].ptcd; in fsl_edma_prep_dma_cyclic()
575 fsl_edma_fill_tcd(fsl_desc->tcd[i].vtcd, src_addr, dst_addr, in fsl_edma_prep_dma_cyclic()
581 return vchan_tx_prep(&fsl_chan->vchan, &fsl_desc->vdesc, flags); in fsl_edma_prep_dma_cyclic()
590 struct fsl_edma_desc *fsl_desc; in fsl_edma_prep_slave_sg() local
599 fsl_desc = fsl_edma_alloc_desc(fsl_chan, sg_len); in fsl_edma_prep_slave_sg()
600 if (!fsl_desc) in fsl_edma_prep_slave_sg()
602 fsl_desc->iscyclic = false; in fsl_edma_prep_slave_sg()
607 last_sg = fsl_desc->tcd[(i + 1) % sg_len].ptcd; in fsl_edma_prep_slave_sg()
623 last_sg = fsl_desc->tcd[(i + 1)].ptcd; in fsl_edma_prep_slave_sg()
624 fsl_edma_fill_tcd(fsl_desc->tcd[i].vtcd, src_addr, in fsl_edma_prep_slave_sg()
630 fsl_edma_fill_tcd(fsl_desc->tcd[i].vtcd, src_addr, in fsl_edma_prep_slave_sg()
637 return vchan_tx_prep(&fsl_chan->vchan, &fsl_desc->vdesc, flags); in fsl_edma_prep_slave_sg()