Lines Matching refs:dma

143 	struct at91_twi_dma dma;  member
213 struct at91_twi_dma *dma = &dev->dma; in at91_twi_dma_cleanup() local
217 if (dma->xfer_in_progress) { in at91_twi_dma_cleanup()
218 if (dma->direction == DMA_FROM_DEVICE) in at91_twi_dma_cleanup()
219 dmaengine_terminate_all(dma->chan_rx); in at91_twi_dma_cleanup()
221 dmaengine_terminate_all(dma->chan_tx); in at91_twi_dma_cleanup()
222 dma->xfer_in_progress = false; in at91_twi_dma_cleanup()
224 if (dma->buf_mapped) { in at91_twi_dma_cleanup()
225 dma_unmap_single(dev->dev, sg_dma_address(&dma->sg[0]), in at91_twi_dma_cleanup()
226 dev->buf_len, dma->direction); in at91_twi_dma_cleanup()
227 dma->buf_mapped = false; in at91_twi_dma_cleanup()
255 dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg[0]), in at91_twi_write_data_dma_callback()
274 struct at91_twi_dma *dma = &dev->dma; in at91_twi_write_data_dma() local
275 struct dma_chan *chan_tx = dma->chan_tx; in at91_twi_write_data_dma()
281 dma->direction = DMA_TO_DEVICE; in at91_twi_write_data_dma()
290 dma->buf_mapped = true; in at91_twi_write_data_dma()
302 sg = &dma->sg[sg_len++]; in at91_twi_write_data_dma()
309 sg = &dma->sg[sg_len++]; in at91_twi_write_data_dma()
323 sg_dma_len(&dma->sg[0]) = dev->buf_len; in at91_twi_write_data_dma()
324 sg_dma_address(&dma->sg[0]) = dma_addr; in at91_twi_write_data_dma()
327 txdesc = dmaengine_prep_slave_sg(chan_tx, dma->sg, sg_len, in at91_twi_write_data_dma()
338 dma->xfer_in_progress = true; in at91_twi_write_data_dma()
397 dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg[0]), in at91_twi_read_data_dma_callback()
413 struct at91_twi_dma *dma = &dev->dma; in at91_twi_read_data_dma() local
414 struct dma_chan *chan_rx = dma->chan_rx; in at91_twi_read_data_dma()
418 dma->direction = DMA_FROM_DEVICE; in at91_twi_read_data_dma()
427 dma->buf_mapped = true; in at91_twi_read_data_dma()
443 sg_dma_len(&dma->sg[0]) = buf_len; in at91_twi_read_data_dma()
444 sg_dma_address(&dma->sg[0]) = dma_addr; in at91_twi_read_data_dma()
446 rxdesc = dmaengine_prep_slave_sg(chan_rx, dma->sg, 1, DMA_DEV_TO_MEM, in at91_twi_read_data_dma()
456 dma->xfer_in_progress = true; in at91_twi_read_data_dma()
458 dma_async_issue_pending(dma->chan_rx); in at91_twi_read_data_dma()
899 struct at91_twi_dma *dma = &dev->dma; in at91_twi_configure_dma() local
929 dma->chan_tx = dma_request_slave_channel_reason(dev->dev, "tx"); in at91_twi_configure_dma()
930 if (IS_ERR(dma->chan_tx)) { in at91_twi_configure_dma()
931 ret = PTR_ERR(dma->chan_tx); in at91_twi_configure_dma()
932 dma->chan_tx = NULL; in at91_twi_configure_dma()
936 dma->chan_rx = dma_request_slave_channel_reason(dev->dev, "rx"); in at91_twi_configure_dma()
937 if (IS_ERR(dma->chan_rx)) { in at91_twi_configure_dma()
938 ret = PTR_ERR(dma->chan_rx); in at91_twi_configure_dma()
939 dma->chan_rx = NULL; in at91_twi_configure_dma()
944 if (dmaengine_slave_config(dma->chan_tx, &slave_config)) { in at91_twi_configure_dma()
951 if (dmaengine_slave_config(dma->chan_rx, &slave_config)) { in at91_twi_configure_dma()
957 sg_init_table(dma->sg, 2); in at91_twi_configure_dma()
958 dma->buf_mapped = false; in at91_twi_configure_dma()
959 dma->xfer_in_progress = false; in at91_twi_configure_dma()
963 dma_chan_name(dma->chan_tx), dma_chan_name(dma->chan_rx)); in at91_twi_configure_dma()
970 if (dma->chan_rx) in at91_twi_configure_dma()
971 dma_release_channel(dma->chan_rx); in at91_twi_configure_dma()
972 if (dma->chan_tx) in at91_twi_configure_dma()
973 dma_release_channel(dma->chan_tx); in at91_twi_configure_dma()