Your message dated Mon, 01 Jun 2009 00:47:17 +0100
with message-id <1243813637.14399.155.ca...@deadeye>
and subject line Re: oss driver doen't handle ViBRA16C IMIX control
has caused the Debian Bug report #68031,
regarding oss driver doen't handle ViBRA16C IMIX control
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
68031: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=68031
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: kernel-source-2.2.17
Version: 2.2.17pre6-1
Hi,
the sb_mixer of OSS 3.8s distributed with 2.2.x kernels has a bug in the
handling of the SOUND_MIXER_IMIX (Input Monitor) control of the sb16.
This register controls which input lines are directly connected to the
output lines of the soundcard.
The sb16_mix IMIX register is incorrectly declared as 1-bit, while it is
actually a 5-bits register with the following bit meanings:
0x10 line left
0x08 line_right
0x04 cd left
0x02 cd right
0x01 microphone
For example to listen line and cd inputs I must set the imix to 24+6.
The imix control doesn't work at all with the standard driver, while with
a patched kernel I can enable/disable the input monitor for any individual
input channel.
My soundcard is a Creative SoundBlaster ViBRA16C, pnpdump says:
# Card 1: (serial identifier e5 ff ff ff ff 70 00 8c 0e)
# Vendor Id CTL0070, No Serial Number (-1), checksum 0xE5.
# Version 1.0, Vendor version 1.0
# ANSI string -->Creative ViBRA16C PnP<--
I understant that this is an old card and probably not widely used but it is
very annoying having to recompile every new version of the kernel only for
being able to control the mixer.
The patch in the attachment fixes the bug. Please apply it.
--
Massimo Dal Zotto
+----------------------------------------------------------------------+
| Massimo Dal Zotto email: [email protected] |
| Via Marconi, 141 phone: ++39-0461534251 |
| 38057 Pergine Valsugana (TN) www: http://www.cs.unitn.it/~dz/ |
| Italy pgp: finger [email protected] |
+----------------------------------------------------------------------+
--- drivers/sound/sb_mixer.c.orig Mon Aug 9 21:04:40 1999
+++ drivers/sound/sb_mixer.c Mon Jul 31 13:41:39 2000
@@ -109,7 +109,7 @@
MIX_ENT(SOUND_MIXER_LINE, 0x38, 7, 5, 0x39, 7, 5),
MIX_ENT(SOUND_MIXER_MIC, 0x3a, 7, 5, 0x00, 0, 0),
MIX_ENT(SOUND_MIXER_CD, 0x36, 7, 5, 0x37, 7, 5),
-MIX_ENT(SOUND_MIXER_IMIX, 0x3c, 0, 1, 0x00, 0, 0),
+MIX_ENT(SOUND_MIXER_IMIX, 0x3c, 4, 5, 0x00, 0, 0),
MIX_ENT(SOUND_MIXER_ALTPCM, 0x00, 0, 0, 0x00, 0, 0),
MIX_ENT(SOUND_MIXER_RECLEV, 0x3f, 7, 2, 0x40, 7, 2), /* Obsolete. Use IGAIN
*/
MIX_ENT(SOUND_MIXER_IGAIN, 0x3f, 7, 2, 0x40, 7, 2),
@@ -597,6 +597,13 @@
case SOUND_MIXER_OUTSRC:
ret = set_outmask(devc, val);
+ break;
+
+ case SOUND_MIXER_IMIX:
+ val = *(int *) arg;
+ devc->levels[SOUND_MIXER_IMIX] = val &
0x1f;
+ sb_setmixer (devc, 0x3c, val);
+ return val;
break;
default:
--- End Message ---
--- Begin Message ---
Sorry, I don't believe this bug will ever be fixed. The proposed patch
makes a change for all Soundblaster 16 cards which is apparently only
appropriate for some. The OSS drivers in Linux are no longer
maintained, so there is no-one to make a proper fix. Any problems with
the OSS drivers should probably be dealt with in ALSA drivers instead.
Ben.
--
Ben Hutchings
Logic doesn't apply to the real world. - Marvin Minsky
signature.asc
Description: This is a digitally signed message part
--- End Message ---