Lines Matching refs:dma

218 	struct imx_i2c_dma	*dma;  member
293 struct imx_i2c_dma *dma; in i2c_imx_dma_request() local
298 dma = devm_kzalloc(dev, sizeof(*dma), GFP_KERNEL); in i2c_imx_dma_request()
299 if (!dma) in i2c_imx_dma_request()
302 dma->chan_tx = dma_request_slave_channel(dev, "tx"); in i2c_imx_dma_request()
303 if (!dma->chan_tx) { in i2c_imx_dma_request()
313 ret = dmaengine_slave_config(dma->chan_tx, &dma_sconfig); in i2c_imx_dma_request()
319 dma->chan_rx = dma_request_slave_channel(dev, "rx"); in i2c_imx_dma_request()
320 if (!dma->chan_rx) { in i2c_imx_dma_request()
330 ret = dmaengine_slave_config(dma->chan_rx, &dma_sconfig); in i2c_imx_dma_request()
336 i2c_imx->dma = dma; in i2c_imx_dma_request()
337 init_completion(&dma->cmd_complete); in i2c_imx_dma_request()
339 dma_chan_name(dma->chan_tx), dma_chan_name(dma->chan_rx)); in i2c_imx_dma_request()
344 dma_release_channel(dma->chan_rx); in i2c_imx_dma_request()
346 dma_release_channel(dma->chan_tx); in i2c_imx_dma_request()
348 devm_kfree(dev, dma); in i2c_imx_dma_request()
355 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_callback() local
357 dma_unmap_single(dma->chan_using->device->dev, dma->dma_buf, in i2c_imx_dma_callback()
358 dma->dma_len, dma->dma_data_dir); in i2c_imx_dma_callback()
359 complete(&dma->cmd_complete); in i2c_imx_dma_callback()
365 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_xfer() local
368 struct device *chan_dev = dma->chan_using->device->dev; in i2c_imx_dma_xfer()
370 dma->dma_buf = dma_map_single(chan_dev, msgs->buf, in i2c_imx_dma_xfer()
371 dma->dma_len, dma->dma_data_dir); in i2c_imx_dma_xfer()
372 if (dma_mapping_error(chan_dev, dma->dma_buf)) { in i2c_imx_dma_xfer()
377 txdesc = dmaengine_prep_slave_single(dma->chan_using, dma->dma_buf, in i2c_imx_dma_xfer()
378 dma->dma_len, dma->dma_transfer_dir, in i2c_imx_dma_xfer()
392 dma_async_issue_pending(dma->chan_using); in i2c_imx_dma_xfer()
397 dma_unmap_single(chan_dev, dma->dma_buf, in i2c_imx_dma_xfer()
398 dma->dma_len, dma->dma_data_dir); in i2c_imx_dma_xfer()
405 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_free() local
407 dma->dma_buf = 0; in i2c_imx_dma_free()
408 dma->dma_len = 0; in i2c_imx_dma_free()
410 dma_release_channel(dma->chan_tx); in i2c_imx_dma_free()
411 dma->chan_tx = NULL; in i2c_imx_dma_free()
413 dma_release_channel(dma->chan_rx); in i2c_imx_dma_free()
414 dma->chan_rx = NULL; in i2c_imx_dma_free()
416 dma->chan_using = NULL; in i2c_imx_dma_free()
565 if (i2c_imx->dma) in i2c_imx_stop()
614 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_write() local
617 dma->chan_using = dma->chan_tx; in i2c_imx_dma_write()
618 dma->dma_transfer_dir = DMA_MEM_TO_DEV; in i2c_imx_dma_write()
619 dma->dma_data_dir = DMA_TO_DEVICE; in i2c_imx_dma_write()
620 dma->dma_len = msgs->len - 1; in i2c_imx_dma_write()
634 reinit_completion(&i2c_imx->dma->cmd_complete); in i2c_imx_dma_write()
636 &i2c_imx->dma->cmd_complete, in i2c_imx_dma_write()
639 dmaengine_terminate_all(dma->chan_using); in i2c_imx_dma_write()
677 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_read() local
684 dma->chan_using = dma->chan_rx; in i2c_imx_dma_read()
685 dma->dma_transfer_dir = DMA_DEV_TO_MEM; in i2c_imx_dma_read()
686 dma->dma_data_dir = DMA_FROM_DEVICE; in i2c_imx_dma_read()
688 dma->dma_len = msgs->len - 2; in i2c_imx_dma_read()
693 reinit_completion(&i2c_imx->dma->cmd_complete); in i2c_imx_dma_read()
695 &i2c_imx->dma->cmd_complete, in i2c_imx_dma_read()
698 dmaengine_terminate_all(dma->chan_using); in i2c_imx_dma_read()
827 if (i2c_imx->dma && msgs->len >= DMA_THRESHOLD && !block_data) in i2c_imx_read()
954 if (i2c_imx->dma && msgs[i].len >= DMA_THRESHOLD) in i2c_imx_xfer()
1159 if (i2c_imx->dma) in i2c_imx_remove()