summaryrefslogtreecommitdiffstats
path: root/sound/soc/sof/pcm.c
diff options
context:
space:
mode:
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>2021-11-25 12:15:14 +0200
committerMark Brown <broonie@kernel.org>2021-11-26 13:24:19 +0000
commit0dd71a3340b92b503278af4565156f086ccbca3f (patch)
tree59f0fb9fb676e852774811b07953ce4d7f56e7be /sound/soc/sof/pcm.c
parent4794601a52d40a425542be1b88f8f5614fcf45b4 (diff)
downloadlinux-0dd71a3340b92b503278af4565156f086ccbca3f.tar.bz2
ASoC: SOF: pcm: invoke platform hw_free for STOP/SUSPEND triggers
snd_sof_pcm_platform_hw_params() will be called when the stream is restarted with a prepare ioctl. This happens in two cases i.e. when a suspended stream is resumed or when a stream is restarted without intermediate call to sof_pcm_hw_free(). Make sure to call snd_sof_pcm_platform_hw_free() in both these cases to keep it balanced. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20211125101520.291581-5-kai.vehmanen@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/pcm.c')
-rw-r--r--sound/soc/sof/pcm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
index 1bf7e60be772..1d0d90551e8f 100644
--- a/sound/soc/sof/pcm.c
+++ b/sound/soc/sof/pcm.c
@@ -470,6 +470,10 @@ static int sof_pcm_trigger(struct snd_soc_component *component,
if (ret < 0)
return ret;
+ ret = snd_sof_pcm_platform_hw_free(sdev, substream);
+ if (ret < 0)
+ return ret;
+
/* free widget list only for SUSPEND trigger */
if (free_widget_list)
ret = sof_widget_list_free(sdev, spcm, substream->stream);