aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm5100.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/wm5100.c')
-rw-r--r--sound/soc/codecs/wm5100.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm5100.c b/sound/soc/codecs/wm5100.c
index 8b24323d6b2c..66f0611e68b6 100644
--- a/sound/soc/codecs/wm5100.c
+++ b/sound/soc/codecs/wm5100.c
@@ -1377,6 +1377,7 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
1377 1377
1378 switch (wm5100->rev) { 1378 switch (wm5100->rev) {
1379 case 0: 1379 case 0:
1380 regcache_cache_bypass(wm5100->regmap, true);
1380 snd_soc_write(codec, 0x11, 0x3); 1381 snd_soc_write(codec, 0x11, 0x3);
1381 snd_soc_write(codec, 0x203, 0xc); 1382 snd_soc_write(codec, 0x203, 0xc);
1382 snd_soc_write(codec, 0x206, 0); 1383 snd_soc_write(codec, 0x206, 0);
@@ -1392,6 +1393,7 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
1392 snd_soc_write(codec, 1393 snd_soc_write(codec,
1393 wm5100_reva_patches[i].reg, 1394 wm5100_reva_patches[i].reg,
1394 wm5100_reva_patches[i].val); 1395 wm5100_reva_patches[i].val);
1396 regcache_cache_bypass(wm5100->regmap, false);
1395 break; 1397 break;
1396 default: 1398 default:
1397 break; 1399 break;
@@ -1402,6 +1404,7 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
1402 break; 1404 break;
1403 1405
1404 case SND_SOC_BIAS_OFF: 1406 case SND_SOC_BIAS_OFF:
1407 regcache_cache_only(wm5100->regmap, true);
1405 if (wm5100->pdata.ldo_ena) 1408 if (wm5100->pdata.ldo_ena)
1406 gpio_set_value_cansleep(wm5100->pdata.ldo_ena, 0); 1409 gpio_set_value_cansleep(wm5100->pdata.ldo_ena, 0);
1407 regulator_bulk_disable(ARRAY_SIZE(wm5100->core_supplies), 1410 regulator_bulk_disable(ARRAY_SIZE(wm5100->core_supplies),