Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5626ad08 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

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: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: default avatarKeita Kobayashi <keita.kobayashi.ym@renesas.com>
Tested by: Cao Minh Hiep <cm-hiep@jinso.co.jp>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b8473579
Loading
Loading
Loading
Loading
+8 −5
Original line number Original line Diff line number Diff line
@@ -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;