Skip to content

Commit

Permalink
ASoC: cs4720: use snd_soc_cache_sync()
Browse files Browse the repository at this point in the history
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.

Signed-off-by: Daniel Mack <[email protected]>
Reported-and-tested-by: Sven Neumann <[email protected]>
Acked-by: Timur Tabi <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
zonque authored and broonie committed Nov 22, 2011
1 parent 3d94a2a commit d66b853
Showing 1 changed file with 1 addition and 9 deletions.
10 changes: 1 addition & 9 deletions sound/soc/codecs/cs4270.c
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand All @@ -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);
Expand Down

0 comments on commit d66b853

Please sign in to comment.