Lines Matching refs:dma
72 struct sprd_compr_dma dma[SPRD_COMPR_DMA_CHANS]; member
119 struct sprd_compr_dma *dma = &stream->dma[1]; in sprd_platform_compr_dma_complete() local
122 stream->copied_total += dma->trans_len; in sprd_platform_compr_dma_complete()
140 struct sprd_compr_dma *dma = &stream->dma[channel]; in sprd_platform_compr_dma_config() local
156 dma->chan = dma_request_slave_channel(dev, in sprd_platform_compr_dma_config()
158 if (!dma->chan) { in sprd_platform_compr_dma_config()
199 dma->trans_len = period * period_cnt; in sprd_platform_compr_dma_config()
216 sg_dma_len(sgt) = dma->trans_len; in sprd_platform_compr_dma_config()
224 link.virt_addr = (unsigned long)dma->virt; in sprd_platform_compr_dma_config()
225 link.phy_addr = dma->phys; in sprd_platform_compr_dma_config()
227 ret = dmaengine_slave_config(dma->chan, &config); in sprd_platform_compr_dma_config()
238 dma->desc = dma->chan->device->device_prep_slave_sg(dma->chan, sg, in sprd_platform_compr_dma_config()
241 if (!dma->desc) { in sprd_platform_compr_dma_config()
249 dma->desc->callback = sprd_platform_compr_dma_complete; in sprd_platform_compr_dma_config()
250 dma->desc->callback_param = cstream; in sprd_platform_compr_dma_config()
260 dma_release_channel(dma->chan); in sprd_platform_compr_dma_config()
309 dma_release_channel(stream->dma[0].chan); in sprd_platform_compr_set_params()
311 dma_release_channel(stream->dma[1].chan); in sprd_platform_compr_set_params()
348 stream->dma[0].virt = stream->iram_buffer.area + SPRD_COMPR_IRAM_SIZE; in sprd_platform_compr_open()
349 stream->dma[0].phys = stream->iram_buffer.addr + SPRD_COMPR_IRAM_SIZE; in sprd_platform_compr_open()
368 stream->dma[1].virt = stream->compr_buffer.area + SPRD_COMPR_AREA_SIZE; in sprd_platform_compr_open()
369 stream->dma[1].phys = stream->compr_buffer.addr + SPRD_COMPR_AREA_SIZE; in sprd_platform_compr_open()
401 struct sprd_compr_dma *dma = &stream->dma[i]; in sprd_platform_compr_free() local
403 if (dma->chan) { in sprd_platform_compr_free()
404 dma_release_channel(dma->chan); in sprd_platform_compr_free()
405 dma->chan = NULL; in sprd_platform_compr_free()
436 struct sprd_compr_dma *dma = &stream->dma[i]; in sprd_platform_compr_trigger() local
438 if (!dma->desc) in sprd_platform_compr_trigger()
441 dma->cookie = dmaengine_submit(dma->desc); in sprd_platform_compr_trigger()
442 ret = dma_submit_error(dma->cookie); in sprd_platform_compr_trigger()
451 struct sprd_compr_dma *dma = &stream->dma[i]; in sprd_platform_compr_trigger() local
453 if (dma->chan) in sprd_platform_compr_trigger()
454 dma_async_issue_pending(dma->chan); in sprd_platform_compr_trigger()
462 struct sprd_compr_dma *dma = &stream->dma[i]; in sprd_platform_compr_trigger() local
464 if (dma->chan) in sprd_platform_compr_trigger()
465 dmaengine_terminate_async(dma->chan); in sprd_platform_compr_trigger()
480 struct sprd_compr_dma *dma = &stream->dma[i]; in sprd_platform_compr_trigger() local
482 if (dma->chan) in sprd_platform_compr_trigger()
483 dmaengine_pause(dma->chan); in sprd_platform_compr_trigger()
492 struct sprd_compr_dma *dma = &stream->dma[i]; in sprd_platform_compr_trigger() local
494 if (dma->chan) in sprd_platform_compr_trigger()
495 dmaengine_resume(dma->chan); in sprd_platform_compr_trigger()