NetBSD Problem Report #8478

Received: (qmail 9929 invoked from network); 23 Sep 1999 12:25:59 -0000
Message-Id: <nin7llhke6c.fsf@i60s49.ira.uka.de>
Date: 23 Sep 1999 14:25:31 +0200
From: Klaus Klein <kleink@ira.uka.de>
Sender: kleink@ira.uka.de
Reply-To: kleink@ira.uka.de
To: gnats-bugs@gnats.netbsd.org
Cc: kleink@ira.uka.de
Subject: ossaudio emulation (mis-)interprets record source MIXER_ENUMs
X-Send-Pr-Version: 3.95

>Number:         8478
>Category:       kern
>Synopsis:       ossaudio emulation (mis-)interprets record source MIXER_ENUMs
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Sep 23 05:35:01 +0000 1999
>Closed-Date:    Thu Sep 23 12:36:54 +0000 1999
>Last-Modified:  Thu Sep 23 12:37:40 +0000 1999
>Originator:     Klaus Klein
>Release:        any to this date
>Organization:
>Environment:
System: NetBSD minor-variation 1.4K NetBSD 1.4K (MINOR-VARIATION) #254: Thu Sep 16 22:05:52 CEST 1999 kleink@minor-variation:/vol/tmp/kernels/MINOR-VARIATION i386


>Description:
	The ossaudio emulation interprets the (opaque) value of an
	enumerated record source selector's ord member as the index of
	the corresponding MIXER_VALUE.  This method breaks whenever a
	hardware driver chooses to use the enumeration to conveniently
	hold i.e. the corresponding values for its record source
	selector hardware register.
	Worse, a hardware driver may provide support for record sources
	which do not even have a corresponding MIXER_VALUE, i.e. the
	record mixer output itself, so making this a general API
	requirement isn't possible either.

	(The MIXER_SET code makes a similar assumption.)

	A secondary problem caused by this is that the emulation depends on
	the record source selector being assigned a mixer device index
	greater than that of any `ord'-style record source; otherwise,
	the reverse mapping for that index will be uninitialized.

>How-To-Repeat:
	When using the eso(4) hardware driver:

	1) Set mixerctl -w record.source=cd  (corresponding ord = 2)
	2) Start i.e. xxmix; be suprprised to find its record source
	   selector indicating `line' (= 2 = ESO_LINE_PLAY_VOL) while
	   mixerctl (and the hardware) still indicates cd.

>Fix:
	After MIXER_VALUEs are determined, add a level of indirection
	to look for the relevant bits?
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: kleink 
State-Changed-When: Thu Sep 23 05:36:54 PDT 1999 
State-Changed-Why:  
Duplicate of 8479. 
>Unformatted:
 e>Organization:
 Frobozz Magic Standards Company

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.