Lines Matching refs:dma

148 	struct at91_twi_dma dma;  member
244 struct at91_twi_dma *dma = &dev->dma; in at91_twi_dma_cleanup() local
248 if (dma->xfer_in_progress) { in at91_twi_dma_cleanup()
249 if (dma->direction == DMA_FROM_DEVICE) in at91_twi_dma_cleanup()
250 dmaengine_terminate_all(dma->chan_rx); in at91_twi_dma_cleanup()
252 dmaengine_terminate_all(dma->chan_tx); in at91_twi_dma_cleanup()
253 dma->xfer_in_progress = false; in at91_twi_dma_cleanup()
255 if (dma->buf_mapped) { in at91_twi_dma_cleanup()
256 dma_unmap_single(dev->dev, sg_dma_address(&dma->sg[0]), in at91_twi_dma_cleanup()
257 dev->buf_len, dma->direction); in at91_twi_dma_cleanup()
258 dma->buf_mapped = false; in at91_twi_dma_cleanup()
288 dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg[0]), in at91_twi_write_data_dma_callback()
307 struct at91_twi_dma *dma = &dev->dma; in at91_twi_write_data_dma() local
308 struct dma_chan *chan_tx = dma->chan_tx; in at91_twi_write_data_dma()
314 dma->direction = DMA_TO_DEVICE; in at91_twi_write_data_dma()
323 dma->buf_mapped = true; in at91_twi_write_data_dma()
335 sg = &dma->sg[sg_len++]; in at91_twi_write_data_dma()
342 sg = &dma->sg[sg_len++]; in at91_twi_write_data_dma()
356 sg_dma_len(&dma->sg[0]) = dev->buf_len; in at91_twi_write_data_dma()
357 sg_dma_address(&dma->sg[0]) = dma_addr; in at91_twi_write_data_dma()
360 txdesc = dmaengine_prep_slave_sg(chan_tx, dma->sg, sg_len, in at91_twi_write_data_dma()
371 dma->xfer_in_progress = true; in at91_twi_write_data_dma()
430 dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg[0]), in at91_twi_read_data_dma_callback()
446 struct at91_twi_dma *dma = &dev->dma; in at91_twi_read_data_dma() local
447 struct dma_chan *chan_rx = dma->chan_rx; in at91_twi_read_data_dma()
451 dma->direction = DMA_FROM_DEVICE; in at91_twi_read_data_dma()
460 dma->buf_mapped = true; in at91_twi_read_data_dma()
476 sg_dma_len(&dma->sg[0]) = buf_len; in at91_twi_read_data_dma()
477 sg_dma_address(&dma->sg[0]) = dma_addr; in at91_twi_read_data_dma()
479 rxdesc = dmaengine_prep_slave_sg(chan_rx, dma->sg, 1, DMA_DEV_TO_MEM, in at91_twi_read_data_dma()
489 dma->xfer_in_progress = true; in at91_twi_read_data_dma()
491 dma_async_issue_pending(dma->chan_rx); in at91_twi_read_data_dma()
970 struct at91_twi_dma *dma = &dev->dma; in at91_twi_configure_dma() local
1000 dma->chan_tx = dma_request_slave_channel_reason(dev->dev, "tx"); in at91_twi_configure_dma()
1001 if (IS_ERR(dma->chan_tx)) { in at91_twi_configure_dma()
1002 ret = PTR_ERR(dma->chan_tx); in at91_twi_configure_dma()
1003 dma->chan_tx = NULL; in at91_twi_configure_dma()
1007 dma->chan_rx = dma_request_slave_channel_reason(dev->dev, "rx"); in at91_twi_configure_dma()
1008 if (IS_ERR(dma->chan_rx)) { in at91_twi_configure_dma()
1009 ret = PTR_ERR(dma->chan_rx); in at91_twi_configure_dma()
1010 dma->chan_rx = NULL; in at91_twi_configure_dma()
1015 if (dmaengine_slave_config(dma->chan_tx, &slave_config)) { in at91_twi_configure_dma()
1022 if (dmaengine_slave_config(dma->chan_rx, &slave_config)) { in at91_twi_configure_dma()
1028 sg_init_table(dma->sg, 2); in at91_twi_configure_dma()
1029 dma->buf_mapped = false; in at91_twi_configure_dma()
1030 dma->xfer_in_progress = false; in at91_twi_configure_dma()
1034 dma_chan_name(dma->chan_tx), dma_chan_name(dma->chan_rx)); in at91_twi_configure_dma()
1041 if (dma->chan_rx) in at91_twi_configure_dma()
1042 dma_release_channel(dma->chan_rx); in at91_twi_configure_dma()
1043 if (dma->chan_tx) in at91_twi_configure_dma()
1044 dma_release_channel(dma->chan_tx); in at91_twi_configure_dma()