22 Dec
2009
22 Dec
'09
6:59 p.m.
On Tue, 2009-12-22 at 12:28 -0500, Eric Millbrandt wrote:
This patch fixes a bug where "virtual" registers were being written to the ac97 bus. This was causing unrelated registers to become corrupted (headphone 0x04, touchscreen 0x78, etc).
This patch duplicates protection that was included in the wm9713 driver.
Signed-off-by: Eric Millbrandt emillbrandt@dekaresearch.com
sound/soc/codecs/wm9712.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/sound/soc/codecs/wm9712.c b/sound/soc/codecs/wm9712.c index 0ac1215..e237bf6 100644 --- a/sound/soc/codecs/wm9712.c +++ b/sound/soc/codecs/wm9712.c @@ -463,7 +463,8 @@ static int ac97_write(struct snd_soc_codec *codec, unsigned int reg, { u16 *cache = codec->reg_cache;
soc_ac97_ops.write(codec->ac97, reg, val);
if (reg < 0x7c)
soc_ac97_ops.write(codec->ac97, reg, val); reg = reg >> 1; if (reg < (ARRAY_SIZE(wm9712_reg))) cache[reg] = val;
--
Acked-by: Liam Girdwood lrg@slimlogic.co.uk