Skip to content

Commit

Permalink
ASoC: tlv320aic3x: Don't reference cache datastructure directly
Browse files Browse the repository at this point in the history
Rather than referencing the cache directly read back the values we are
going to restore, supporting refactoring to use regmap.

Signed-off-by: Mark Brown <broonie@linaro.org>
  • Loading branch information
Mark Brown committed Sep 24, 2013
1 parent 58a63fb commit 2677b4b
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions sound/soc/codecs/tlv320aic3x.c
Original file line number Diff line number Diff line change
Expand Up @@ -1068,23 +1068,24 @@ static int aic3x_set_dai_fmt(struct snd_soc_dai *codec_dai,

static int aic3x_init_3007(struct snd_soc_codec *codec)
{
u8 tmp1, tmp2, *cache = codec->reg_cache;
unsigned int tmp1, tmp2;

/*
* There is no need to cache writes to undocumented page 0xD but
* respective page 0 register cache entries must be preserved
*/
tmp1 = cache[0xD];
tmp2 = cache[0x8];
tmp1 = snd_soc_read(codec, 0xD);
tmp2 = snd_soc_read(codec, 0x8);
/* Class-D speaker driver init; datasheet p. 46 */
snd_soc_write(codec, AIC3X_PAGE_SELECT, 0x0D);
snd_soc_write(codec, 0xD, 0x0D);
snd_soc_write(codec, 0x8, 0x5C);
snd_soc_write(codec, 0x8, 0x5D);
snd_soc_write(codec, 0x8, 0x5C);
snd_soc_write(codec, AIC3X_PAGE_SELECT, 0x00);
cache[0xD] = tmp1;
cache[0x8] = tmp2;

snd_soc_write(codec, 0xD, tmp1);
snd_soc_write(codec, 0x8, tmp2);

return 0;
}
Expand Down

0 comments on commit 2677b4b

Please sign in to comment.