lkml.org 
[lkml]   [2019]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 339/434] ASoC: soc-pcm: check symmetry before hw_params
    Date
    From: Shengjiu Wang <shengjiu.wang@nxp.com>

    [ Upstream commit 5cca59516de5df9de6bdecb328dd55fb5bcccb41 ]

    This reverts commit 957ce0c6b8a1f (ASoC: soc-pcm: check symmetry after
    hw_params).

    That commit cause soc_pcm_params_symmetry can't take effect.
    cpu_dai->rate, cpu_dai->channels and cpu_dai->sample_bits
    are updated in the middle of soc_pcm_hw_params, so move
    soc_pcm_params_symmetry to the end of soc_pcm_hw_params is
    not a good solution, for judgement of symmetry in the function
    is always true.

    FIXME:
    According to the comments of that commit, I think the case
    described in the commit should disable symmetric_rates
    in Back-End, rather than changing the position of
    soc_pcm_params_symmetry.

    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Link: https://lore.kernel.org/r/1573555602-5403-1-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/soc-pcm.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
    index cdce96a3051b..a6e96cf1d8ff 100644
    --- a/sound/soc/soc-pcm.c
    +++ b/sound/soc/soc-pcm.c
    @@ -877,6 +877,11 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream,
    int i, ret = 0;

    mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
    +
    + ret = soc_pcm_params_symmetry(substream, params);
    + if (ret)
    + goto out;
    +
    if (rtd->dai_link->ops->hw_params) {
    ret = rtd->dai_link->ops->hw_params(substream, params);
    if (ret < 0) {
    @@ -958,9 +963,6 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream,
    }
    component = NULL;

    - ret = soc_pcm_params_symmetry(substream, params);
    - if (ret)
    - goto component_err;
    out:
    mutex_unlock(&rtd->card->pcm_mutex);
    return ret;
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-12-29 18:55    [W:6.330 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site