Re: [RFC/PATCH] Stop Apple i2s DMA gracefully

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux