Lines Matching refs:xfer
327 dw_edma_device_transfer(struct dw_edma_transfer *xfer) in dw_edma_device_transfer() argument
329 struct dw_edma_chan *chan = dchan2dw_edma_chan(xfer->dchan); in dw_edma_device_transfer()
330 enum dma_transfer_direction dir = xfer->direction; in dw_edma_device_transfer()
359 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer()
360 if (!xfer->xfer.cyclic.len || !xfer->xfer.cyclic.cnt) in dw_edma_device_transfer()
362 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
363 if (xfer->xfer.sg.len < 1) in dw_edma_device_transfer()
365 } else if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer()
366 if (!xfer->xfer.il->numf) in dw_edma_device_transfer()
368 if (xfer->xfer.il->numf > 0 && xfer->xfer.il->frame_size > 0) in dw_edma_device_transfer()
382 if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer()
383 src_addr = xfer->xfer.il->src_start; in dw_edma_device_transfer()
384 dst_addr = xfer->xfer.il->dst_start; in dw_edma_device_transfer()
390 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer()
391 cnt = xfer->xfer.cyclic.cnt; in dw_edma_device_transfer()
392 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
393 cnt = xfer->xfer.sg.len; in dw_edma_device_transfer()
394 sg = xfer->xfer.sg.sgl; in dw_edma_device_transfer()
395 } else if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer()
396 if (xfer->xfer.il->numf > 0) in dw_edma_device_transfer()
397 cnt = xfer->xfer.il->numf; in dw_edma_device_transfer()
399 cnt = xfer->xfer.il->frame_size; in dw_edma_device_transfer()
403 if (xfer->type == EDMA_XFER_SCATTER_GATHER && !sg) in dw_edma_device_transfer()
416 if (xfer->type == EDMA_XFER_CYCLIC) in dw_edma_device_transfer()
417 burst->sz = xfer->xfer.cyclic.len; in dw_edma_device_transfer()
418 else if (xfer->type == EDMA_XFER_SCATTER_GATHER) in dw_edma_device_transfer()
420 else if (xfer->type == EDMA_XFER_INTERLEAVED) in dw_edma_device_transfer()
421 burst->sz = xfer->xfer.il->sgl[i].size; in dw_edma_device_transfer()
428 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer()
429 burst->dar = xfer->xfer.cyclic.paddr; in dw_edma_device_transfer()
430 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
443 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer()
444 burst->sar = xfer->xfer.cyclic.paddr; in dw_edma_device_transfer()
445 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
458 if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
460 } else if (xfer->type == EDMA_XFER_INTERLEAVED && in dw_edma_device_transfer()
461 xfer->xfer.il->frame_size > 0) { in dw_edma_device_transfer()
462 struct dma_interleaved_template *il = xfer->xfer.il; in dw_edma_device_transfer()
477 return vchan_tx_prep(&chan->vc, &desc->vd, xfer->flags); in dw_edma_device_transfer()
492 struct dw_edma_transfer xfer; in dw_edma_device_prep_slave_sg() local
494 xfer.dchan = dchan; in dw_edma_device_prep_slave_sg()
495 xfer.direction = direction; in dw_edma_device_prep_slave_sg()
496 xfer.xfer.sg.sgl = sgl; in dw_edma_device_prep_slave_sg()
497 xfer.xfer.sg.len = len; in dw_edma_device_prep_slave_sg()
498 xfer.flags = flags; in dw_edma_device_prep_slave_sg()
499 xfer.type = EDMA_XFER_SCATTER_GATHER; in dw_edma_device_prep_slave_sg()
501 return dw_edma_device_transfer(&xfer); in dw_edma_device_prep_slave_sg()
510 struct dw_edma_transfer xfer; in dw_edma_device_prep_dma_cyclic() local
512 xfer.dchan = dchan; in dw_edma_device_prep_dma_cyclic()
513 xfer.direction = direction; in dw_edma_device_prep_dma_cyclic()
514 xfer.xfer.cyclic.paddr = paddr; in dw_edma_device_prep_dma_cyclic()
515 xfer.xfer.cyclic.len = len; in dw_edma_device_prep_dma_cyclic()
516 xfer.xfer.cyclic.cnt = count; in dw_edma_device_prep_dma_cyclic()
517 xfer.flags = flags; in dw_edma_device_prep_dma_cyclic()
518 xfer.type = EDMA_XFER_CYCLIC; in dw_edma_device_prep_dma_cyclic()
520 return dw_edma_device_transfer(&xfer); in dw_edma_device_prep_dma_cyclic()
528 struct dw_edma_transfer xfer; in dw_edma_device_prep_interleaved_dma() local
530 xfer.dchan = dchan; in dw_edma_device_prep_interleaved_dma()
531 xfer.direction = ilt->dir; in dw_edma_device_prep_interleaved_dma()
532 xfer.xfer.il = ilt; in dw_edma_device_prep_interleaved_dma()
533 xfer.flags = flags; in dw_edma_device_prep_interleaved_dma()
534 xfer.type = EDMA_XFER_INTERLEAVED; in dw_edma_device_prep_interleaved_dma()
536 return dw_edma_device_transfer(&xfer); in dw_edma_device_prep_interleaved_dma()