Lines Matching refs:desc
183 struct axi_dmac_desc *desc; in axi_dmac_start_transfer() local
192 desc = chan->next_desc; in axi_dmac_start_transfer()
194 if (!desc) { in axi_dmac_start_transfer()
199 desc = to_axi_dmac_desc(vdesc); in axi_dmac_start_transfer()
201 sg = &desc->sg[desc->num_submitted]; in axi_dmac_start_transfer()
203 desc->num_submitted++; in axi_dmac_start_transfer()
204 if (desc->num_submitted == desc->num_sgs) in axi_dmac_start_transfer()
207 chan->next_desc = desc; in axi_dmac_start_transfer()
225 if (chan->hw_cyclic && desc->cyclic && !desc->vdesc.tx.callback) in axi_dmac_start_transfer()
326 struct axi_dmac_desc *desc; in axi_dmac_alloc_desc() local
328 desc = kzalloc(sizeof(struct axi_dmac_desc) + in axi_dmac_alloc_desc()
330 if (!desc) in axi_dmac_alloc_desc()
333 desc->num_sgs = num_sgs; in axi_dmac_alloc_desc()
335 return desc; in axi_dmac_alloc_desc()
344 struct axi_dmac_desc *desc; in axi_dmac_prep_slave_sg() local
351 desc = axi_dmac_alloc_desc(sg_len); in axi_dmac_prep_slave_sg()
352 if (!desc) in axi_dmac_prep_slave_sg()
358 kfree(desc); in axi_dmac_prep_slave_sg()
363 desc->sg[i].dest_addr = sg_dma_address(sg); in axi_dmac_prep_slave_sg()
365 desc->sg[i].src_addr = sg_dma_address(sg); in axi_dmac_prep_slave_sg()
366 desc->sg[i].x_len = sg_dma_len(sg); in axi_dmac_prep_slave_sg()
367 desc->sg[i].y_len = 1; in axi_dmac_prep_slave_sg()
370 desc->cyclic = false; in axi_dmac_prep_slave_sg()
372 return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags); in axi_dmac_prep_slave_sg()
381 struct axi_dmac_desc *desc; in axi_dmac_prep_dma_cyclic() local
396 desc = axi_dmac_alloc_desc(num_periods); in axi_dmac_prep_dma_cyclic()
397 if (!desc) in axi_dmac_prep_dma_cyclic()
402 desc->sg[i].dest_addr = buf_addr; in axi_dmac_prep_dma_cyclic()
404 desc->sg[i].src_addr = buf_addr; in axi_dmac_prep_dma_cyclic()
405 desc->sg[i].x_len = period_len; in axi_dmac_prep_dma_cyclic()
406 desc->sg[i].y_len = 1; in axi_dmac_prep_dma_cyclic()
410 desc->cyclic = true; in axi_dmac_prep_dma_cyclic()
412 return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags); in axi_dmac_prep_dma_cyclic()
420 struct axi_dmac_desc *desc; in axi_dmac_prep_interleaved() local
458 desc = axi_dmac_alloc_desc(1); in axi_dmac_prep_interleaved()
459 if (!desc) in axi_dmac_prep_interleaved()
463 desc->sg[0].src_addr = xt->src_start; in axi_dmac_prep_interleaved()
464 desc->sg[0].src_stride = xt->sgl[0].size + src_icg; in axi_dmac_prep_interleaved()
468 desc->sg[0].dest_addr = xt->dst_start; in axi_dmac_prep_interleaved()
469 desc->sg[0].dest_stride = xt->sgl[0].size + dst_icg; in axi_dmac_prep_interleaved()
473 desc->sg[0].x_len = xt->sgl[0].size; in axi_dmac_prep_interleaved()
474 desc->sg[0].y_len = xt->numf; in axi_dmac_prep_interleaved()
476 desc->sg[0].x_len = xt->sgl[0].size * xt->numf; in axi_dmac_prep_interleaved()
477 desc->sg[0].y_len = 1; in axi_dmac_prep_interleaved()
480 return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags); in axi_dmac_prep_interleaved()