[LWN Logo]

Date:	Fri, 5 Jun 1998 23:57:58 -0400 (EDT)
From:	Derrick J Brashear <shadow@DEMENTIA.ORG>
Subject: audio as it should be: another snapshot
To:	sparclinux@vger.rutgers.edu

Hi,

I just uploaded another 2.0 audio snapshot to 
ftp://ftp.dementia.org/pub/linux/sparcaudio/audio-2.0.33-980605.tar.gz

As with the previous ones, this one is for 2.0 kernels only, though I do
promise these changes will get into the 2.1 tree soon. A list of what's done
and to do appears below; A patch to make SunOS raplayer work which must be
applied to the kernel is also included. If you have problems other than lack of
support for your LX, 10, 20, please let me know. Enjoy.

-D

(What follows is a long description of what's here, what's in progress, and
what's still to come)

What's here:

a) playback support. Works as near to perfectly in the 4231 as I suspect it
ever will. Presumably works as good as it ever did in the AMD; My IPC is still
down and I can't play with it. Still no support for the DBRI.

b) ioctls. Most of the DSP-style ioctls an OSS-aware application would want to
use are supported. One in particular not yet supported which I wish to fix is
SNDCTL_DSP_SETFMT. What this means is that all those apps you got with RedHat
4.2 should work assuming you only use play. Plus, AUDIO_SETINFO now copies out
the "current state" structure.

c) SunOS compatibility. There's enough STREAMS io compatibility in the audio
midlevel to make raplayer 3.0 for SunOS work, *if* you apply the included patch
to fs/read_write.c. It removes code which causes sys_write to exit when it gets
a 0 length write. The change was already done in 2.1 kernels, and I've had no
problems with it in mine. Alternately, you can use the complete included
fs/read_write.c, which I include from my kernel. This actually makes raplayer 3
work better on my SS4/110 running 2.0.33 than either raplayer 3 or rvplayer 5
do on the Ultra 1/170 running Solaris 2.5.1 in my office. One side effect of
how I did the compatibility, which calls for "asynchronous notification" upon
processing of the buffer inserted by a zero length write (e.g. sending a
SIGPOLL to processes which have registered for it), is that raplayer will
rebuffer needlessly several times when starting, but after that be very stable
and reliable. I'm working on a fix, but right now I can't find a way to do it
without other side effects.

d) pause support was added. The pause support is not yet implemented for the
amd, because I can't test what I believe the correct way to do it is. For the
4231 it's slightly harder because you need to stop dma but not interfere with
what's next up...

e) oh, and monitor gain works correctly for the 4231. i finally got an audio
source when i brought a cable home from work tonight....

Todo:
f) amd sync. put all the features done for 4231 and not for amd yet in the amd

g) dbri support. right now there's no dbri support whatsoever, so the speaker
on my LX sits idle:-(

h) push all this to 2.1. Jakub Jelinek has graciously been testing 2.1 code
I've been sending him as he gets a chance, so when he's satisfied that it
works, I'll push it all into the main CVS branch

j) record support. it's unclear to me if this works for the amd, but it
definitely does not for the 4231. the 4231 requires similar dma support as what
I did for play, and some other work. 

h is currently ongoing, and j should be starting in a few hours. audio input
would complete a project intended to allow me to record from the radio, now
only 21 months after it would last have been useful to me:-)

-D

-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of the message to majordomo@vger.rutgers.edu