| From c42c8922c46d33ed769e99618bdfba06866a0c72 Mon Sep 17 00:00:00 2001 |
| From: Dylan Reid <dgreid@chromium.org> |
| Date: Wed, 12 Feb 2014 10:24:54 -0800 |
| Subject: ASoC: max98090: sync regcache on entering STANDBY |
| |
| From: Dylan Reid <dgreid@chromium.org> |
| |
| commit c42c8922c46d33ed769e99618bdfba06866a0c72 upstream. |
| |
| Sync regcache when entering STANDBY from OFF. ON isn't entered with |
| OFF as the current state, so the registers were not being re-synced |
| after suspend/resume. |
| |
| The 98088 and 98095 already call regcache_sync from STANDBY. |
| |
| Signed-off-by: Dylan Reid <dgreid@chromium.org> |
| Signed-off-by: Mark Brown <broonie@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/soc/codecs/max98090.c | 20 ++++++++++---------- |
| 1 file changed, 10 insertions(+), 10 deletions(-) |
| |
| --- a/sound/soc/codecs/max98090.c |
| +++ b/sound/soc/codecs/max98090.c |
| @@ -1769,16 +1769,6 @@ static int max98090_set_bias_level(struc |
| |
| switch (level) { |
| case SND_SOC_BIAS_ON: |
| - if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { |
| - ret = regcache_sync(max98090->regmap); |
| - |
| - if (ret != 0) { |
| - dev_err(codec->dev, |
| - "Failed to sync cache: %d\n", ret); |
| - return ret; |
| - } |
| - } |
| - |
| if (max98090->jack_state == M98090_JACK_STATE_HEADSET) { |
| /* |
| * Set to normal bias level. |
| @@ -1792,6 +1782,16 @@ static int max98090_set_bias_level(struc |
| break; |
| |
| case SND_SOC_BIAS_STANDBY: |
| + if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { |
| + ret = regcache_sync(max98090->regmap); |
| + if (ret != 0) { |
| + dev_err(codec->dev, |
| + "Failed to sync cache: %d\n", ret); |
| + return ret; |
| + } |
| + } |
| + break; |
| + |
| case SND_SOC_BIAS_OFF: |
| /* Set internal pull-up to lowest power mode */ |
| snd_soc_update_bits(codec, M98090_REG_JACK_DETECT, |