[alsa-devel] [PATCH 1/2] ASoC: Check for exact register match in wm97xx_reset()
Takashi Iwai
tiwai at suse.de
Fri Jun 13 17:11:06 CEST 2008
At Fri, 13 Jun 2008 15:39:12 +0100,
Mark Brown wrote:
>
> To provide added robustness in case an AC97 controller reads back all
> zeros in error cases check for an exact match when testing to see if
> resets have brought the codec back.
>
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> ---
> sound/soc/codecs/wm9712.c | 4 ++--
> sound/soc/codecs/wm9713.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/sound/soc/codecs/wm9712.c b/sound/soc/codecs/wm9712.c
> index 28ac66f..09e2985 100644
> --- a/sound/soc/codecs/wm9712.c
> +++ b/sound/soc/codecs/wm9712.c
> @@ -589,12 +589,12 @@ static int wm9712_reset(struct snd_soc_codec *codec, int try_warm)
> {
> if (try_warm && soc_ac97_ops.warm_reset) {
> soc_ac97_ops.warm_reset(codec->ac97);
> - if (!(ac97_read(codec, 0) & 0x8000))
> + if (ac97_read(codec, 0) == 0x6174)
> return 1;
> }
>
> soc_ac97_ops.reset(codec->ac97);
> - if (ac97_read(codec, 0) & 0x8000)
> + if (ac97_read(codec, 0) != 0x6174)
Can we define this magic value more understandable?
> goto err;
> return 0;
>
> diff --git a/sound/soc/codecs/wm9713.c b/sound/soc/codecs/wm9713.c
> index aba3301..131bb5b 100644
> --- a/sound/soc/codecs/wm9713.c
> +++ b/sound/soc/codecs/wm9713.c
> @@ -1076,12 +1076,12 @@ int wm9713_reset(struct snd_soc_codec *codec, int try_warm)
> {
> if (try_warm && soc_ac97_ops.warm_reset) {
> soc_ac97_ops.warm_reset(codec->ac97);
> - if (!(ac97_read(codec, 0) & 0x8000))
> + if (ac97_read(codec, 0) == 0x6174)
> return 1;
> }
>
> soc_ac97_ops.reset(codec->ac97);
> - if (ac97_read(codec, 0) & 0x8000)
> + if (ac97_read(codec, 0) != 0x6174)
Ditto.
thanks,
Takashi
More information about the Alsa-devel
mailing list