From ThinkWiki
Revision as of 16:51, 10 December 2008 by Gandro (Talk | contribs) (Linux ALSA driver)
Jump to: navigation, search


This is a Cirrus Logic Audio controller

Note: This chip is paired with a CS4297A AC'97 Audio controller, only one sound driver should be loaded.


  • Chipset: CS4624
  • Interface: PCI
  • PCI ID: 1013:6003

Linux OSS driver

This sound chip is supported by the cs46xx kernel module.

Linux ALSA driver

This sound chip is supported by the snd-cs46xx kernel module. 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:

/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

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)

ThinkPads this chip may be found in