Re: Interrupts sound drivers in Linux?

Alan Cox (alan@lxorguk.ukuu.org.uk)
Wed, 10 Nov 1999 16:59:11 +0000 (GMT)


> 1. Are the DMA buffers handled in a dual 'ping-pong' type scheme,
> with half the DMA buffers being read and the other written to? Is
> some other more flexible scheme used.

Normally the boards are set up as ring buffers. Obviously it is up to the
board what works and how. The user view is that you feed it data till it
blocks or says "would block". You select and when there is space it wakes
you. A set of ioctls let you control the wakeup points and query the ring
position

> 2. How are the interrupts handle in the driver? Is the only
> interrupt that is available the regular 'End-Of-DMA' interrupt, or
> can the sound drivers make use of timer interrupts if desired?

Driver dependant.

> 3. I know that OSS supports a 'software mixer' in their drivers. I
> assume this software mixer runs in kernel space, so in that case how
> is mixing of multiple sounds handled using the software mixer?

The commercial OSS does, the free one does not. We don't intend to add
mixing in kernel space. It is for daemons such as esd to manage.

> The main reason I am asking is that we are interested in abstracting
> the mechanisms that are used to implement sound drivers in different
> systems. I already know how DOS, Windows and OS/2 do sound, and I am
> interested in learning more about how Unix does it.

Take a look at SDL. That has a pretty good abstraction layer for audio from
what I remember.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/