diff options
Diffstat (limited to 'sound/soc/codecs')
-rwxr-xr-x | sound/soc/codecs/wcd9335.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/soc/codecs/wcd9335.c b/sound/soc/codecs/wcd9335.c index 13933a078e43..18dc404ac31d 100755 --- a/sound/soc/codecs/wcd9335.c +++ b/sound/soc/codecs/wcd9335.c @@ -1389,7 +1389,8 @@ static int tasha_micbias_control(struct snd_soc_codec *codec, snd_soc_update_bits(codec, micb_reg, 0xC0, 0x80); break; case MICB_PULLUP_DISABLE: - tasha->pullup_ref[micb_index]--; + if (tasha->pullup_ref[micb_index] > 0) + tasha->pullup_ref[micb_index]--; if ((tasha->pullup_ref[micb_index] == 0) && (tasha->micb_ref[micb_index] == 0)) snd_soc_update_bits(codec, micb_reg, 0xC0, 0x00); @@ -1407,7 +1408,8 @@ static int tasha_micbias_control(struct snd_soc_codec *codec, post_dapm_on, &tasha->mbhc); break; case MICB_DISABLE: - tasha->micb_ref[micb_index]--; + if (tasha->micb_ref[micb_index] > 0) + tasha->micb_ref[micb_index]--; if ((tasha->micb_ref[micb_index] == 0) && (tasha->pullup_ref[micb_index] > 0)) snd_soc_update_bits(codec, micb_reg, 0xC0, 0x80); |