static int msm_pcm_playback_close(struct snd_pcm_substream *substream) { struct snd_pcm_runtime *runtime = substream->runtime; struct msm_audio *prtd = runtime->private_data; alsa_audio_disable(prtd); audmgr_close(&prtd->audmgr); kfree(prtd); return 0; }
static int msm_pcm_playback_close(struct snd_pcm_substream *substream) { struct snd_pcm_runtime *runtime = substream->runtime; struct msm_audio *prtd = runtime->private_data; int rc = 0; pr_debug("%s()\n", __func__); /* pcm dmamiss message is sent continously * when decoder is starved so no race * condition concern */ if (prtd->enabled) rc = wait_event_interruptible(the_locks.eos_wait, prtd->eos_ack); alsa_audio_disable(prtd); audmgr_close(&prtd->audmgr); kfree(prtd); return 0; }