Subject: Re: ICH5 mixer issue, kern/20368 and kern/22548
To: TAMURA Kent <kent@netbsd.org>
From: Lars Heidieker <>
List: tech-kern
Date: 09/08/2003 22:05:57
I just read through the datasheet of the ad1985 codec
and found why the surround and headphone outputs are swapped:
After reset state:
The line outs not having amplifier are routed through master.
The Surround/Headphone having an amplifier routed through surround
Yes thats wiered surround and headphone go actually together.

Therefor setting "losel" and "hpsel" in reg 0x76 swaps these and after that 
the mixer names are just wrong.

Its the same with the ad1980 codec.
So I guess all sound systems based on these codecs have their channels swapped 
to be able to provide a single jacked for line out and headphone.
So implementing the quirks to get the mixernames right makes sense (at least 
from my point of view).


PS.: If anyone needs the datasheet give me note.

On Monday 08 September 2003 17:09, TAMURA Kent wrote:
> In message "ICH5 mixer issue, kern/20368 and kern/22548"
>
> > First of all, kern/20368 is wrong, although the fix does the right thing
> > in the end. The main reason for that is that the codec listing is
> > erroneous: ADS 0x70 is ad1980, not ad1981. Thus the register names are
> > different. In the meantime, that codec should be probed as:
>
> Ok, I have fixed this.
>
> > The effect of kern/20368 is to have the headphone controlled by the
> > surround register, and the line-out controlled by the main mixer, thus
> > inverting the use of the two registers, creating the behaviour described
> > in kern/22548.
>
> I have questions to understand the behavior of AD1980.  When you
> play stereo audio data, do you have the audio output via the
> line-out with kern/20368, and via the headphone without
> kern/20368?  How does outputs.headphones work, and how about
> setting AD1980_MISC_SPRD?