• Home
  • Raw
  • Download

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()
385 reinit_completion(&dma->cmd_complete); in i2c_imx_dma_xfer()
393 dma_async_issue_pending(dma->chan_using); in i2c_imx_dma_xfer()
398 dma_unmap_single(chan_dev, dma->dma_buf, in i2c_imx_dma_xfer()
399 dma->dma_len, dma->dma_data_dir); in i2c_imx_dma_xfer()
406 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_free() local
408 dma->dma_buf = 0; in i2c_imx_dma_free()
409 dma->dma_len = 0; in i2c_imx_dma_free()
411 dma_release_channel(dma->chan_tx); in i2c_imx_dma_free()
412 dma->chan_tx = NULL; in i2c_imx_dma_free()
414 dma_release_channel(dma->chan_rx); in i2c_imx_dma_free()
415 dma->chan_rx = NULL; in i2c_imx_dma_free()
417 dma->chan_using = NULL; in i2c_imx_dma_free()
588 if (i2c_imx->dma) in i2c_imx_stop()
635 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_write() local
638 dma->chan_using = dma->chan_tx; in i2c_imx_dma_write()
639 dma->dma_transfer_dir = DMA_MEM_TO_DEV; in i2c_imx_dma_write()
640 dma->dma_data_dir = DMA_TO_DEVICE; in i2c_imx_dma_write()
641 dma->dma_len = msgs->len - 1; in i2c_imx_dma_write()
656 &i2c_imx->dma->cmd_complete, in i2c_imx_dma_write()
659 dmaengine_terminate_all(dma->chan_using); in i2c_imx_dma_write()
697 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_read() local
701 dma->chan_using = dma->chan_rx; in i2c_imx_dma_read()
702 dma->dma_transfer_dir = DMA_DEV_TO_MEM; in i2c_imx_dma_read()
703 dma->dma_data_dir = DMA_FROM_DEVICE; in i2c_imx_dma_read()
705 dma->dma_len = msgs->len - 2; in i2c_imx_dma_read()
711 &i2c_imx->dma->cmd_complete, in i2c_imx_dma_read()
714 dmaengine_terminate_all(dma->chan_using); in i2c_imx_dma_read()
812 int use_dma = i2c_imx->dma && msgs->len >= DMA_THRESHOLD && !block_data; in i2c_imx_read()
973 if (i2c_imx->dma && msgs[i].len >= DMA_THRESHOLD) in i2c_imx_xfer()
1182 if (i2c_imx->dma) in i2c_imx_remove()