At Thu, 02 Nov 2006 23:59:54 +0100, Johannes Berg wrote: > > On Fri, 2006-11-03 at 08:54 +1100, Paul Mackerras wrote: > > > True. Can the trigger function sleep in the suspend case? > > No idea. Takashi? The trigger callback cannot sleep in design. It's always atomic. Usually, the driver calls snd_pcm_suspend_all() in suspend callback, which triggers with SNDRV_PCM_TRIGGER_SUSPEND. In your case, this should terminate the DMA while SNDRV_PCM_TRIGGER_STOP continues the DMA. Or, put a sync call after snd_pcm_suspend_all() in the suspend callback. The implementation of resume depends on the hardware, BTW. In short, there is no snd_pcm_resume*() function. If your hardware supports the real resume (i.e. can restart the stream as it was), set SNDRV_PCM_INFO_RESUME flag in snd_pcm_hardware info field, and do the right thing in resume callback. If not (in many cases), the usual reset procedure is done (prepare, trigger-start), so the resume callback doesn't have to do any special thing about PCM. SNDRV_PCM_TRIGGER_SUSPEND should be handled just like a normal STOP trigger, in such a case. Takashi ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel