[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