diff options
author | ache <ache@FreeBSD.org> | 1994-05-07 01:09:35 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1994-05-07 01:09:35 +0000 |
commit | 4f3268d32cb8f0a605adf192d40656936fc0486d (patch) | |
tree | 7b78b23cd7267e6690d4b1fa241d9ba82585fe48 /sys/i386/isa/sound/pas2_mixer.c | |
parent | 854d8165f3d87710f916e26dca3c4207ad88f504 (diff) | |
download | FreeBSD-src-4f3268d32cb8f0a605adf192d40656936fc0486d.zip FreeBSD-src-4f3268d32cb8f0a605adf192d40656936fc0486d.tar.gz |
Fix ugly bug with PAS16 Rev D mixer: output level was too low
Diffstat (limited to 'sys/i386/isa/sound/pas2_mixer.c')
-rw-r--r-- | sys/i386/isa/sound/pas2_mixer.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/sys/i386/isa/sound/pas2_mixer.c b/sys/i386/isa/sound/pas2_mixer.c index fd3e106..b386877 100644 --- a/sys/i386/isa/sound/pas2_mixer.c +++ b/sys/i386/isa/sound/pas2_mixer.c @@ -72,14 +72,6 @@ mixer_output (int right_vol, int left_vol, int div, int bits, int left = left_vol * div / 100; int right = right_vol * div / 100; - /* - * The Revision D cards have a problem with their MVA508 interface. The - * kludge-o-rama fix is to make a 16-bit quantity with identical LSB and - * MSBs out of the output byte and to do a 16-bit out to the mixer port - - * 1. We don't need to do this because the call to pas_write more than - * compensates for the timing problems. - */ - if (bits & P_M_MV508_MIXER) { /* Select input or output mixer */ left |= mixer; @@ -88,16 +80,16 @@ mixer_output (int right_vol, int left_vol, int div, int bits, if (bits == P_M_MV508_BASS || bits == P_M_MV508_TREBLE) { /* Bass and trebble are mono devices */ - pas_write (P_M_MV508_ADDRESS | bits, PARALLEL_MIXER); - pas_write (left, PARALLEL_MIXER); + mix_write (P_M_MV508_ADDRESS | bits, PARALLEL_MIXER); + mix_write (left, PARALLEL_MIXER); right_vol = left_vol; } else { - pas_write (P_M_MV508_ADDRESS | P_M_MV508_LEFT | bits, PARALLEL_MIXER); - pas_write (left, PARALLEL_MIXER); - pas_write (P_M_MV508_ADDRESS | P_M_MV508_RIGHT | bits, PARALLEL_MIXER); - pas_write (right, PARALLEL_MIXER); + mix_write (P_M_MV508_ADDRESS | P_M_MV508_LEFT | bits, PARALLEL_MIXER); + mix_write (left, PARALLEL_MIXER); + mix_write (P_M_MV508_ADDRESS | P_M_MV508_RIGHT | bits, PARALLEL_MIXER); + mix_write (right, PARALLEL_MIXER); } return (left_vol | (right_vol << 8)); @@ -106,8 +98,8 @@ mixer_output (int right_vol, int left_vol, int div, int bits, void set_mode (int new_mode) { - pas_write (P_M_MV508_ADDRESS | P_M_MV508_MODE, PARALLEL_MIXER); - pas_write (new_mode, PARALLEL_MIXER); + mix_write (P_M_MV508_ADDRESS | P_M_MV508_MODE, PARALLEL_MIXER); + mix_write (new_mode, PARALLEL_MIXER); mode_control = new_mode; } |