提交 1e39221e 编写于 作者: S Seth Forshee 提交者: Jaroslav Kysela

[ALSA] ASoC DAPM switching for reentrant codec paths

This patch fixes an issue whereby power was applied to any inactive
analog path that would leave and reenter a codec (e.g. ACOP -> ACIN on
WM8753).  This change now checks for such paths and DAPM will power them
down when not in use.
Signed-off-by: NSeth Forshee <seth.forshee@gmail.com>
Signed-off-by: NLiam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
Signed-off-by: NJaroslav Kysela <perex@suse.cz>
上级 30652c45
...@@ -882,13 +882,15 @@ int snd_soc_dapm_connect_input(struct snd_soc_codec *codec, const char *sink, ...@@ -882,13 +882,15 @@ int snd_soc_dapm_connect_input(struct snd_soc_codec *codec, const char *sink,
if (wsink->id == snd_soc_dapm_input) { if (wsink->id == snd_soc_dapm_input) {
if (wsource->id == snd_soc_dapm_micbias || if (wsource->id == snd_soc_dapm_micbias ||
wsource->id == snd_soc_dapm_mic || wsource->id == snd_soc_dapm_mic ||
wsink->id == snd_soc_dapm_line) wsink->id == snd_soc_dapm_line ||
wsink->id == snd_soc_dapm_output)
wsink->ext = 1; wsink->ext = 1;
} }
if (wsource->id == snd_soc_dapm_output) { if (wsource->id == snd_soc_dapm_output) {
if (wsink->id == snd_soc_dapm_spk || if (wsink->id == snd_soc_dapm_spk ||
wsink->id == snd_soc_dapm_hp || wsink->id == snd_soc_dapm_hp ||
wsink->id == snd_soc_dapm_line) wsink->id == snd_soc_dapm_line ||
wsink->id == snd_soc_dapm_input)
wsource->ext = 1; wsource->ext = 1;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册