aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r--sound/soc/soc-core.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 94075256638..bd656db347e 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -288,15 +288,16 @@ static void close_delayed_work(struct work_struct *work)
288 if (codec_dai->pop_wait == 1) { 288 if (codec_dai->pop_wait == 1) {
289 289
290 codec_dai->pop_wait = 0; 290 codec_dai->pop_wait = 0;
291 snd_soc_dapm_stream_event(codec, codec_dai->playback.stream_name, 291 snd_soc_dapm_stream_event(codec,
292 codec_dai->playback.stream_name,
292 SND_SOC_DAPM_STREAM_STOP); 293 SND_SOC_DAPM_STREAM_STOP);
293 294
294 /* power down the codec power domain if no longer active */ 295 /* power down the codec power domain if no longer active */
295 if (codec->active == 0) { 296 if (codec->active == 0) {
296 dbg("pop wq D3 %s %s\n", codec->name, 297 dbg("pop wq D3 %s %s\n", codec->name,
297 codec_dai->playback.stream_name); 298 codec_dai->playback.stream_name);
298 if (codec->dapm_event) 299 snd_soc_dapm_device_event(socdev,
299 codec->dapm_event(codec, SNDRV_CTL_POWER_D3hot); 300 SNDRV_CTL_POWER_D3hot);
300 } 301 }
301 } 302 }
302 } 303 }
@@ -352,12 +353,12 @@ static int soc_codec_close(struct snd_pcm_substream *substream)
352 } else { 353 } else {
353 /* capture streams can be powered down now */ 354 /* capture streams can be powered down now */
354 snd_soc_dapm_stream_event(codec, 355 snd_soc_dapm_stream_event(codec,
355 codec_dai->capture.stream_name, SND_SOC_DAPM_STREAM_STOP); 356 codec_dai->capture.stream_name,
357 SND_SOC_DAPM_STREAM_STOP);
356 358
357 if (codec->active == 0 && codec_dai->pop_wait == 0){ 359 if (codec->active == 0 && codec_dai->pop_wait == 0)
358 if (codec->dapm_event) 360 snd_soc_dapm_device_event(socdev,
359 codec->dapm_event(codec, SNDRV_CTL_POWER_D3hot); 361 SNDRV_CTL_POWER_D3hot);
360 }
361 } 362 }
362 363
363 mutex_unlock(&pcm_mutex); 364 mutex_unlock(&pcm_mutex);
@@ -432,8 +433,7 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream)
432 /* no delayed work - do we need to power up codec */ 433 /* no delayed work - do we need to power up codec */
433 if (codec->dapm_state != SNDRV_CTL_POWER_D0) { 434 if (codec->dapm_state != SNDRV_CTL_POWER_D0) {
434 435
435 if (codec->dapm_event) 436 snd_soc_dapm_device_event(socdev, SNDRV_CTL_POWER_D1);
436 codec->dapm_event(codec, SNDRV_CTL_POWER_D1);
437 437
438 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 438 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
439 snd_soc_dapm_stream_event(codec, 439 snd_soc_dapm_stream_event(codec,
@@ -444,8 +444,7 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream)
444 codec_dai->capture.stream_name, 444 codec_dai->capture.stream_name,
445 SND_SOC_DAPM_STREAM_START); 445 SND_SOC_DAPM_STREAM_START);
446 446
447 if (codec->dapm_event) 447 snd_soc_dapm_device_event(socdev, SNDRV_CTL_POWER_D0);
448 codec->dapm_event(codec, SNDRV_CTL_POWER_D0);
449 if (codec_dai->dai_ops.digital_mute) 448 if (codec_dai->dai_ops.digital_mute)
450 codec_dai->dai_ops.digital_mute(codec_dai, 0); 449 codec_dai->dai_ops.digital_mute(codec_dai, 0);
451 450