OSDN Git Service

ASoC: msm: Fix repeated reg phy stream issue
authorCong Tang <congt@codeaurora.org>
Tue, 6 Mar 2018 04:04:19 +0000 (12:04 +0800)
committerGerrit - the friendly Code Review server <code-review@localhost>
Fri, 9 Mar 2018 04:13:05 +0000 (20:13 -0800)
Fix repeated reg phy stream issue in loopback driver
which cause audio dsp calibration failure due to
rtac device could not remove successfully.

Change-Id: Ifa1b9cd579bc313d4addc00d48a8b4b636181220
Signed-off-by: Cong Tang <congt@codeaurora.org>
sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c

index 476789c..15f4b49 100644 (file)
@@ -416,6 +416,12 @@ static int msm_pcm_prepare(struct snd_pcm_substream *substream)
 
        dev_dbg(rtd->platform->dev, "%s: ASM loopback stream:%d\n",
                __func__, substream->stream);
+
+       if (pcm->playback_start && pcm->capture_start) {
+               mutex_unlock(&pcm->lock);
+               return ret;
+       }
+
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
                if (!pcm->playback_start)
                        pcm->playback_start = 1;
@@ -424,7 +430,7 @@ static int msm_pcm_prepare(struct snd_pcm_substream *substream)
                        pcm->capture_start = 1;
        }
 
-       if (pcm->instance == 2) {
+       if (pcm->playback_start && pcm->capture_start) {
                struct snd_soc_pcm_runtime *soc_pcm_rx =
                                pcm->playback_substream->private_data;
                struct snd_soc_pcm_runtime *soc_pcm_tx =