Alsa is the sound subsystem of the Linux kernel.
Many sound cards do not work out of the box and require us to specify a 'model'. What we can do is add information to the Linux kernel (in Alsa) that our sound card follows a specific model. It is quite elemental, and we just need to add a single line to the kernel source.

Let's try out with the sound card of the DP55WG motherboard.
We will be a bit pedantic so that others may replicate with their own hardware.

bdudek writes:
Code:
Ubuntu 10.10 x86_64
Intel DP55WG Motherboard

aplay -l
card 0: Intel [HDA Intel], device 0: ALC889 Analog [ALC889 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC889 Digital [ALC889 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0


/etc/modprobe.d/alsa-base.conf
options snd-hda-intel model=6stack-dig

Works fine. You can select either Analog or Digital SPDIF from the Hardware Tab in Sound Preferences.
What we know now is that the sound card uses the ALC889 codec, and we already tried and found that the model should be '6stack-dig'.

The relevant file in the Linux kernel is
http://git.alsa-project.org/?p=alsa-...ltek.c;hb=HEAD

and we need to add somewhere a line that looks like

Code:
SND_PCI_QUIRK(0x103c, 0x2a09, "HP", ALC880_5ST),
at the proper place. The value for the two hex numbers will come from 'alsa-info.sh'.

bdudek, can you run on your system

Code:
wget www.alsa-project.org/alsa-info.sh -O alsa-info.sh && bash ./alsa-info.sh
This extracts your sound card details, along with the PCI/SUBSYSTEM IDs. These are the numbers that we put in that SND_PCI_QUIRK() line above.
The alsa-info.sh command has an option to send the details to alsa-project.org and publish a public URL. You can send the URL here.

Once we have the PCI/SUBSYSTEM IDs, we can make the one-line patch, and test it with the latest Alsa (and removing the model= hint from the alsa configuration file). If sound works fine, we submit the patch.