Lines Matching refs:desc
122 struct jz4740_dma_desc *desc; member
280 chan->desc = NULL; in jz4740_dma_terminate_all()
299 if (!chan->desc) { in jz4740_dma_start_transfer()
303 chan->desc = to_jz4740_dma_desc(vdesc); in jz4740_dma_start_transfer()
307 if (chan->next_sg == chan->desc->num_sgs) in jz4740_dma_start_transfer()
310 sg = &chan->desc->sg[chan->next_sg]; in jz4740_dma_start_transfer()
312 if (chan->desc->direction == DMA_MEM_TO_DEV) { in jz4740_dma_start_transfer()
341 if (chan->desc) { in jz4740_dma_chan_irq()
342 if (chan->desc->cyclic) { in jz4740_dma_chan_irq()
343 vchan_cyclic_callback(&chan->desc->vdesc); in jz4740_dma_chan_irq()
345 if (chan->next_sg == chan->desc->num_sgs) { in jz4740_dma_chan_irq()
346 list_del(&chan->desc->vdesc.node); in jz4740_dma_chan_irq()
347 vchan_cookie_complete(&chan->desc->vdesc); in jz4740_dma_chan_irq()
348 chan->desc = NULL; in jz4740_dma_chan_irq()
384 if (vchan_issue_pending(&chan->vchan) && !chan->desc) in jz4740_dma_issue_pending()
395 struct jz4740_dma_desc *desc; in jz4740_dma_prep_slave_sg() local
399 desc = jz4740_dma_alloc_desc(sg_len); in jz4740_dma_prep_slave_sg()
400 if (!desc) in jz4740_dma_prep_slave_sg()
404 desc->sg[i].addr = sg_dma_address(sg); in jz4740_dma_prep_slave_sg()
405 desc->sg[i].len = sg_dma_len(sg); in jz4740_dma_prep_slave_sg()
408 desc->num_sgs = sg_len; in jz4740_dma_prep_slave_sg()
409 desc->direction = direction; in jz4740_dma_prep_slave_sg()
410 desc->cyclic = false; in jz4740_dma_prep_slave_sg()
412 return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags); in jz4740_dma_prep_slave_sg()
421 struct jz4740_dma_desc *desc; in jz4740_dma_prep_dma_cyclic() local
429 desc = jz4740_dma_alloc_desc(num_periods); in jz4740_dma_prep_dma_cyclic()
430 if (!desc) in jz4740_dma_prep_dma_cyclic()
434 desc->sg[i].addr = buf_addr; in jz4740_dma_prep_dma_cyclic()
435 desc->sg[i].len = period_len; in jz4740_dma_prep_dma_cyclic()
439 desc->num_sgs = num_periods; in jz4740_dma_prep_dma_cyclic()
440 desc->direction = direction; in jz4740_dma_prep_dma_cyclic()
441 desc->cyclic = true; in jz4740_dma_prep_dma_cyclic()
443 return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags); in jz4740_dma_prep_dma_cyclic()
447 struct jz4740_dma_desc *desc, unsigned int next_sg) in jz4740_dma_desc_residue() argument
455 for (i = next_sg; i < desc->num_sgs; i++) in jz4740_dma_desc_residue()
456 residue += desc->sg[i].len; in jz4740_dma_desc_residue()
481 if (cookie == chan->desc->vdesc.tx.cookie) { in jz4740_dma_tx_status()
482 state->residue = jz4740_dma_desc_residue(chan, chan->desc, in jz4740_dma_tx_status()