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

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

ASoC: sh: fsi: call fsi_hw_startup/shutdown from fsi_dai_trigger()



fsi_hw_startup/shutdown() needs the setup of bus width,
but it is impossible to get parameter of snd_pcm_runtime at this timing.
So, these functions are changed so that be called from fsi_dai_trigger().

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 9c59dd34
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1232,7 +1232,9 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream,
{
	struct fsi_priv *fsi = fsi_get_priv(substream);

	return fsi_hw_startup(fsi, fsi_stream_get(fsi, substream), dai->dev);
	fsi->rate = 0;

	return 0;
}

static void fsi_dai_shutdown(struct snd_pcm_substream *substream,
@@ -1240,7 +1242,6 @@ static void fsi_dai_shutdown(struct snd_pcm_substream *substream,
{
	struct fsi_priv *fsi = fsi_get_priv(substream);

	fsi_hw_shutdown(fsi, dai->dev);
	fsi->rate = 0;
}

@@ -1254,11 +1255,13 @@ static int fsi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
	switch (cmd) {
	case SNDRV_PCM_TRIGGER_START:
		fsi_stream_init(fsi, io, substream);
		fsi_hw_startup(fsi, io, dai->dev);
		ret = fsi_stream_transfer(io);
		if (0 == ret)
			fsi_stream_start(fsi, io);
		break;
	case SNDRV_PCM_TRIGGER_STOP:
		fsi_hw_shutdown(fsi, dai->dev);
		fsi_stream_stop(fsi, io);
		fsi_stream_quit(fsi, io);
		break;