• Lars-Peter Clausen's avatar
    iio: Add generic DMA buffer infrastructure · 670b19ae
    Lars-Peter Clausen authored
    The traditional approach used in IIO to implement buffered capture requires
    the generation of at least one interrupt per sample. In the interrupt
    handler the driver reads the sample from the device and copies it to a
    software buffer. This approach has a rather large per sample overhead
    associated with it. And while it works fine for samplerates in the range of
    up to 1000 samples per second it starts to consume a rather large share of
    the available CPU processing time once we go beyond that, this is
    especially true on an embedded system with limited processing power. The
    regular interrupt also causes increased power consumption by not allowing
    the hardware into deeper sleep states, which is something that becomes more
    and more important on mobile battery powered devices.
    
    And while the recently added watermark support mitigates some of the issues
    by allowing the device to generate interrupts at a rate lower than the data
    output rate, this still requires a storage ...
    670b19ae
industrialio-buffer-dma.c 20.5 KB