diff options
-rw-r--r-- | sound/soc/codecs/tlv320aic3x.c | 10 | ||||
-rw-r--r-- | sound/soc/codecs/wl1273.c | 3 | ||||
-rw-r--r-- | sound/soc/omap/omap-mcbsp.c | 2 |
3 files changed, 10 insertions, 5 deletions
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c index b3175860bcb4..94dc707d9022 100644 --- a/sound/soc/codecs/tlv320aic3x.c +++ b/sound/soc/codecs/tlv320aic3x.c | |||
@@ -1069,7 +1069,8 @@ static int aic3x_set_bias_level(struct snd_soc_codec *codec, | |||
1069 | case SND_SOC_BIAS_ON: | 1069 | case SND_SOC_BIAS_ON: |
1070 | break; | 1070 | break; |
1071 | case SND_SOC_BIAS_PREPARE: | 1071 | case SND_SOC_BIAS_PREPARE: |
1072 | if (aic3x->master) { | 1072 | if (codec->bias_level == SND_SOC_BIAS_STANDBY && |
1073 | aic3x->master) { | ||
1073 | /* enable pll */ | 1074 | /* enable pll */ |
1074 | reg = aic3x_read_reg_cache(codec, AIC3X_PLL_PROGA_REG); | 1075 | reg = aic3x_read_reg_cache(codec, AIC3X_PLL_PROGA_REG); |
1075 | aic3x_write(codec, AIC3X_PLL_PROGA_REG, | 1076 | aic3x_write(codec, AIC3X_PLL_PROGA_REG, |
@@ -1077,15 +1078,16 @@ static int aic3x_set_bias_level(struct snd_soc_codec *codec, | |||
1077 | } | 1078 | } |
1078 | break; | 1079 | break; |
1079 | case SND_SOC_BIAS_STANDBY: | 1080 | case SND_SOC_BIAS_STANDBY: |
1080 | /* fall through and disable pll */ | 1081 | if (codec->bias_level == SND_SOC_BIAS_PREPARE && |
1081 | case SND_SOC_BIAS_OFF: | 1082 | aic3x->master) { |
1082 | if (aic3x->master) { | ||
1083 | /* disable pll */ | 1083 | /* disable pll */ |
1084 | reg = aic3x_read_reg_cache(codec, AIC3X_PLL_PROGA_REG); | 1084 | reg = aic3x_read_reg_cache(codec, AIC3X_PLL_PROGA_REG); |
1085 | aic3x_write(codec, AIC3X_PLL_PROGA_REG, | 1085 | aic3x_write(codec, AIC3X_PLL_PROGA_REG, |
1086 | reg & ~PLL_ENABLE); | 1086 | reg & ~PLL_ENABLE); |
1087 | } | 1087 | } |
1088 | break; | 1088 | break; |
1089 | case SND_SOC_BIAS_OFF: | ||
1090 | break; | ||
1089 | } | 1091 | } |
1090 | codec->bias_level = level; | 1092 | codec->bias_level = level; |
1091 | 1093 | ||
diff --git a/sound/soc/codecs/wl1273.c b/sound/soc/codecs/wl1273.c index 0cd590970883..0c47c788ccdf 100644 --- a/sound/soc/codecs/wl1273.c +++ b/sound/soc/codecs/wl1273.c | |||
@@ -193,6 +193,9 @@ static int snd_wl1273_set_audio_route(struct snd_kcontrol *kcontrol, | |||
193 | struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); | 193 | struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); |
194 | struct wl1273_priv *wl1273 = snd_soc_codec_get_drvdata(codec); | 194 | struct wl1273_priv *wl1273 = snd_soc_codec_get_drvdata(codec); |
195 | 195 | ||
196 | if (wl1273->mode == ucontrol->value.integer.value[0]) | ||
197 | return 0; | ||
198 | |||
196 | /* Do not allow changes while stream is running */ | 199 | /* Do not allow changes while stream is running */ |
197 | if (codec->active) | 200 | if (codec->active) |
198 | return -EPERM; | 201 | return -EPERM; |
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c index 7ba5690118f8..99696187b55a 100644 --- a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c | |||
@@ -759,7 +759,7 @@ static struct snd_soc_dai_driver omap_mcbsp_dai = | |||
759 | .ops = &mcbsp_dai_ops, | 759 | .ops = &mcbsp_dai_ops, |
760 | }; | 760 | }; |
761 | 761 | ||
762 | int omap_mcbsp_st_info_volsw(struct snd_kcontrol *kcontrol, | 762 | static int omap_mcbsp_st_info_volsw(struct snd_kcontrol *kcontrol, |
763 | struct snd_ctl_elem_info *uinfo) | 763 | struct snd_ctl_elem_info *uinfo) |
764 | { | 764 | { |
765 | struct soc_mixer_control *mc = | 765 | struct soc_mixer_control *mc = |