summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorGarrett D'Amore <gdamore@opensolaris.org>2009-12-22 21:47:48 -0800
committerGarrett D'Amore <gdamore@opensolaris.org>2009-12-22 21:47:48 -0800
commite7437094ebbbd4d60375f3927c017ff00cbab1de (patch)
tree9798a32246e77b60f672204534ba2fb263c78349 /usr/src
parentc1374a13e412c4ec42cba867e57347a0e049a822 (diff)
downloadillumos-joyent-e7437094ebbbd4d60375f3927c017ff00cbab1de.tar.gz
6912609 audiols recording non-functional on Creative Audigy SE
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/io/audio/drv/audiols/audiols.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/usr/src/uts/common/io/audio/drv/audiols/audiols.c b/usr/src/uts/common/io/audio/drv/audiols/audiols.c
index 7a7dbe087d..0fdde27414 100644
--- a/usr/src/uts/common/io/audio/drv/audiols/audiols.c
+++ b/usr/src/uts/common/io/audio/drv/audiols/audiols.c
@@ -1061,9 +1061,14 @@ audigyls_configure_mixer(audigyls_dev_t *dev)
* made a mistake somewhere. But I can't seem to
* figure out where it lies.
*/
- r = 0xe4;
- for (int i = 0; i < 4; i++)
- r |= v1 << (16 + i * 3); /* Select input */
+ if (dev->ac97_recsrc != NULL) {
+ r = 0xe4;
+ for (int i = 0; i < 4; i++)
+ r |= v1 << (16 + i * 3); /* Select input */
+ } else {
+ r = (v1 << 28) | (v1 << 24) | (v1 << 20) | (v1 << 16) |
+ v1;
+ }
}
write_reg(dev, P17RECSEL, r);