[alsa-devel] [PATCH 1/1] Do not write to invalid registers on the wm9712.
Liam Girdwood
lrg at slimlogic.co.uk
Tue Dec 22 18:59:27 CET 2009
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 at 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 at slimlogic.co.uk>
More information about the Alsa-devel
mailing list