diff options
Diffstat (limited to 'sound/soc/codecs/wm8996.c')
| -rw-r--r-- | sound/soc/codecs/wm8996.c | 8 | 
1 files changed, 3 insertions, 5 deletions
diff --git a/sound/soc/codecs/wm8996.c b/sound/soc/codecs/wm8996.c index 8af422e38fd..dc9b42b7fc4 100644 --- a/sound/soc/codecs/wm8996.c +++ b/sound/soc/codecs/wm8996.c @@ -2837,8 +2837,6 @@ static int wm8996_probe(struct snd_soc_codec *codec)  		}  	} -	regcache_cache_only(codec->control_data, true); -  	/* Apply platform data settings */  	snd_soc_update_bits(codec, WM8996_LINE_INPUT_CONTROL,  			    WM8996_INL_MODE_MASK | WM8996_INR_MODE_MASK, @@ -3051,7 +3049,6 @@ static int wm8996_remove(struct snd_soc_codec *codec)  	for (i = 0; i < ARRAY_SIZE(wm8996->supplies); i++)  		regulator_unregister_notifier(wm8996->supplies[i].consumer,  					      &wm8996->disable_nb[i]); -	regulator_bulk_free(ARRAY_SIZE(wm8996->supplies), wm8996->supplies);  	return 0;  } @@ -3206,14 +3203,15 @@ static __devinit int wm8996_i2c_probe(struct i2c_client *i2c,  	dev_info(&i2c->dev, "revision %c\n",  		 (reg & WM8996_CHIP_REV_MASK) + 'A'); -	regulator_bulk_disable(ARRAY_SIZE(wm8996->supplies), wm8996->supplies); -  	ret = wm8996_reset(wm8996);  	if (ret < 0) {  		dev_err(&i2c->dev, "Failed to issue reset\n");  		goto err_regmap;  	} +	regcache_cache_only(wm8996->regmap, true); +	regulator_bulk_disable(ARRAY_SIZE(wm8996->supplies), wm8996->supplies); +  	wm8996_init_gpio(wm8996);  	ret = snd_soc_register_codec(&i2c->dev,  |