12 Dec
2018
12 Dec
'18
12:32 p.m.
On Tue, 11 Dec 2018 22:23:15 +0100, Pierre-Louis Bossart wrote:
+#define RUNTIME_PM 1
What's this? This seems used in snd_soc_runtime_suspend() and _resume(). But it's a just normal boolean flag, no?
+static void sof_suspend_streams(struct snd_sof_dev *sdev) +{
- struct snd_sof_pcm *spcm;
- struct snd_pcm_substream *substream;
- int dir;
- /* suspend all running streams */
- list_for_each_entry(spcm, &sdev->pcm_list, list) {
mutex_lock(&spcm->mutex);
/* suspend running playback stream */
dir = SNDRV_PCM_STREAM_PLAYBACK;
substream = spcm->stream[dir].substream;
if (substream && substream->runtime) {
snd_pcm_suspend(substream);
/*
* set restore_stream so that hw_params can be
* restored during resume
*/
spcm->restore_stream[dir] = 1;
}
/* suspend running capture stream */
dir = SNDRV_PCM_STREAM_CAPTURE;
substream = spcm->stream[dir].substream;
if (substream && substream->runtime) {
snd_pcm_suspend(substream);
/*
* set restore_stream so that hw_params can be
* restored during resume
*/
spcm->restore_stream[dir] = 1;
}
Both playback and capture do the same thing, so this can be a loop of dir.
thanks,
Takashi