Lines Matching refs:fsl_desc

149 	struct fsl_edma_desc *fsl_desc;  in fsl_edma_free_desc()  local
152 fsl_desc = to_fsl_edma_desc(vdesc); in fsl_edma_free_desc()
153 for (i = 0; i < fsl_desc->n_tcds; i++) in fsl_edma_free_desc()
154 dma_pool_free(fsl_desc->echan->tcd_pool, fsl_desc->tcd[i].vtcd, in fsl_edma_free_desc()
155 fsl_desc->tcd[i].ptcd); in fsl_edma_free_desc()
156 kfree(fsl_desc); in fsl_edma_free_desc()
424 struct fsl_edma_desc *fsl_desc; in fsl_edma_alloc_desc() local
427 fsl_desc = kzalloc(struct_size(fsl_desc, tcd, sg_len), GFP_NOWAIT); in fsl_edma_alloc_desc()
428 if (!fsl_desc) in fsl_edma_alloc_desc()
431 fsl_desc->echan = fsl_chan; in fsl_edma_alloc_desc()
432 fsl_desc->n_tcds = sg_len; in fsl_edma_alloc_desc()
434 fsl_desc->tcd[i].vtcd = dma_pool_alloc(fsl_chan->tcd_pool, in fsl_edma_alloc_desc()
435 GFP_NOWAIT, &fsl_desc->tcd[i].ptcd); in fsl_edma_alloc_desc()
436 if (!fsl_desc->tcd[i].vtcd) in fsl_edma_alloc_desc()
439 return fsl_desc; in fsl_edma_alloc_desc()
443 dma_pool_free(fsl_chan->tcd_pool, fsl_desc->tcd[i].vtcd, in fsl_edma_alloc_desc()
444 fsl_desc->tcd[i].ptcd); in fsl_edma_alloc_desc()
445 kfree(fsl_desc); in fsl_edma_alloc_desc()
455 struct fsl_edma_desc *fsl_desc; in fsl_edma_prep_dma_cyclic() local
468 fsl_desc = fsl_edma_alloc_desc(fsl_chan, sg_len); in fsl_edma_prep_dma_cyclic()
469 if (!fsl_desc) in fsl_edma_prep_dma_cyclic()
471 fsl_desc->iscyclic = true; in fsl_edma_prep_dma_cyclic()
472 fsl_desc->dirn = direction; in fsl_edma_prep_dma_cyclic()
494 last_sg = fsl_desc->tcd[(i + 1) % sg_len].ptcd; in fsl_edma_prep_dma_cyclic()
508 fsl_edma_fill_tcd(fsl_desc->tcd[i].vtcd, src_addr, dst_addr, in fsl_edma_prep_dma_cyclic()
514 return vchan_tx_prep(&fsl_chan->vchan, &fsl_desc->vdesc, flags); in fsl_edma_prep_dma_cyclic()
524 struct fsl_edma_desc *fsl_desc; in fsl_edma_prep_slave_sg() local
536 fsl_desc = fsl_edma_alloc_desc(fsl_chan, sg_len); in fsl_edma_prep_slave_sg()
537 if (!fsl_desc) in fsl_edma_prep_slave_sg()
539 fsl_desc->iscyclic = false; in fsl_edma_prep_slave_sg()
540 fsl_desc->dirn = direction; in fsl_edma_prep_slave_sg()
556 last_sg = fsl_desc->tcd[(i + 1) % sg_len].ptcd; in fsl_edma_prep_slave_sg()
572 last_sg = fsl_desc->tcd[(i + 1)].ptcd; in fsl_edma_prep_slave_sg()
573 fsl_edma_fill_tcd(fsl_desc->tcd[i].vtcd, src_addr, in fsl_edma_prep_slave_sg()
579 fsl_edma_fill_tcd(fsl_desc->tcd[i].vtcd, src_addr, in fsl_edma_prep_slave_sg()
586 return vchan_tx_prep(&fsl_chan->vchan, &fsl_desc->vdesc, flags); in fsl_edma_prep_slave_sg()