DMA engine doesn't allow callbacks in Interrupt context.

priyaranjan priyaranjan45678 at
Wed May 17 08:50:44 EDT 2017

Hello All,

I have some queries related to the following patch :-

Author: Russell King <rmk+kernel at>
Date:   Mon May 14 15:17:20 2012 +0100

    dmaengine: virt-dma: add support for cyclic DMA periodic callbacks

    Add support for cyclic DMA's periodic callbacks.  Drivers are expected
    to call vchan_cyclic_callback() when a period has completed, which will
    schedule the tasklet to make the callback into the driver.

    As callbacks are made from tasklet context, it is important to realise
    that we don't guarantee a callback for each completed period, but for
    N completed periods where N may be greater than one.

    Tested-by: Linus Walleij <linus.walleij at>
    Signed-off-by: Russell King <rmk+kernel at>

After the patch is submitted there is no guarantee for intermediate
callbacks for the cyclic DMA as mentioned in the
patch. Please let me know if my understanding is correct. I have a use-case
in my audio driver such that all intermediate
callbacks are necessary to handle as they get involve in updating other
Data structures and triggering other DMAs.

Please help me to understand this.

-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Kernelnewbies mailing list