Lines Matching refs:xfer

362 dw_edma_device_transfer(struct dw_edma_transfer *xfer)
364 struct dw_edma_chan *chan = dchan2dw_edma_chan(xfer->dchan);
365 enum dma_transfer_direction dir = xfer->direction;
414 if (xfer->type == EDMA_XFER_CYCLIC) {
415 if (!xfer->xfer.cyclic.len || !xfer->xfer.cyclic.cnt)
417 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) {
418 if (xfer->xfer.sg.len < 1)
420 } else if (xfer->type == EDMA_XFER_INTERLEAVED) {
421 if (!xfer->xfer.il->numf || xfer->xfer.il->frame_size < 1)
423 if (!xfer->xfer.il->src_inc || !xfer->xfer.il->dst_inc)
437 if (xfer->type == EDMA_XFER_INTERLEAVED) {
438 src_addr = xfer->xfer.il->src_start;
439 dst_addr = xfer->xfer.il->dst_start;
450 if (xfer->type == EDMA_XFER_CYCLIC) {
451 cnt = xfer->xfer.cyclic.cnt;
452 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) {
453 cnt = xfer->xfer.sg.len;
454 sg = xfer->xfer.sg.sgl;
455 } else if (xfer->type == EDMA_XFER_INTERLEAVED) {
456 cnt = xfer->xfer.il->numf * xfer->xfer.il->frame_size;
457 fsz = xfer->xfer.il->frame_size;
461 if (xfer->type == EDMA_XFER_SCATTER_GATHER && !sg)
474 if (xfer->type == EDMA_XFER_CYCLIC)
475 burst->sz = xfer->xfer.cyclic.len;
476 else if (xfer->type == EDMA_XFER_SCATTER_GATHER)
478 else if (xfer->type == EDMA_XFER_INTERLEAVED)
479 burst->sz = xfer->xfer.il->sgl[i % fsz].size;
486 if (xfer->type == EDMA_XFER_CYCLIC) {
487 burst->dar = xfer->xfer.cyclic.paddr;
488 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) {
498 } else if (xfer->type == EDMA_XFER_INTERLEAVED) {
503 if (xfer->type == EDMA_XFER_CYCLIC) {
504 burst->sar = xfer->xfer.cyclic.paddr;
505 } else if (xfer->type == EDMA_XFER_SCATTER_GATHER) {
515 } else if (xfer->type == EDMA_XFER_INTERLEAVED) {
520 if (xfer->type == EDMA_XFER_SCATTER_GATHER) {
522 } else if (xfer->type == EDMA_XFER_INTERLEAVED) {
523 struct dma_interleaved_template *il = xfer->xfer.il;
536 return vchan_tx_prep(&chan->vc, &desc->vd, xfer->flags);
551 struct dw_edma_transfer xfer;
553 xfer.dchan = dchan;
554 xfer.direction = direction;
555 xfer.xfer.sg.sgl = sgl;
556 xfer.xfer.sg.len = len;
557 xfer.flags = flags;
558 xfer.type = EDMA_XFER_SCATTER_GATHER;
560 return dw_edma_device_transfer(&xfer);
569 struct dw_edma_transfer xfer;
571 xfer.dchan = dchan;
572 xfer.direction = direction;
573 xfer.xfer.cyclic.paddr = paddr;
574 xfer.xfer.cyclic.len = len;
575 xfer.xfer.cyclic.cnt = count;
576 xfer.flags = flags;
577 xfer.type = EDMA_XFER_CYCLIC;
579 return dw_edma_device_transfer(&xfer);
587 struct dw_edma_transfer xfer;
589 xfer.dchan = dchan;
590 xfer.direction = ilt->dir;
591 xfer.xfer.il = ilt;
592 xfer.flags = flags;
593 xfer.type = EDMA_XFER_INTERLEAVED;
595 return dw_edma_device_transfer(&xfer);