}
}
-static void twl4030_update_ctl_cache(struct snd_soc_codec *codec,
- unsigned int reg, unsigned int value)
-{
- struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec);
-
- switch (reg) {
- case TWL4030_REG_EAR_CTL:
- case TWL4030_REG_PREDL_CTL:
- case TWL4030_REG_PREDR_CTL:
- case TWL4030_REG_PRECKL_CTL:
- case TWL4030_REG_PRECKR_CTL:
- case TWL4030_REG_HS_GAIN_SET:
- twl4030->ctl_cache[reg - TWL4030_REG_EAR_CTL] = value;
- break;
- default:
- break;
- }
-}
-
static unsigned int twl4030_read(struct snd_soc_codec *codec, unsigned int reg)
{
struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec);
static int twl4030_write(struct snd_soc_codec *codec, unsigned int reg,
unsigned int value)
{
- twl4030_update_ctl_cache(codec, reg, value);
+ struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec);
+
+ /* Update the ctl cache */
+ switch (reg) {
+ case TWL4030_REG_EAR_CTL:
+ case TWL4030_REG_PREDL_CTL:
+ case TWL4030_REG_PREDR_CTL:
+ case TWL4030_REG_PRECKL_CTL:
+ case TWL4030_REG_PRECKR_CTL:
+ case TWL4030_REG_HS_GAIN_SET:
+ twl4030->ctl_cache[reg - TWL4030_REG_EAR_CTL] = value;
+ break;
+ default:
+ break;
+ }
+
if (twl4030_can_write_to_chip(codec, reg))
return twl_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, value, reg);