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