diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/wm_hubs.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c index f13f2886339c..6c028c470601 100644 --- a/sound/soc/codecs/wm_hubs.c +++ b/sound/soc/codecs/wm_hubs.c | |||
@@ -1035,7 +1035,7 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec, | |||
1035 | enum snd_soc_bias_level level) | 1035 | enum snd_soc_bias_level level) |
1036 | { | 1036 | { |
1037 | struct wm_hubs_data *hubs = snd_soc_codec_get_drvdata(codec); | 1037 | struct wm_hubs_data *hubs = snd_soc_codec_get_drvdata(codec); |
1038 | int val; | 1038 | int mask, val; |
1039 | 1039 | ||
1040 | switch (level) { | 1040 | switch (level) { |
1041 | case SND_SOC_BIAS_STANDBY: | 1041 | case SND_SOC_BIAS_STANDBY: |
@@ -1047,6 +1047,13 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec, | |||
1047 | case SND_SOC_BIAS_ON: | 1047 | case SND_SOC_BIAS_ON: |
1048 | /* Turn off any unneded single ended outputs */ | 1048 | /* Turn off any unneded single ended outputs */ |
1049 | val = 0; | 1049 | val = 0; |
1050 | mask = 0; | ||
1051 | |||
1052 | if (hubs->lineout1_se) | ||
1053 | mask |= WM8993_LINEOUT1N_ENA | WM8993_LINEOUT1P_ENA; | ||
1054 | |||
1055 | if (hubs->lineout2_se) | ||
1056 | mask |= WM8993_LINEOUT2N_ENA | WM8993_LINEOUT2P_ENA; | ||
1050 | 1057 | ||
1051 | if (hubs->lineout1_se && hubs->lineout1n_ena) | 1058 | if (hubs->lineout1_se && hubs->lineout1n_ena) |
1052 | val |= WM8993_LINEOUT1N_ENA; | 1059 | val |= WM8993_LINEOUT1N_ENA; |
@@ -1061,11 +1068,7 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec, | |||
1061 | val |= WM8993_LINEOUT2P_ENA; | 1068 | val |= WM8993_LINEOUT2P_ENA; |
1062 | 1069 | ||
1063 | snd_soc_update_bits(codec, WM8993_POWER_MANAGEMENT_3, | 1070 | snd_soc_update_bits(codec, WM8993_POWER_MANAGEMENT_3, |
1064 | WM8993_LINEOUT1N_ENA | | 1071 | mask, val); |
1065 | WM8993_LINEOUT1P_ENA | | ||
1066 | WM8993_LINEOUT2N_ENA | | ||
1067 | WM8993_LINEOUT2P_ENA, | ||
1068 | val); | ||
1069 | 1072 | ||
1070 | /* Remove the input clamps */ | 1073 | /* Remove the input clamps */ |
1071 | snd_soc_update_bits(codec, WM8993_INPUTS_CLAMP_REG, | 1074 | snd_soc_update_bits(codec, WM8993_INPUTS_CLAMP_REG, |