ASoC: rsnd: add rsnd_dai_stream_quit()
Current Renesas R-Car sound driver calls rsnd_dai_stream_init() when start, but it didn't call paired function. This patch adds rsnd_dai_stream_quit() for it. This is prepare for interrupt error status check feature support. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Tested-by: Keita Kobayashi <keita.kobayashi.ym@renesas.com> Tested by: Cao Minh Hiep <cm-hiep@jinso.co.jp> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
b847357979
commit
5626ad0866
|
@ -315,7 +315,7 @@ void rsnd_dai_pointer_update(struct rsnd_dai_stream *io, int byte)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rsnd_dai_stream_init(struct rsnd_dai_stream *io,
|
static void rsnd_dai_stream_init(struct rsnd_dai_stream *io,
|
||||||
struct snd_pcm_substream *substream)
|
struct snd_pcm_substream *substream)
|
||||||
{
|
{
|
||||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||||
|
@ -327,8 +327,11 @@ static int rsnd_dai_stream_init(struct rsnd_dai_stream *io,
|
||||||
runtime->channels *
|
runtime->channels *
|
||||||
samples_to_bytes(runtime, 1);
|
samples_to_bytes(runtime, 1);
|
||||||
io->next_period_byte = io->byte_per_period;
|
io->next_period_byte = io->byte_per_period;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
static void rsnd_dai_stream_quit(struct rsnd_dai_stream *io)
|
||||||
|
{
|
||||||
|
io->substream = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
|
@ -363,9 +366,7 @@ static int rsnd_soc_dai_trigger(struct snd_pcm_substream *substream, int cmd,
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case SNDRV_PCM_TRIGGER_START:
|
case SNDRV_PCM_TRIGGER_START:
|
||||||
ret = rsnd_dai_stream_init(io, substream);
|
rsnd_dai_stream_init(io, substream);
|
||||||
if (ret < 0)
|
|
||||||
goto dai_trigger_end;
|
|
||||||
|
|
||||||
ret = rsnd_platform_call(priv, dai, start, ssi_id);
|
ret = rsnd_platform_call(priv, dai, start, ssi_id);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
@ -391,6 +392,8 @@ static int rsnd_soc_dai_trigger(struct snd_pcm_substream *substream, int cmd,
|
||||||
ret = rsnd_platform_call(priv, dai, stop, ssi_id);
|
ret = rsnd_platform_call(priv, dai, stop, ssi_id);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto dai_trigger_end;
|
goto dai_trigger_end;
|
||||||
|
|
||||||
|
rsnd_dai_stream_quit(io);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
|
|
Loading…
Reference in New Issue