Unverified Commit 9862dcf7 authored by Rander Wang's avatar Rander Wang Committed by Mark Brown
Browse files

ASoC: SOF: don't unprepare widget used other pipelines



If multiple pipeline are mixed into one, we can't unprepare
the widget used by other pipelines. This patch checks use_count
to address this case.

Reviewed-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: default avatarRander Wang <rander.wang@intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20220920150107.2090695-3-pierre-louis.bossart@linux.intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent ce59804d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -271,8 +271,8 @@ sof_unprepare_widgets_in_path(struct snd_sof_dev *sdev, struct snd_soc_dapm_widg
	struct snd_sof_widget *swidget = widget->dobj.private;
	struct snd_soc_dapm_path *p;

	/* it is already unprepared */
	if (!swidget->prepared)
	/* return if the widget is in use or if it is already unprepared */
	if (!swidget->prepared || swidget->use_count > 1)
		return;

	if (widget_ops[widget->id].ipc_unprepare)