Lines Matching refs:dma_st
403 struct at91_adc_dma dma_st; member
752 if (st->dma_st.dma_chan) in at91_adc_reenable_trigger()
775 status = dmaengine_tx_status(st->dma_st.dma_chan, in at91_adc_dma_size_done()
776 st->dma_st.dma_chan->cookie, in at91_adc_dma_size_done()
782 i = st->dma_st.rx_buf_sz - state.residue; in at91_adc_dma_size_done()
785 if (i >= st->dma_st.buf_idx) in at91_adc_dma_size_done()
786 size = i - st->dma_st.buf_idx; in at91_adc_dma_size_done()
788 size = st->dma_st.rx_buf_sz + i - st->dma_st.buf_idx; in at91_adc_dma_size_done()
807 if (!st->dma_st.dma_chan) in at91_adc_dma_start()
811 st->dma_st.buf_idx = 0; in at91_adc_dma_start()
817 st->dma_st.rx_buf_sz = 0; in at91_adc_dma_start()
827 st->dma_st.rx_buf_sz += chan->scan_type.storagebits / 8; in at91_adc_dma_start()
829 st->dma_st.rx_buf_sz *= st->dma_st.watermark; in at91_adc_dma_start()
832 desc = dmaengine_prep_dma_cyclic(st->dma_st.dma_chan, in at91_adc_dma_start()
833 st->dma_st.rx_dma_buf, in at91_adc_dma_start()
834 st->dma_st.rx_buf_sz, in at91_adc_dma_start()
835 st->dma_st.rx_buf_sz / 2, in at91_adc_dma_start()
850 dmaengine_terminate_async(st->dma_st.dma_chan); in at91_adc_dma_start()
857 dma_async_issue_pending(st->dma_st.dma_chan); in at91_adc_dma_start()
860 st->dma_st.dma_ts = iio_get_time_ns(indio_dev); in at91_adc_dma_start()
871 if (st->dma_st.dma_chan) in at91_adc_buffer_check_use_irq()
975 if (st->dma_st.dma_chan) in at91_adc_buffer_postdisable()
986 if (st->dma_st.dma_chan) in at91_adc_buffer_postdisable()
987 dmaengine_terminate_sync(st->dma_st.dma_chan); in at91_adc_buffer_postdisable()
1101 sample_size = div_s64(st->dma_st.rx_buf_sz, st->dma_st.watermark); in at91_adc_trigger_handler_dma()
1109 interval = div_s64((ns - st->dma_st.dma_ts), sample_count); in at91_adc_trigger_handler_dma()
1117 &st->dma_st.rx_buf[st->dma_st.buf_idx], in at91_adc_trigger_handler_dma()
1121 (st->dma_st.rx_buf + st->dma_st.buf_idx), in at91_adc_trigger_handler_dma()
1122 (st->dma_st.dma_ts + interval * sample_index)); in at91_adc_trigger_handler_dma()
1126 st->dma_st.buf_idx += sample_size; in at91_adc_trigger_handler_dma()
1128 if (st->dma_st.buf_idx >= st->dma_st.rx_buf_sz) in at91_adc_trigger_handler_dma()
1129 st->dma_st.buf_idx = 0; in at91_adc_trigger_handler_dma()
1133 st->dma_st.dma_ts = iio_get_time_ns(indio_dev); in at91_adc_trigger_handler_dma()
1149 if (st->dma_st.dma_chan) in at91_adc_trigger_handler()
1322 } else if (iio_buffer_enabled(indio) && st->dma_st.dma_chan) { in at91_adc_interrupt()
1502 if (st->dma_st.dma_chan) in at91_adc_dma_init()
1505 st->dma_st.dma_chan = dma_request_chan(&pdev->dev, "rx"); in at91_adc_dma_init()
1506 if (IS_ERR(st->dma_st.dma_chan)) { in at91_adc_dma_init()
1508 st->dma_st.dma_chan = NULL; in at91_adc_dma_init()
1512 st->dma_st.rx_buf = dma_alloc_coherent(st->dma_st.dma_chan->device->dev, in at91_adc_dma_init()
1514 &st->dma_st.rx_dma_buf, in at91_adc_dma_init()
1516 if (!st->dma_st.rx_buf) { in at91_adc_dma_init()
1523 config.src_addr = (phys_addr_t)(st->dma_st.phys_addr in at91_adc_dma_init()
1529 if (dmaengine_slave_config(st->dma_st.dma_chan, &config)) { in at91_adc_dma_init()
1535 dma_chan_name(st->dma_st.dma_chan)); in at91_adc_dma_init()
1540 dma_free_coherent(st->dma_st.dma_chan->device->dev, pages * PAGE_SIZE, in at91_adc_dma_init()
1541 st->dma_st.rx_buf, st->dma_st.rx_dma_buf); in at91_adc_dma_init()
1543 dma_release_channel(st->dma_st.dma_chan); in at91_adc_dma_init()
1544 st->dma_st.dma_chan = NULL; in at91_adc_dma_init()
1558 if (!st->dma_st.dma_chan) in at91_adc_dma_disable()
1562 dmaengine_terminate_sync(st->dma_st.dma_chan); in at91_adc_dma_disable()
1564 dma_free_coherent(st->dma_st.dma_chan->device->dev, pages * PAGE_SIZE, in at91_adc_dma_disable()
1565 st->dma_st.rx_buf, st->dma_st.rx_dma_buf); in at91_adc_dma_disable()
1566 dma_release_channel(st->dma_st.dma_chan); in at91_adc_dma_disable()
1567 st->dma_st.dma_chan = NULL; in at91_adc_dma_disable()
1586 st->dma_st.watermark = val; in at91_adc_set_watermark()
1653 return scnprintf(buf, PAGE_SIZE, "%d\n", !!st->dma_st.dma_chan); in at91_adc_get_fifo_state()
1662 return scnprintf(buf, PAGE_SIZE, "%d\n", st->dma_st.watermark); in at91_adc_get_watermark()
1790 st->dma_st.phys_addr = res->start; in at91_adc_probe()
1855 st->dma_st.watermark = 1; in at91_adc_probe()