aboutsummaryrefslogtreecommitdiff
path: root/sound/soc/sof/sof-audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/sof/sof-audio.c')
-rw-r--r--sound/soc/sof/sof-audio.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/soc/sof/sof-audio.c b/sound/soc/sof/sof-audio.c
index a4b9bb99bced..b52a453ae9d7 100644
--- a/sound/soc/sof/sof-audio.c
+++ b/sound/soc/sof/sof-audio.c
@@ -276,6 +276,7 @@ int sof_restore_pipelines(struct device *dev)
return ret;
}
+ sroute->setup = true;
}
/* restore dai links */
@@ -317,6 +318,20 @@ int sof_restore_pipelines(struct device *dev)
return ret;
}
+/* This function doesn't free widgets. It only resets the set up status for all routes */
+void sof_tear_down_pipelines(struct device *dev)
+{
+ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
+ struct snd_sof_route *sroute;
+
+ /*
+ * No need to protect sroute->setup as this function is called only during the suspend
+ * callback and all streams should be suspended by then
+ */
+ list_for_each_entry(sroute, &sdev->route_list, list)
+ sroute->setup = false;
+}
+
/*
* Generic object lookup APIs.
*/