ASoC: Prevent pop_wait overwrite
[firefly-linux-kernel-4.4.55.git] / sound / soc / soc-pcm.c
index ef22d0bd9e9e62725f25f472aec279b75cf56e64..3a2423bd84b20877828316c1b3f14b90ff5ee9c7 100644 (file)
@@ -333,11 +333,11 @@ static void close_delayed_work(struct work_struct *work)
        pr_debug("pop wq checking: %s status: %s waiting: %s\n",
                 codec_dai->driver->playback.stream_name,
                 codec_dai->playback_active ? "active" : "inactive",
-                codec_dai->pop_wait ? "yes" : "no");
+                rtd->pop_wait ? "yes" : "no");
 
        /* are we waiting on this codec DAI stream */
-       if (codec_dai->pop_wait == 1) {
-               codec_dai->pop_wait = 0;
+       if (rtd->pop_wait == 1) {
+               rtd->pop_wait = 0;
                snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_PLAYBACK,
                                          SND_SOC_DAPM_STREAM_STOP);
        }
@@ -407,7 +407,7 @@ static int soc_pcm_close(struct snd_pcm_substream *substream)
                                                  SND_SOC_DAPM_STREAM_STOP);
                } else {
                        /* start delayed pop wq here for playback streams */
-                       codec_dai->pop_wait = 1;
+                       rtd->pop_wait = 1;
                        schedule_delayed_work(&rtd->delayed_work,
                                msecs_to_jiffies(rtd->pmdown_time));
                }
@@ -478,8 +478,8 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream)
 
        /* cancel any delayed stream shutdown that is pending */
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
-           codec_dai->pop_wait) {
-               codec_dai->pop_wait = 0;
+           rtd->pop_wait) {
+               rtd->pop_wait = 0;
                cancel_delayed_work(&rtd->delayed_work);
        }