ASoC: rsnd: tidyup src->convert_rate reset timing
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 6 Apr 2017 07:24:36 +0000 (07:24 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 6 Apr 2017 10:47:15 +0000 (11:47 +0100)
Current src->convert_rate will be set on .hw_param, and
be reset on .quit timing.
But, .hw_param will not be called again if user did Ctrl-Z + fg.
It should be reset on initial of .hw_param to keep its value.
Here, ctu.c already do this.
This patch solves this issue, other wise, MIXed sound will be
strange if user did like below.

> aplay -D plughw:0,0 sound_44100.wav &
> aplay -D plughw:0,1 sound_96000.wav
> Ctrl-Z
> fg # 96kHz will be played as 44.1kHz

Reported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/src.c

index 42db48d..20b5b2e 100644 (file)
@@ -167,6 +167,7 @@ static int rsnd_src_hw_params(struct rsnd_mod *mod,
         *      dpcm_fe_dai_hw_params()
         *      dpcm_be_dai_hw_params()
         */
+       src->convert_rate = 0;
        if (fe->dai_link->dynamic) {
                int stream = substream->stream;
                struct snd_soc_dpcm *dpcm;
@@ -414,8 +415,6 @@ static int rsnd_src_quit(struct rsnd_mod *mod,
 
        rsnd_mod_power_off(mod);
 
-       src->convert_rate = 0;
-
        /* reset sync convert_rate */
        src->sync.val = 0;