[PATCH 4/4] staging: comedi: adl_pci9118: switch DMA buffers after writing samples

Ian Abbott abbotti at mev.co.uk
Tue Nov 11 11:35:05 UTC 2014


On 11/11/14 00:57, H Hartley Sweeten wrote:
> Currently the DMA buffers are switched before writing the current samples to
> the async buffer. This works but when the EOA event happens we end up with an
> outstanding DMA operation in progress that gets terminated by the (*cancel).
>
> Avoid the outstanding DMA operation by switching the DMA buffers after writing
> the samples. The driver will detect the EOA event and not retart the DMA.

I think the DMA buffer is switched early to try and avoid overruns in 
the hardware while the other buffer is being processed (by 
defragment_dma_buffer() and comedi_buf_write_samples()), so this patch 
is likely to reduce the maximum error-free throughput.

The combination of defragment_dma_buffer() and 
comedi_buf_write_samples() is a bit inefficient anyway, so perhaps we 
can drop this patch for now, and do a "no switch needed" test as part of 
another set of changes.  (I can work on that if you want.)

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-


More information about the devel mailing list