On Fri, Apr 27, 2012 at 03:52:10PM +0530, Vinod Koul wrote:
On Fri, 2012-04-27 at 16:41 +0800, Richard Zhao wrote:
On Fri, Apr 27, 2012 at 01:51:40PM +0530, Vinod Koul wrote:
On Fri, 2012-04-27 at 15:02 +0800, Richard Zhao wrote:
device_prep_dma_cyclic may be call in audio trigger function which is atomic context, so we make it atomic too.
No this is wrong behavior. You should not call dma prepare functions in any of the sound trigger calls. It would make sense to move this in sound prepare callback.
Then, could you please doc it somewhere? I think I'm not the only one confused.
See the soc-dmaengine.c for correct behavior!
Do you mean sound/soc/soc-dmaengine-pcm.c ? It's where it calls dma prepare in trigger function. snd_dmaengine_pcm_trigger --> dmaengine_pcm_prepare_and_submit --> dmaengine_prep_dma_cyclic
I can document only dmaengine behavior (which is already there)
Sure, I mean, can you doc in include/linux/dmaengine.h that dmaengine_prep_xxx may sleep?
and not how each subsystem should use this. People is subsystems need to see how to use the dmaengine APIs sanely
Thanks Richard
-- ~Vinod