Merge remote-tracking branch 'asoc/topic/pcm' into asoc-next
authorMark Brown <broonie@kernel.org>
Sun, 13 Mar 2016 08:16:30 +0000 (15:16 +0700)
committerMark Brown <broonie@kernel.org>
Sun, 13 Mar 2016 08:16:30 +0000 (15:16 +0700)
1  2 
sound/soc/soc-pcm.c

diff --combined sound/soc/soc-pcm.c
@@@ -1810,8 -1810,7 +1810,8 @@@ int dpcm_be_dai_hw_free(struct snd_soc_
                    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PREPARE) &&
                    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_FREE) &&
                    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED) &&
 -                  (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP))
 +                  (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP) &&
 +                  (be->dpcm[stream].state != SND_SOC_DPCM_STATE_SUSPEND))
                        continue;
  
                dev_dbg(be->dev, "ASoC: hw_free BE %s\n",
@@@ -1867,18 -1866,6 +1867,6 @@@ int dpcm_be_dai_hw_params(struct snd_so
                if (!snd_soc_dpcm_be_can_update(fe, be, stream))
                        continue;
  
-               /* only allow hw_params() if no connected FEs are running */
-               if (!snd_soc_dpcm_can_be_params(fe, be, stream))
-                       continue;
-               if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_OPEN) &&
-                   (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_PARAMS) &&
-                   (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_FREE))
-                       continue;
-               dev_dbg(be->dev, "ASoC: hw_params BE %s\n",
-                       dpcm->fe->dai_link->name);
                /* copy params for each dpcm */
                memcpy(&dpcm->hw_params, &fe->dpcm[stream].hw_params,
                                sizeof(struct snd_pcm_hw_params));
                        }
                }
  
+               /* only allow hw_params() if no connected FEs are running */
+               if (!snd_soc_dpcm_can_be_params(fe, be, stream))
+                       continue;
+               if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_OPEN) &&
+                   (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_PARAMS) &&
+                   (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_FREE))
+                       continue;
+               dev_dbg(be->dev, "ASoC: hw_params BE %s\n",
+                       dpcm->fe->dai_link->name);
                ret = soc_pcm_hw_params(be_substream, &dpcm->hw_params);
                if (ret < 0) {
                        dev_err(dpcm->be->dev,