diff options
author | Seth Forshee <seth.forshee@gmail.com> | 2007-04-16 09:36:42 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-05-11 10:56:00 -0400 |
commit | 1e39221eba72e4af37b40e71749b0c18bb16b9a6 (patch) | |
tree | d304dcd1f69e9311a327edd21b3f22abdd2b2ddc /sound/soc/soc-dapm.c | |
parent | 30652c4506c8bbfdf869ddc4c238e07de038f02a (diff) |
[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>
Diffstat (limited to 'sound/soc/soc-dapm.c')
-rw-r--r-- | sound/soc/soc-dapm.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 7caf8c7b0ac5..96bce55572a0 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -882,13 +882,15 @@ int snd_soc_dapm_connect_input(struct snd_soc_codec *codec, const char *sink, | |||
882 | if (wsink->id == snd_soc_dapm_input) { | 882 | if (wsink->id == snd_soc_dapm_input) { |
883 | if (wsource->id == snd_soc_dapm_micbias || | 883 | if (wsource->id == snd_soc_dapm_micbias || |
884 | wsource->id == snd_soc_dapm_mic || | 884 | wsource->id == snd_soc_dapm_mic || |
885 | wsink->id == snd_soc_dapm_line) | 885 | wsink->id == snd_soc_dapm_line || |
886 | wsink->id == snd_soc_dapm_output) | ||
886 | wsink->ext = 1; | 887 | wsink->ext = 1; |
887 | } | 888 | } |
888 | if (wsource->id == snd_soc_dapm_output) { | 889 | if (wsource->id == snd_soc_dapm_output) { |
889 | if (wsink->id == snd_soc_dapm_spk || | 890 | if (wsink->id == snd_soc_dapm_spk || |
890 | wsink->id == snd_soc_dapm_hp || | 891 | wsink->id == snd_soc_dapm_hp || |
891 | wsink->id == snd_soc_dapm_line) | 892 | wsink->id == snd_soc_dapm_line || |
893 | wsink->id == snd_soc_dapm_input) | ||
892 | wsource->ext = 1; | 894 | wsource->ext = 1; |
893 | } | 895 | } |
894 | 896 | ||