CS4239

From ThinkWiki
Revision as of 14:26, 2 March 2009 by Mtu (Talk | contribs)
Jump to: navigation, search

CS4239

This is a Cirrus Logic Audio controller

Note: This sound adapter is paired with a PCI CS4610 audio controller.

Features

  • Chipset: CS4239
  • Interface: ISA 16bit

Linux OSS driver

This sound chip is supported by the cs4232 kernel module. Use the following options line when loading this module:

options cs4232 io=0x530 irq=5 dma=1 dma2=0

or try this from the Commandline:

 modprobe cs4232 io=0x530 irq=5 dma=1 dma2=0 mpuio=0x330 mpuirq=7 synthio=0x330 synthirq=7

=> Dont forget to disable QUICKBOOT in the BIOS and dont INITIALIZE !

Linux ALSA driver

This sound chip is supported by the snd-cs4236 kernel module. Use the following options line when loading this module:

options snd-cs4236 index=0 port=0x530 cport=0x538 isapnp=0 dma1=1 dma2=0 irq=5

One 600E running Debian Etch with vanilla 2.6.28 kernel failed to produce sound with snd-cs4236, but the sound works with driver snd-cs4232 loaded. Instructions for Ubuntu suggest to blacklist this driver which in this case was wrong. With standard Debian etch and etchnhalf kernels the snd-cs4236 did not work and snd-cs4232 got stuck on device initialisation or crashed the kernel. Working set of ALSA modules for this 600E on 2.6.28 is:

# lsmod|grep snd    
snd_cs4232             11764  1 
snd_opl3_lib            8928  1 snd_cs4232
snd_hwdep               6084  1 snd_opl3_lib
snd_wss_lib            22400  1 snd_cs4232
snd_pcm                60072  2 snd_wss_lib
snd_timer              16708  3 snd_opl3_lib,snd_wss_lib,snd_pcm
snd_page_alloc          8008  2 snd_wss_lib,snd_pcm
snd_mpu401_uart         5824  1 snd_cs4232
snd_rawmidi            17728  1 snd_mpu401_uart
snd_seq_device          6284  2 snd_opl3_lib,snd_rawmidi
snd                    44580  10 snd_cs4232,snd_opl3_lib,snd_hwdep,snd_wss_lib,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
soundcore               6016  1 snd

CS4236 vs. CS4232

On at least one 600E, with kernels up to 2.6.24.x and ALSA versions up to 1.0.17 (compiled and installed out-of-kernel), one of the working setups was:

options snd-cs4236 port=0x530 cport=0x538 isapnp=0 dma1=1 dma2=2 irq=5

Curiously, these parameters appeared to change with each kernel update and would seemingly at random be either correctly detected by alsaconfig or need to be manually tweaked until some lucky combination was found.

Luckily, on this same 600E, with kernels starting at 2.6.27.x, the in-kernel ALSA driver CS4232 'just works' without passing any special parameters.

PnP issues

This chip is software configurable. In Thinkpads, the BIOS sets up the chip if fast boot is disabled. If fast boot is enabled, the chip is disabled until a PnP driver enables it. As both the OSS and the ALSA module do not support PnP discovering of this chips in a ThinkPad, a configuration script like this one may be used. See also this page for more information.

ThinkPads this chip may be found in

Mixer

I loaded the cs4242 module and on my Gnome Desktop (Ubuntu) and the sound work, but was too low when I play music and with the mixer of Gnome was not possible to modify the volume. I fixed the problem installing the mixer of KDE (kmix) and I use PCM to modify the volume.