diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2014-11-26 20:57:54 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-11-27 11:15:27 +0000 |
commit | aabb87f00304764dffe097e3b65f6a1862c2c2b5 (patch) | |
tree | 0ad5ffa9139ce5d7e75207ac22907d1a56cb540b | |
parent | bf9706fe958469e7dfc6a9e16d9240892f055e62 (diff) | |
download | op-kernel-dev-aabb87f00304764dffe097e3b65f6a1862c2c2b5.zip op-kernel-dev-aabb87f00304764dffe097e3b65f6a1862c2c2b5.tar.gz |
ASoC: tlv320aic23: Cleanup manual bias level transitions
Set the CODEC driver's suspend_bias_off flag rather than manually going to
SND_SOC_BIAS_OFF in suspend and SND_SOC_BIAS_STANDBY in resume. This makes
the code a bit shorter and cleaner.
Since the ASoC core now takes care of setting the bias level to
SND_SOC_BIAS_OFF when removing the CODEC there is no need to do it manually
anymore either.
The manual transition to SND_SOC_BIAS_STANDBY at the end of CODEC probe()
can also be removed as the core will automatically do this after the CODEC
has been probed.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/codecs/tlv320aic23.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/sound/soc/codecs/tlv320aic23.c b/sound/soc/codecs/tlv320aic23.c index d671679..cc17e7e 100644 --- a/sound/soc/codecs/tlv320aic23.c +++ b/sound/soc/codecs/tlv320aic23.c @@ -540,19 +540,11 @@ static struct snd_soc_dai_driver tlv320aic23_dai = { .ops = &tlv320aic23_dai_ops, }; -static int tlv320aic23_suspend(struct snd_soc_codec *codec) -{ - tlv320aic23_set_bias_level(codec, SND_SOC_BIAS_OFF); - - return 0; -} - static int tlv320aic23_resume(struct snd_soc_codec *codec) { struct aic23 *aic23 = snd_soc_codec_get_drvdata(codec); regcache_mark_dirty(aic23->regmap); regcache_sync(aic23->regmap); - tlv320aic23_set_bias_level(codec, SND_SOC_BIAS_STANDBY); return 0; } @@ -562,9 +554,6 @@ static int tlv320aic23_codec_probe(struct snd_soc_codec *codec) /* Reset codec */ snd_soc_write(codec, TLV320AIC23_RESET, 0); - /* power on device */ - tlv320aic23_set_bias_level(codec, SND_SOC_BIAS_STANDBY); - snd_soc_write(codec, TLV320AIC23_DIGT, TLV320AIC23_DEEMP_44K); /* Unmute input */ @@ -589,18 +578,12 @@ static int tlv320aic23_codec_probe(struct snd_soc_codec *codec) return 0; } -static int tlv320aic23_remove(struct snd_soc_codec *codec) -{ - tlv320aic23_set_bias_level(codec, SND_SOC_BIAS_OFF); - return 0; -} - static struct snd_soc_codec_driver soc_codec_dev_tlv320aic23 = { .probe = tlv320aic23_codec_probe, - .remove = tlv320aic23_remove, - .suspend = tlv320aic23_suspend, .resume = tlv320aic23_resume, .set_bias_level = tlv320aic23_set_bias_level, + .suspend_bias_off = true, + .controls = tlv320aic23_snd_controls, .num_controls = ARRAY_SIZE(tlv320aic23_snd_controls), .dapm_widgets = tlv320aic23_dapm_widgets, |