diff options
| author | Garrett D'Amore <gdamore@opensolaris.org> | 2009-12-22 21:47:48 -0800 |
|---|---|---|
| committer | Garrett D'Amore <gdamore@opensolaris.org> | 2009-12-22 21:47:48 -0800 |
| commit | e7437094ebbbd4d60375f3927c017ff00cbab1de (patch) | |
| tree | 9798a32246e77b60f672204534ba2fb263c78349 /usr/src | |
| parent | c1374a13e412c4ec42cba867e57347a0e049a822 (diff) | |
| download | illumos-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.c | 11 |
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); |
