From the ALSA wiki
The Realtek ALC650 is a 6-channel audio chip which supports the 'traditional' Intel Audio Codec 1997 (AC'97) standard. For use with a computer, the chip needs to be connected to one of the computer buses. This may be done via a dedicated soundcard or, if the chip is on the motherboard, by direct connection to the motherboard southbridge.
As input the ALC650 accepts digital PCM (pulse coded modulation) data from the computer and analogue signals from a CD, microphone, telephone and other audio equipment. PCM data is first converted to an analogue signal. The different analogue signals can then be amplified and combined to produce the main stero line-out signal. Output to the additional four analogue output channels can come either from their own PCM input channels or from the line-out signal.
In a separate analogue path through the chip, the input analogue signals (plus the line-out signal) can be combined and amplified to produce a digital output signal for input to the computer. The chip can also send and receive data from other audio devices using the Sony/Phillips Digital Interface Format (S/P DIF).
Motherboard Chips and Alsa Drivers
If the motherboard is based on one of the Nvidia Nforce chipsets it should be possible to control the chip using the intel8x0 Alsa kernel module which supports the Nvidia interface. If the motherboard is based on a Via chipset, the ALC650 may be connected to a Via8233 southbridge or similar chip. In that case it should be possible to control the ALC650 using the via82xx Alsa kernel module. Note that in such cases the system will appear to contain a Nvidia or Via soundcard whose name is the name of the southbridge chip.
Installation of a via82xx Driver
- Download alsa-driver alsa-lib and alsa-utils 
- Untar and place the directories in
./configure make install ./snddevices
./configure make install
./configure make install
Run alsaconf and follow the onscreen instructions. It should generate a section in your
/etc/modules.conf that looks like this:
# --- BEGIN: Generated by ALSACONF, do not edit. --- # --- ALSACONF verion 0.9.0 --- alias char-major-116 snd alias snd-card-0 snd-via82xx alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss options snd major=116 cards_limit=1 device_mode=0666 options snd-via82xx index=0 # --- END: Generated by ALSACONF, do not edit. ---
It took me a sec to figure this one out, and I don't know if it's just my setup. SPDIF support is controlled by the sound control element called 'IEC958 Playback AC97-SPSA'. The gnome mixer program does NOT control the SPDIF output (the 'digital' output is something different). You can control it through alsamixer or amixer in the console (or you could use the alsa mixer for gnome ). The other trick is that the 'percentage' for output needs to be zero for the output.
Putting this in your
/etc/rc.d/rc.local should fix this:
amixer set 'IEC958 Playback AC97-SPSA' 0
from the via8233 page, this is expalined as follows...
If the playback device indicates a link is present, but makes no sound, check the mixer 'IEC958 Playback AC97-SPSA'. The S/PDIF always outputs at full volume - even muting the master or PCM mixers does not affect the S/PDIF volume. The meanings of the settings for 'IEC958 Playback AC97-SPSA' are
0. PCM1 1. PCM2,PCM1 (rear) 2. Centre and LFE 3. PCM3,Modem,Dedicated S/PDIF
Most users will want it set to 0 (PCM1). Some of the 82xx chips have a dedicated S/PDIF port, which is (I assume) accessed by setting it to 3 (Dedicated S/PDIF). The default appears to be 3.
The driver's been rock solid for me for a week! Happy listening! Please note that I only use the SPDIF support, although I have confirmed working analog output, too. Your mileage may vary.