![](https://secure.gravatar.com/avatar/e507159b016ae5fe4e2fa9e7d677bc10.jpg?s=120&d=mm&r=g)
Complete the phasing out of aic3x_read_reg_cache, aic3x_write_reg_cache, aic3x_read and aic3x_write calls.
This patch uses in aic3x_read the codec->hw_read that points to a function implemented by soc-cache. Only use for aic3x_read is if wanting to read volatile bits from those registers that has both read-only and read/write bits. All other cases should use snd_soc_read.
Signed-off-by: Jarkko Nikula jhnikula@gmail.com --- sound/soc/codecs/tlv320aic3x.c | 25 +++++++++---------------- 1 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c index 86e5a58..7b5f159 100644 --- a/sound/soc/codecs/tlv320aic3x.c +++ b/sound/soc/codecs/tlv320aic3x.c @@ -112,28 +112,21 @@ static const u8 aic3x_reg[AIC3X_CACHEREGNUM] = { };
/* - * write aic3x register cache - */ -static inline void aic3x_write_reg_cache(struct snd_soc_codec *codec, - u8 reg, u8 value) -{ - u8 *cache = codec->reg_cache; - if (reg >= AIC3X_CACHEREGNUM) - return; - cache[reg] = value; -} - -/* - * read from the aic3x register space + * read from the aic3x register space. Only use for this function is if + * wanting to read volatile bits from those registers that has both read-only + * and read/write bits. All other cases should use snd_soc_read. */ static int aic3x_read(struct snd_soc_codec *codec, unsigned int reg, u8 *value) { - *value = reg & 0xff; + u8 *cache = codec->reg_cache; + + if (reg >= AIC3X_CACHEREGNUM) + return -1;
- value[0] = i2c_smbus_read_byte_data(codec->control_data, value[0]); + *value = codec->hw_read(codec, reg); + cache[reg] = *value;
- aic3x_write_reg_cache(codec, reg, *value); return 0; }