[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: Seth Forshee <seth.forshee@gmail.com> Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
committed by
Jaroslav Kysela
parent
30652c4506
commit
1e39221eba
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user