Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Aug 2004 15:25:23 +0900
From:      Pyun YongHyeon <yongari@kt-is.co.kr>
To:        sparc64@freebsd.org
Subject:   Revised cs4231 sound driver for Ultrasparcs
Message-ID:  <20040826062523.GB12164@kt-is.co.kr>

next in thread | raw e-mail | index | archive | help
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>;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040826062523.GB12164>