From fc37483e72cae53c8eb1ec8f4337f51dd41d0c25 Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Tue, 30 Jun 2020 08:19:47 +0800 Subject: [PATCH] asoc: wsa883x: Add dapm ignore suspend for DAIs Add dapm ignore suspend for playback DAIs to avoid widget down during suspend. Change-Id: I64347f9cb9d425096c5710e802805388adecd68f Signed-off-by: Meng Wang --- asoc/codecs/wsa883x/wsa883x.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/asoc/codecs/wsa883x/wsa883x.c b/asoc/codecs/wsa883x/wsa883x.c index 8993c102b9..58016289d1 100644 --- a/asoc/codecs/wsa883x/wsa883x.c +++ b/asoc/codecs/wsa883x/wsa883x.c @@ -1217,9 +1217,14 @@ static int wsa883x_codec_probe(struct snd_soc_component *component) int variant = 0, version = 0; struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component); + char w_name[100]; if (!wsa883x) return -EINVAL; + + if (!component->name_prefix) + return -EINVAL; + snd_soc_component_init_regmap(component, wsa883x->regmap); dev = wsa883x->swr_slave; @@ -1238,6 +1243,22 @@ static int wsa883x_codec_probe(struct snd_soc_component *component) snd_soc_dapm_ignore_suspend(dapm, wsa883x->dai_driver->playback.stream_name); + + memset(w_name, 0, 100); + strlcpy(w_name, component->name_prefix, 100); + strlcat(w_name, " IN", 100); + snd_soc_dapm_ignore_suspend(dapm, w_name); + + memset(w_name, 0, 100); + strlcpy(w_name, component->name_prefix, 100); + strlcat(w_name, " SWR DAC_PORT", 100); + snd_soc_dapm_ignore_suspend(dapm, w_name); + + memset(w_name, 0, 100); + strlcpy(w_name, component->name_prefix, 100); + strlcat(w_name, " SPKR", 100); + snd_soc_dapm_ignore_suspend(dapm, w_name); + snd_soc_dapm_sync(dapm); return 0;