mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
ASoC: soc-core: care .ignore_suspend for Component suspend
Card dai_link has .ignore_suspend, and ALSA SoC cares it when suspend. For example, like this for_each_card_rtds(card, rtd) { if (rtd->dai_link->ignore_suspend) continue; ... } But in snd_soc_suspend(), it doesn't care about it when suspending Component. This patch cares it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/877e20t4vh.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
12b052327d
commit
1272063a7e
@ -562,15 +562,25 @@ int snd_soc_suspend(struct device *dev)
|
|||||||
snd_soc_dapm_sync(&card->dapm);
|
snd_soc_dapm_sync(&card->dapm);
|
||||||
|
|
||||||
/* suspend all COMPONENTs */
|
/* suspend all COMPONENTs */
|
||||||
for_each_card_components(card, component) {
|
for_each_card_rtds(card, rtd) {
|
||||||
struct snd_soc_dapm_context *dapm =
|
|
||||||
|
if (rtd->dai_link->ignore_suspend)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for_each_rtd_components(rtd, i, component) {
|
||||||
|
struct snd_soc_dapm_context *dapm =
|
||||||
snd_soc_component_get_dapm(component);
|
snd_soc_component_get_dapm(component);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there are paths active then the COMPONENT will be held
|
* ignore if component was already suspended
|
||||||
* with bias _ON and should not be suspended.
|
*/
|
||||||
*/
|
if (snd_soc_component_is_suspended(component))
|
||||||
if (!snd_soc_component_is_suspended(component)) {
|
continue;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If there are paths active then the COMPONENT will be
|
||||||
|
* held with bias _ON and should not be suspended.
|
||||||
|
*/
|
||||||
switch (snd_soc_dapm_get_bias_level(dapm)) {
|
switch (snd_soc_dapm_get_bias_level(dapm)) {
|
||||||
case SND_SOC_BIAS_STANDBY:
|
case SND_SOC_BIAS_STANDBY:
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user