Lines Matching refs:xfer
333 dw_edma_device_transfer(struct dw_edma_transfer *xfer) in dw_edma_device_transfer() argument
335 struct dw_edma_chan *chan = dchan2dw_edma_chan(xfer->dchan); in dw_edma_device_transfer()
336 enum dma_transfer_direction dir = xfer->direction; in dw_edma_device_transfer()
365 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer()
366 if (!xfer->xfer.cyclic.len || !xfer->xfer.cyclic.cnt) in dw_edma_device_transfer()
368 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
369 if (xfer->xfer.sg.len < 1) in dw_edma_device_transfer()
371 } else if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer()
372 if (!xfer->xfer.il->numf) in dw_edma_device_transfer()
374 if (xfer->xfer.il->numf > 0 && xfer->xfer.il->frame_size > 0) in dw_edma_device_transfer()
388 if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer()
389 src_addr = xfer->xfer.il->src_start; in dw_edma_device_transfer()
390 dst_addr = xfer->xfer.il->dst_start; in dw_edma_device_transfer()
396 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer()
397 cnt = xfer->xfer.cyclic.cnt; in dw_edma_device_transfer()
398 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
399 cnt = xfer->xfer.sg.len; in dw_edma_device_transfer()
400 sg = xfer->xfer.sg.sgl; in dw_edma_device_transfer()
401 } else if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer()
402 if (xfer->xfer.il->numf > 0) in dw_edma_device_transfer()
403 cnt = xfer->xfer.il->numf; in dw_edma_device_transfer()
405 cnt = xfer->xfer.il->frame_size; in dw_edma_device_transfer()
409 if (xfer->type == EDMA_XFER_SCATTER_GATHER && !sg) in dw_edma_device_transfer()
422 if (xfer->type == EDMA_XFER_CYCLIC) in dw_edma_device_transfer()
423 burst->sz = xfer->xfer.cyclic.len; in dw_edma_device_transfer()
424 else if (xfer->type == EDMA_XFER_SCATTER_GATHER) in dw_edma_device_transfer()
426 else if (xfer->type == EDMA_XFER_INTERLEAVED) in dw_edma_device_transfer()
427 burst->sz = xfer->xfer.il->sgl[i].size; in dw_edma_device_transfer()
434 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer()
435 burst->dar = xfer->xfer.cyclic.paddr; in dw_edma_device_transfer()
436 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
446 } else if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer()
451 if (xfer->type == EDMA_XFER_CYCLIC) { in dw_edma_device_transfer()
452 burst->sar = xfer->xfer.cyclic.paddr; in dw_edma_device_transfer()
453 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
463 } else if (xfer->type == EDMA_XFER_INTERLEAVED) { in dw_edma_device_transfer()
468 if (xfer->type == EDMA_XFER_SCATTER_GATHER) { in dw_edma_device_transfer()
470 } else if (xfer->type == EDMA_XFER_INTERLEAVED && in dw_edma_device_transfer()
471 xfer->xfer.il->frame_size > 0) { in dw_edma_device_transfer()
472 struct dma_interleaved_template *il = xfer->xfer.il; in dw_edma_device_transfer()
487 return vchan_tx_prep(&chan->vc, &desc->vd, xfer->flags); in dw_edma_device_transfer()
502 struct dw_edma_transfer xfer; in dw_edma_device_prep_slave_sg() local
504 xfer.dchan = dchan; in dw_edma_device_prep_slave_sg()
505 xfer.direction = direction; in dw_edma_device_prep_slave_sg()
506 xfer.xfer.sg.sgl = sgl; in dw_edma_device_prep_slave_sg()
507 xfer.xfer.sg.len = len; in dw_edma_device_prep_slave_sg()
508 xfer.flags = flags; in dw_edma_device_prep_slave_sg()
509 xfer.type = EDMA_XFER_SCATTER_GATHER; in dw_edma_device_prep_slave_sg()
511 return dw_edma_device_transfer(&xfer); in dw_edma_device_prep_slave_sg()
520 struct dw_edma_transfer xfer; in dw_edma_device_prep_dma_cyclic() local
522 xfer.dchan = dchan; in dw_edma_device_prep_dma_cyclic()
523 xfer.direction = direction; in dw_edma_device_prep_dma_cyclic()
524 xfer.xfer.cyclic.paddr = paddr; in dw_edma_device_prep_dma_cyclic()
525 xfer.xfer.cyclic.len = len; in dw_edma_device_prep_dma_cyclic()
526 xfer.xfer.cyclic.cnt = count; in dw_edma_device_prep_dma_cyclic()
527 xfer.flags = flags; in dw_edma_device_prep_dma_cyclic()
528 xfer.type = EDMA_XFER_CYCLIC; in dw_edma_device_prep_dma_cyclic()
530 return dw_edma_device_transfer(&xfer); in dw_edma_device_prep_dma_cyclic()
538 struct dw_edma_transfer xfer; in dw_edma_device_prep_interleaved_dma() local
540 xfer.dchan = dchan; in dw_edma_device_prep_interleaved_dma()
541 xfer.direction = ilt->dir; in dw_edma_device_prep_interleaved_dma()
542 xfer.xfer.il = ilt; in dw_edma_device_prep_interleaved_dma()
543 xfer.flags = flags; in dw_edma_device_prep_interleaved_dma()
544 xfer.type = EDMA_XFER_INTERLEAVED; in dw_edma_device_prep_interleaved_dma()
546 return dw_edma_device_transfer(&xfer); in dw_edma_device_prep_interleaved_dma()