[ALSA] AD1888 suspend/resume fix
authorJaya Kumar <jayakumar.alsa@gmail.com>
Mon, 19 Jun 2006 13:06:14 +0000 (15:06 +0200)
committerJaroslav Kysela <perex@suse.cz>
Thu, 22 Jun 2006 19:34:30 +0000 (21:34 +0200)
This patch adds a write to an undocumented register, 0x60 Extended
Codec Register Page in the AD1888 codec. It is neccessary in order
to make suspend/resume work with the AD1888.

Signed-off-by: Jaya Kumar <jayakumar.alsa@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ac97/ac97_patch.c

index cc93ee619086c3e9877073570c0a01963bf1c184..7f197c780816819425a4e49b018b49b57af527f2 100644 (file)
@@ -1371,6 +1371,13 @@ static void ad18xx_resume(struct snd_ac97 *ac97)
 
        snd_ac97_restore_iec958(ac97);
 }
+
+static void ad1888_resume(struct snd_ac97 *ac97)
+{
+       ad18xx_resume(ac97);
+       snd_ac97_write_cache(ac97, AC97_CODEC_CLASS_REV, 0x8080);
+}
+
 #endif
 
 int patch_ad1819(struct snd_ac97 * ac97)
@@ -1844,7 +1851,7 @@ static struct snd_ac97_build_ops patch_ad1888_build_ops = {
        .build_post_spdif = patch_ad198x_post_spdif,
        .build_specific = patch_ad1888_specific,
 #ifdef CONFIG_PM
-       .resume = ad18xx_resume,
+       .resume = ad1888_resume,
 #endif
        .update_jacks = ad1888_update_jacks,
 };