[RFC] ASoC: soc-dapm: Skip suspending widgets with ignore flag

Message ID 20191009104603.15412-1-srinivas.kandagatla@linaro.org
State New
Headers show
Series
  • [RFC] ASoC: soc-dapm: Skip suspending widgets with ignore flag
Related show

Commit Message

Srinivas Kandagatla Oct. 9, 2019, 10:46 a.m.
From: Sudheer Papothi <spapothi@codeaurora.org>


For wigdets which have set the suspend ignore flag asoc framework
shouldn't mark them as dirty when ASoC suspend function is called.
This change adds check to skip suspending the widgets with the flag set.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>

Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

---
 sound/soc/soc-dapm.c | 2 ++
 1 file changed, 2 insertions(+)

-- 
2.21.0

Comments

Mark Brown Oct. 9, 2019, 4:47 p.m. | #1
On Wed, Oct 09, 2019 at 11:46:03AM +0100, Srinivas Kandagatla wrote:
> From: Sudheer Papothi <spapothi@codeaurora.org>

> 

> For wigdets which have set the suspend ignore flag asoc framework

> shouldn't mark them as dirty when ASoC suspend function is called.

> This change adds check to skip suspending the widgets with the flag set.


Why?  The goal here is to ensure we revalidate everything on
resume, and flow any changes out.  It doesn't actually result in
changes in state on these widgets if they're still powered on.

Patch

diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 13544f7c850b..4ecfd32e59b8 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -303,6 +303,8 @@  void dapm_mark_endpoints_dirty(struct snd_soc_card *card)
 	mutex_lock(&card->dapm_mutex);
 
 	list_for_each_entry(w, &card->widgets, list) {
+		if (w->ignore_suspend)
+			continue;
 		if (w->is_ep) {
 			dapm_mark_dirty(w, "Rechecking endpoints");
 			if (w->is_ep & SND_SOC_DAPM_EP_SINK)