Linux ALSA driver
This sound chip is supported by the snd-cs46xx kernel module.
Problems with suspend and resume in kernel prior 2.6.29
The driver has a bug in that sound does not work after suspend and resume. If the cs46xx Alsa driver is compiled as a module though, sound can be reinitialized by removing and reloading the module and resetting the alsamixer soundlevels. A simple bash-script (to be run as root) that does this, would look roughly like this:
#!/bin/sh /etc/rc.d/init.d/alsa stop modprobe -r cs46xx modprobe cs46xx /etc/rc.d/init.d/alsa start
Do note that the link to "/etc/rc.d/init.d/alsa" may have to be modified depending on where your distributions init-files are placed.
Without the kernel config option [ ]Currus Logic (Sound Fusion) New DSP support (CONFIG_SND_CS46XX_NEW_DSP) suspend and resume works perfectly. However, the old DPS image has no support for multichannel sound or dmix, so you have to use a soundserver like esd or PulseAudio to allow multiple applications to play sounds at the same time.
Problems with the microphone
If you can't seem to use your mic with this card, open up alsamixer and set the following 3 channels to "capture": MIC, CAPTURE, ADC. Make sure your amixer output contains following:
Simple mixer control 'ADC',0 Capabilities: volume cswitch cswitch-joined Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 32767 Front Left: 32767 [100%] Capture [on] Front Right: 32767 [100%] Capture [on]
(see also: http://alsa.opensrc.org/cs46xx)