ASoC: SOF: sof-audio: unprepare when swidget->use_count > 0
authorBard Liao <yung-chuan.liao@linux.intel.com>
Wed, 18 Jan 2023 10:12:53 +0000 (12:12 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 18 Jan 2023 12:08:31 +0000 (12:08 +0000)
We should unprepare the widget if its use_count = 1.

Fixes: 9862dcf70245 ("ASoC: SOF: don't unprepare widget used other pipelines")
Cc: <stable@vger.kernel.org> # 6.1
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20230118101255.29139-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/sof-audio.c

index 7306a26..e52ef62 100644 (file)
@@ -272,7 +272,7 @@ sof_unprepare_widgets_in_path(struct snd_sof_dev *sdev, struct snd_soc_dapm_widg
        struct snd_soc_dapm_path *p;
 
        /* return if the widget is in use or if it is already unprepared */
-       if (!swidget->prepared || swidget->use_count > 1)
+       if (!swidget->prepared || swidget->use_count > 0)
                return;
 
        if (widget_ops[widget->id].ipc_unprepare)