summaryrefslogtreecommitdiff
path: root/sys/dev/ic/ac97.c
diff options
context:
space:
mode:
authorFederico G. Schwindt <fgsch@cvs.openbsd.org>2002-09-05 17:03:34 +0000
committerFederico G. Schwindt <fgsch@cvs.openbsd.org>2002-09-05 17:03:34 +0000
commitd11f6fdafbd5cc160f9bebbd85fab11b867109a5 (patch)
treeded4827806bf50cb486b6538de76d527e19e008c /sys/dev/ic/ac97.c
parentb9f1aa3298d2738545d159bae34134deb05c863a (diff)
Use the value from AUDIO_CTRL, later to be or'ed with VRM or VRA, not
AUDIO_ID which contains what the codec supports, and do it only if the codec supports VRM or VRA. discussed with mickey@ a while ago.
Diffstat (limited to 'sys/dev/ic/ac97.c')
-rw-r--r--sys/dev/ic/ac97.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/sys/dev/ic/ac97.c b/sys/dev/ic/ac97.c
index 9af1bc37272..4b3d7b78ece 100644
--- a/sys/dev/ic/ac97.c
+++ b/sys/dev/ic/ac97.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ac97.c,v 1.31 2002/07/28 06:27:07 fgsch Exp $ */
+/* $OpenBSD: ac97.c,v 1.32 2002/09/05 17:03:33 fgsch Exp $ */
/*
* Copyright (c) 1999, 2000 Constantine Sapuntzakis
@@ -712,12 +712,14 @@ ac97_attach(host_if)
if (as->ext_id)
DPRINTF(("ac97: ext id %b\n", as->ext_id,
AC97_EXT_AUDIO_BITS));
- ac97_read(as, AC97_REG_EXT_AUDIO_ID, &id1);
- if (as->ext_id & AC97_EXT_AUDIO_VRA)
- id1 |= AC97_EXT_AUDIO_VRA;
- if (as->ext_id & AC97_EXT_AUDIO_VRM)
- id1 |= AC97_EXT_AUDIO_VRM;
- ac97_write(as, AC97_REG_EXT_AUDIO_CTRL, id1);
+ if (as->ext_id & (AC97_EXT_AUDIO_VRA | AC97_EXT_AUDIO_VRM)) {
+ ac97_read(as, AC97_REG_EXT_AUDIO_CTRL, &id1);
+ if (as->ext_id & AC97_EXT_AUDIO_VRA)
+ id1 |= AC97_EXT_AUDIO_VRA;
+ if (as->ext_id & AC97_EXT_AUDIO_VRM)
+ id1 |= AC97_EXT_AUDIO_VRM;
+ ac97_write(as, AC97_REG_EXT_AUDIO_CTRL, id1);
+ }
ac97_setup_source_info(as);