summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorscw <scw@NetBSD.org>2003-06-11 14:22:27 +0000
committerscw <scw@NetBSD.org>2003-06-11 14:22:27 +0000
commit146abc03d1eeca2411dc31b60d714c5a4e08eeb3 (patch)
tree7f5711107ab50cc1ac7d6f16aef6c72c6b484da4 /sys/dev/ic
parenta3d7c5fa32b2c907dcaaa11bba4f95012a753e52 (diff)
In ac97_restore_shadow(), make sure to restore the codec's extended
control register if we configured it during ac97_attach().
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/ac97.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/dev/ic/ac97.c b/sys/dev/ic/ac97.c
index 847da9275de..2f49fb686c4 100644
--- a/sys/dev/ic/ac97.c
+++ b/sys/dev/ic/ac97.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ac97.c,v 1.41 2003/03/03 02:14:12 bsh Exp $ */
+/* $NetBSD: ac97.c,v 1.42 2003/06/11 14:22:27 scw Exp $ */
/* $OpenBSD: ac97.c,v 1.8 2000/07/19 09:01:35 csapuntz Exp $ */
/*
@@ -63,7 +63,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ac97.c,v 1.41 2003/03/03 02:14:12 bsh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ac97.c,v 1.42 2003/06/11 14:22:27 scw Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -716,6 +716,14 @@ ac97_restore_shadow(self)
si = &source_info[idx];
ac97_write(as, si->reg, as->shadow_reg[si->reg >> 1]);
}
+
+ if (as->ext_id & (AC97_EXT_AUDIO_VRA | AC97_EXT_AUDIO_DRA
+ | AC97_EXT_AUDIO_SPDIF | AC97_EXT_AUDIO_VRM
+ | AC97_EXT_AUDIO_CDAC | AC97_EXT_AUDIO_SDAC
+ | AC97_EXT_AUDIO_LDAC)) {
+ ac97_write(as, AC97_REG_EXT_AUDIO_CTRL,
+ as->shadow_reg[AC97_REG_EXT_AUDIO_CTRL >> 1]);
+ }
}
int