Revised cs4231 sound driver for Ultrasparcs
Pyun YongHyeon
yongari at kt-is.co.kr
Wed Aug 25 23:25:55 PDT 2004
Hello All,
Here is a revised sound driver for SBus/EBus based Ultrasparcs.
Changes from my old SBus sound driver:
1. Added support s4231 audio chip found on EBus based Ultrasparcs.
2. Added AFMT_S16_BE audio format. So there is no need to be
invoked endian conversion routine in sound(4)(feeder_endian).
Most PC based soundcards supports little-endian format only
(AFMT_S16_LE). If these cards are used on sparc64, sound(4) would
have to perform endian-conversion in kernel. Of course, this
reduces playback/capture performance.
3. bug fix for mixer settings
4. bug fix for skipping audio samples on APC DMA
Audio application notes:
Well written audio applications, endian-clean and LP64 ready applications,
should work without any problems. For instance, mpg123, mp3blaster,
mplayer works well. xmms, one of most popular player, needs additional
patch from here.
<xmms-1.2.10 patch for sparc64>
http://www.kr.freebsd.org/~yongari/patch-OSS.sparc64
Due to lack of X supports on my sparc64, audio playback on xmms was
tested on a remote i386 X server.
Known bugs & limitations:
Audio capture(recording) was not tested at all.
Full-duplex operation may not work.
The driver was tested on Ultra2 and AXe.
Installation:
1. get the driver file and patch your source tree
#fetch http://www.kr.freebsd.org/~yongari/cs4231.freebsd.diff
#cd /usr/src
#patch -p0 < /path/to/patch-file
2. build kernel and kernel modules
#cd /usr/src
#make buildkernel KERNCONF=YOUR_KERNEL_CONFIG
#make installkernel KERNCONF=YOUR_KERNEL_CONFIG
If you don't want to use the sound driver as a kernel module, you
can add the following lines in your kernel configuration.
device sound
device "snd_cs4231"
3. reboot
4. load snd_cs4231.ko driver module and play
Note, you may want to mute speaker output with mixer(8) on Ultra1/2.
* You may notice all sound drivers are installed by my patch. But
I don't know whether these drivers are functional or not on sparc64.
It wouldn't surprise me if none of the drivers except snd_cs4231 work
on sparc64. Since I have a trident 4dwave PCI card, I can help to make
it work on sparc64 provided that I have more time and requests from
users.
The patch is for 6-CURRENT and is available at:
http://www.kr.freebsd.org/~yongari/cs4231.freebsd.diff
(The patch may be applied to 5.3BETA or higher as well.)
If you are interested in audio support on sparc64, please give it
a try and let me know how it goes.
Thanks.
Regards,
Pyun YongHyeon
--
Pyun YongHyeon <http://www.kr.freebsd.org/~yongari>
More information about the freebsd-sparc64
mailing list