]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ASoC: SOF: pcm: invoke platform hw_free for STOP/SUSPEND triggers
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Thu, 25 Nov 2021 10:15:14 +0000 (12:15 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 26 Nov 2021 13:24:19 +0000 (13:24 +0000)
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>
sound/soc/sof/pcm.c

index 1bf7e60be77216a676069615242d9821661e107f..1d0d90551e8f878a7a06ed466cae77a58160a40a 100644 (file)
@@ -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);