diff options
-rw-r--r-- | sound/soc/soc-pcm.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index 1af4f23697a7..aa99dac31b3b 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c | |||
@@ -1867,18 +1867,6 @@ int dpcm_be_dai_hw_params(struct snd_soc_pcm_runtime *fe, int stream) | |||
1867 | if (!snd_soc_dpcm_be_can_update(fe, be, stream)) | 1867 | if (!snd_soc_dpcm_be_can_update(fe, be, stream)) |
1868 | continue; | 1868 | continue; |
1869 | 1869 | ||
1870 | /* only allow hw_params() if no connected FEs are running */ | ||
1871 | if (!snd_soc_dpcm_can_be_params(fe, be, stream)) | ||
1872 | continue; | ||
1873 | |||
1874 | if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_OPEN) && | ||
1875 | (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_PARAMS) && | ||
1876 | (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_FREE)) | ||
1877 | continue; | ||
1878 | |||
1879 | dev_dbg(be->dev, "ASoC: hw_params BE %s\n", | ||
1880 | dpcm->fe->dai_link->name); | ||
1881 | |||
1882 | /* copy params for each dpcm */ | 1870 | /* copy params for each dpcm */ |
1883 | memcpy(&dpcm->hw_params, &fe->dpcm[stream].hw_params, | 1871 | memcpy(&dpcm->hw_params, &fe->dpcm[stream].hw_params, |
1884 | sizeof(struct snd_pcm_hw_params)); | 1872 | sizeof(struct snd_pcm_hw_params)); |
@@ -1895,6 +1883,18 @@ int dpcm_be_dai_hw_params(struct snd_soc_pcm_runtime *fe, int stream) | |||
1895 | } | 1883 | } |
1896 | } | 1884 | } |
1897 | 1885 | ||
1886 | /* only allow hw_params() if no connected FEs are running */ | ||
1887 | if (!snd_soc_dpcm_can_be_params(fe, be, stream)) | ||
1888 | continue; | ||
1889 | |||
1890 | if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_OPEN) && | ||
1891 | (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_PARAMS) && | ||
1892 | (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_FREE)) | ||
1893 | continue; | ||
1894 | |||
1895 | dev_dbg(be->dev, "ASoC: hw_params BE %s\n", | ||
1896 | dpcm->fe->dai_link->name); | ||
1897 | |||
1898 | ret = soc_pcm_hw_params(be_substream, &dpcm->hw_params); | 1898 | ret = soc_pcm_hw_params(be_substream, &dpcm->hw_params); |
1899 | if (ret < 0) { | 1899 | if (ret < 0) { |
1900 | dev_err(dpcm->be->dev, | 1900 | dev_err(dpcm->be->dev, |