ALSA: ASoC: cs4720: use snd_soc_cache_sync()
Subsystems (3)
PATCH v2 1/1 ALSA: ASoC: cs4720: use snd_soc_cache_sync()
Replace the manual register restore mechanism in cs4270.c and call the generic snd_soc_cache_sync() handler instead.
This factors code out in favour of core facilities and also fixes a bus confusion that is most probably caused by intermixing i2c-regmap functions and i2c_smbus_* accessors.
--- sound/soc/codecs/cs4270.c | 10 +--------- 1 files changed, 1 insertions(+), 9 deletions(-)
sound/soc/codecs/cs4270.c +1 -9
@@ -601,7 +601,6 @@ static int cs4270_soc_suspend(struct snd_soc_codec *codec, pm_message_t mesg)static int cs4270_soc_resume (struct snd_soc_codec *codec) {struct cs4270_private *cs4270 =snd_soc_codec_get_drvdata (codec); -struct i2c_client *i2c_client =to_i2c_client (codec->dev);int reg; regulator_bulk_enable(ARRAY_SIZE(cs4270->supplies),
@@ -612,14 +611,7 @@ static int cs4270_soc_resume(struct snd_soc_codec *codec)ndelay (500 );/* first restore the entire register cache ... */ -for (reg =CS4270_FIRSTREG ; reg <=CS4270_LASTREG ; reg++) { -u8 val =snd_soc_read (codec, reg); - -if (i2c_smbus_write_byte_data (i2c_client, reg, val)) { -dev_err (codec->dev,"i2c write failed\n" ); -return -EIO ; - } - } +snd_soc_cache_sync (codec);/* ... then disable the power-down bits */ reg =snd_soc_read (codec,CS4270_PWRCTL );
Signature · 1 line
1.7.7.3
Quoted 10 lines · Daniel Mack
Replace the manual register restore mechanism in
cs4270.cand call the genericsnd_soc_cache_sync()handler instead.This factors code out in favour of core facilities and also fixes a bus confusion that is most probably caused by intermixing i2c-regmap functions and i2c_smbus_* accessors.
Signed-off-by Daniel Mack <[email protected]>Reported-and-tested-by Sven Neumann <[email protected]>---
I can't test it, but it doesn't break anything else.
Signature · 2 lines
Timur Tabi Linux kernel developer at Freescale
Mark Brown
AppliedQuoted 2 lines · Daniel Mack
Replace the manual register restore mechanism in
cs4270.cand call the genericsnd_soc_cache_sync()handler instead.
Applied, thanks.