The support for cs4231 audio codec was added a while ago but the necessary hooks to activate this are still missing. Fix: Add the following lines to the kernel definition file (e.g. GENERIC): device sound device "snd_cs4231" and apply this patches to the corresponding files (relative to /usr/src): after this compile a new kernel and reboot the system. The audio device shows up as: pcm0: <Sun Audiocs> mem 0xc000000-0xc0001ff irq 2020 on sbus0 pcm0: <CS4231A Codec Id. 10> It works nicely on my plain Ultra1.--0W7rJT6aRjrHzTgcdHYo1wOF465ok7X4Cuw3pQBRCAmVrOsM Content-Type: text/plain; name="file.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="file.diff" --- ./sys/conf/NOTES.orig Thu Feb 23 03:13:30 2006 +++ ./sys/conf/NOTES Sun Mar 26 03:52:48 2006 @@ -1939,6 +1939,7 @@ # snd_audiocs: Crystal Semiconductor CS4231 SBus/EBus. Only # for sparc64. # snd_cmi: CMedia CMI8338/CMI8738 PCI. +# snd_cs4231: Crystal Semiconductor CS4231. # snd_cs4281: Crystal Semiconductor CS4281 PCI. # snd_csa: Crystal Semiconductor CS461x/428x PCI. (except # 4281) @@ -1976,6 +1977,7 @@ #device snd_au88x0 #device snd_audiocs device snd_cmi +device snd_cs4231 device snd_cs4281 device snd_csa device snd_ds1 --- ./sys/conf/files.orig Sun Mar 26 01:30:11 2006 +++ ./sys/conf/files Sun Mar 26 03:47:16 2006 @@ -843,6 +843,8 @@ dev/sound/pcm/sndstat.c optional sound dev/sound/pcm/sound.c optional sound dev/sound/pcm/vchan.c optional sound +dev/sound/sbus/cs4231.c optional snd_cs4231 sbus +dev/sound/sbus/cs4231.c optional snd_cs4231 ebus #dev/sound/usb/upcm.c optional snd_upcm usb dev/sound/usb/uaudio.c optional snd_uaudio usb dev/sound/usb/uaudio_pcm.c optional snd_uaudio usb --- ./sys/modules/sound/driver/Makefile.orig Fri Dec 30 20:55:54 2005 +++ ./sys/modules/sound/driver/Makefile Sun Mar 26 03:49:04 2006 @@ -3,7 +3,7 @@ .if ${MACHINE_ARCH} == "sparc64" SUBDIR = audiocs es137x .else -SUBDIR = als4000 ad1816 atiixp cmi cs4281 csa ds1 emu10k1 es137x ess +SUBDIR = als4000 ad1816 atiixp cmi cs4231 cs4281 csa ds1 emu10k1 es137x ess SUBDIR += fm801 ich maestro maestro3 mss neomagic sb16 sb8 sbc solo SUBDIR += t4dwave via8233 via82c686 vibes SUBDIR += driver uaudio
The patch I provided in sparc64/94940 does not build correctly the module for cs4231 (as part of the sound module). Sorry for that. After updating the patch provided by Pyun YongHyeon here: http://www.kr.freebsd.org/~yongari/cs4231.freebsd.diff I've got a new patch that applies cleanly to 6.1-PRERELEASE. In order to apply the patch please run cd /usr/src patch -p0 < /path/to/patch The patch follows: --- ./sys/conf/NOTES.orig Thu Feb 23 03:13:30 2006 +++ ./sys/conf/NOTES Sun Mar 26 03:52:48 2006 @@ -1939,6 +1939,7 @@ # snd_audiocs: Crystal Semiconductor CS4231 SBus/EBus. Only # for sparc64. # snd_cmi: CMedia CMI8338/CMI8738 PCI. +# snd_cs4231: Crystal Semiconductor CS4231 sbus/ebus. # snd_cs4281: Crystal Semiconductor CS4281 PCI. # snd_csa: Crystal Semiconductor CS461x/428x PCI. (except # 4281) @@ -1976,6 +1977,7 @@ #device snd_au88x0 #device snd_audiocs device snd_cmi +device snd_cs4231 device snd_cs4281 device snd_csa device snd_ds1 --- ./sys/conf/files.orig Sun Mar 26 01:30:11 2006 +++ ./sys/conf/files Sun Mar 26 03:47:16 2006 @@ -843,6 +843,8 @@ dev/sound/pcm/sndstat.c optional sound dev/sound/pcm/sound.c optional sound dev/sound/pcm/vchan.c optional sound +dev/sound/sbus/cs4231.c optional snd_cs4231 sbus +dev/sound/sbus/cs4231.c optional snd_cs4231 ebus #dev/sound/usb/upcm.c optional snd_upcm usb dev/sound/usb/uaudio.c optional snd_uaudio usb dev/sound/usb/uaudio_pcm.c optional snd_uaudio usb --- ./sys/modules/sound/driver/Makefile.orig Sun Mar 26 06:36:30 2006 +++ ./sys/modules/sound/driver/Makefile Sun Mar 26 06:36:45 2006 @@ -1,7 +1,7 @@ # $FreeBSD: src/sys/modules/sound/driver/Makefile,v 1.16.2.1 2005/12/30 19:55:54 netchild Exp $ .if ${MACHINE_ARCH} == "sparc64" -SUBDIR = audiocs es137x +SUBDIR = audiocs es137x cs4231 .else SUBDIR = als4000 ad1816 atiixp cmi cs4281 csa ds1 emu10k1 es137x ess SUBDIR += fm801 ich maestro maestro3 mss neomagic sb16 sb8 sbc solo --- /dev/null Sun Mar 26 06:22:01 2006 +++ ./sys/modules/sound/driver/cs4231/Makefile Sun Mar 26 05:45:11 2006 @@ -0,0 +1,10 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../../../dev/sound/sbus + +KMOD= snd_cs4231 +SRCS= device_if.h bus_if.h ofw_bus_if.h +SRCS+= channel_if.h feeder_if.h mixer_if.h +SRCS+= cs4231.c + +.include <bsd.kmod.mk>
State Changed From-To: open->closed Confirmed by Gheorghe Ardelean <ardelean@ww.uni-erlangen.de>: > Try reverting your patches and using 'device snd_audiocs' instead of > 'device snd_cs4231' in your kernel config. I think there is also already > support for a snd_audiocs kernel module as well. This is true, it works nicely with snd_audiocs. Sorry for not seeing it. Someone please close the pr!