I took a look at the Intel AC97 2.2 specs. It seems that the behaviour
described here is a AC97 2.2 recommendation. take a look at 1 & 2 of 5.2.1.

Pieter

--------------------------------------------

AC `97 Component Specification  Revision 2.2   September 2000

5.2 LINE_OUT and AUX_OUT

AC `97 audio Codecs support two independently controlled stereo outputs:
    1. The master output, labeled LINE_OUT, uses pins 35, 36 for L and R
(48 pin QFP package) and is controlled by the Master Volume Register
02h.  No changes have been made to LINE_OUT definitions.
    2. A second output, originally defined as HP_OUT, uses pins 39, 40,
and 41 for L, Common, and R (48-pin QFP  package) was re-defined as
LNLVL_OUT for AC `97 2.1, and is controlled by optional volume Register
04h.  In addition to the HP and LNLVL definitions, 4-channel Codecs
typically utilize pins 39 and 41 for the  additional (i.e. L & R
Surround) outputs.

5.2.1 AUX_OUT Options
As identified in the previous section, there are three common uses for
AC `97's second output.  AC `97 2.2  addresses all three uses by
renaming the second output as AUX_OUT, Register 04h as Aux Out Volume,
and the pins as AUX_OUT_L, AUX_OUT_C, and AUX_OUT_R.

Driver developers should be aware that the AC `97 AUX_OUT may be
implemented in one of three ways:

    1.True line level out.Support for a true consumer
equipment-compatible (10 k\Omega ) line level output that does not
change with master volume settings. Either fixed or fixable via the
independent volume controls in Register 04h, the output level provides a
1V RMS (2.8 V peak-to-peak) output level for a 0 dB gain PCM output
stream. When implemented this way, AUX_OUT is equivalent to AC `97 2.1's
LNLVL_OUT definitions.

    2.Headphone out.  AUX_OUT can be implemented to support integrated
headphone amplifier with 32 \Omega  drive capability and independent
volume control via Register 04h.  When implemented this way, AUX_OUT is
equivalent to AC `97 1.03 original HP_OUT definitions

    3. 4-Channel out.  In Codecs that support 4-channel operation,
AUX_OUT can be implemented to support the  additional (i.e. L&R
Surround) outputs. When implemented this way, AUX_OUT will be referred
to 4CH_OUT.  In 4CH_OUT implementations, L and R Surround output is
controlled via Surround Volume  Register 38h, not Aux Out Volume 04h,
and powered down via the PRJ (SDAC) bit in Register 2Ah.

AUX_OUT defaults to be LNLVL_OUT unless HP_OUT or 4CH_OUT support is
detected.  Unless the specific  Codec configuration is indicated via INF
file, driver writers should use the following methods for detecting a
specialized Codec with HP_OUT or 4CH_OUT capabilities:

* HP_OUT capability can be detected via Reset/ID Register 00h, ID bit 4
and the Aux Out Volume Register 04h default value reads "8000h" (i.e.
implemented). ID4 is no longer used to indicate LNLVL support.
* 4CH output capability can be detected via the Extended Audio ID
Register 28h, SDAC ID bit 7, and a Surround Volume Register 38h default
of "8080h" (i.e. implemented).

HP and LNLVL implementations of AUX_OUT external output are powered down
via bit PR6 in Register 26h.

--------------------------------------



Takashi Iwai wrote:

>At Fri, 24 Jan 2003 12:16:00 +0100 (CET),
>Jaroslav wrote:
>
>
>>On Fri, 24 Jan 2003, Takashi Iwai wrote:
>>
>>
>>
>>>Hi all,
>>>
>>>there have been bug-reports regarding to the swapping of headphone
>>>and master volumes.
>>>i'd like to ask you to check which AC97 codec chip is used on which
>>>board (or laptop) if you have such a problem.  if this happens only on
>>>a certain chip model, we can add a quirk for that.
>>>
>>>
>>Takashi, this quirk can be done only by detection of subvendor and
>>subsystem from the PCI ID space.
>>
>>
>
>yeah, the lspci output is on the query list.
>
>
>
>>It's absolutely irrelevant which AC97
>>chip is used.
>>
>>
>
>really?  i believe this happens only on certain ac97 chips.
>for example, ALC202 spec says that ALC202A uses the headphone volume
>as the "true line out" volume.  so, apparently, some ac97 chips
>"recommend" this behavior.  let's see...
>
>
>
>>Vendor might wire codec in any way. Also, some codecs may
>>swap line-out / headphone out via registers.
>>
>>
>
>this is a different case, imo.
>the problem is that we have no chance to detect/switch them, either
>manually or automatically.
>
>a general solution would be to add an ac97 control switch to swap
>them.  then the accssed registers are exchanged internally according
>to this control.
>
>but it isn't bad to know which chips and which machines have this
>problem, so that we can add quirks to turn on this switch
>automatically.
>
>
>Takashi
>
>
>-------------------------------------------------------
>This SF.NET email is sponsored by:
>SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
>http://www.vasoftware.com
>_______________________________________________
>Alsa-devel mailing list
>[EMAIL PROTECTED]
>https://lists.sourceforge.net/lists/listinfo/alsa-devel
>
>
>






-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to