[alsa-devel] The users view of an audio card
cladisch at fastmail.net
Fri Jul 20 11:44:23 CEST 2007
David Webb wrote
> 1. A large number of users seem to be reporting problems with Nvidia and Via
> soundcards. As far as I can tell Nvidia and Via do not produce soundcards
> but they do produce chipsets with southbridges which can connect to a
> motherboard audio chip. The when alsamixer (or Kmix) runs it reports
> something like:
> Card: NVidia CK804
> Chip: Realtek AL650 rev 0
> Presumably because the southbridge is the primary PCI device.
> 1.1 Is the above always correct (so I can add it to the wiki)?
Yes. An AC'97 or HDA system contains two parts: the controller, which
reads audio data from memory over the PCI bus, and the codec, which
converts the data from digital to analog and does analog mixing.
The southbridges from nVidia and VIA (and others) contain such a
> 2. On different motherboards a Realtek 650 may be connected using a NVidia
> CK804 with the intel8x0 alsa driver or using a VIA VT8233 with the vt82xx driver.
> 2.1 Given that the audio chip registers are the same in both cases why are
> two different drivers needed?
The driver has to interface with the controller (and with the codec
through the controller).
The code to handle various codecs is not part of the controller driver
but is contained in a separate module (snd-ac97-codec) that gets loaded
> 3. The Realtek 650 datasheet implies that independently of the mixing in the
> main input -> line-out pathway, the input to the ADC (i.e. on capture) may
> include more than one source (i.e. both audio and microphone). However
> alsamixer (and kmix) only allows me one input stream. So:
> 3.1 Is the manual misleading or have I misread it?
Register 1A allows to select one of the various input sources. One of
them is the stereo mixer output, i.e., the same data that is output to
the speakers and that can contain the data of several inputs.
> 3.3 Is the driver assuming a old layout which fits most of the new audio chip
> layout but not all? (This is really a question about what sort of
> warnings/advice should my write up include).
The AC'97 code assumes that codecs conform to the AC'97 specification.
However, mixer controls can be added, removed, or renamed by codec-
specific code in snd-ac97-codec or by mainboard-specific code in the
driver. This code is continually changed and updated because every
mainboard out there seems to be wired differently.
More information about the Alsa-devel