[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#68031: marked as done (oss driver doen't handle ViBRA16C IMIX control)



Your message dated Mon, 01 Jun 2009 00:47:17 +0100
with message-id <1243813637.14399.155.camel@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 owner@bugs.debian.org
immediately.)


-- 
68031: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=68031
Debian Bug Tracking System
Contact owner@bugs.debian.org 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: dz@cs.unitn.it               |
|  Via Marconi, 141                phone: ++39-0461534251              |
|  38057 Pergine Valsugana (TN)      www: http://www.cs.unitn.it/~dz/  |
|  Italy                             pgp: finger dz@tango.cs.unitn.it  |
+----------------------------------------------------------------------+

--- 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

Attachment: signature.asc
Description: This is a digitally signed message part


--- End Message ---

Reply to: