Subject: Re: The sound driver
To: None <>
From: Mike Long <>
List: current-users
Date: 01/26/1994 02:17:43
>Date: Wed, 26 Jan 94 04:53:18 +0100
>From: Lennart Augustsson <>

>I'm working on a sound driver for Port*able Sound (a little box
>that you plug into the printer port).  I've got the basic playing
>going (8 bit mu-law, 8kHz), but now I want to add some of the things
>that my box supports, but that isn't included in the generic driver
>(16 bit samples, stereo).  So of course I have some opinions on
>how the generic driver should be changed to become more generic.
>Finally, the question:  Who feels responsible for the sound stuff?
>Who should I talk to?

Ah well, time to drag this out of the closet...

I can't claim responsibility, but I have my own plans for the sound
driver.  Unfortunately, I haven't been able to do much, because I've
been wrestling with the keyboard-lockup-unless-you-hit-a-key-during-
autoconfig problem.  (And it's beating the crap outta me!)

Things I would like to do:

1) Create /sys/arch/i386/isa/ic/ad1848.h, for the benefit of myself
and anyone else who plans to write drivers for hardware that uses the
1848 or compatible chips.  Note that I make no claim of impartiality,
since it's my company's chip; but this is my own project that I'm
doing on my own time.

2) Add support for the Microsoft Sound System (or cards that emulate
it).  The good thing about the MSS is that it uses almost the 1848,
which is almost the same audio codec (register-compatible) as is used
in newer Sparcstations (the ones with Speakerboxes).  Hence, a 100%
Sun-compatible /dev/audio driver is possible (except the streams
stuff; make that "nearly 100%").  So far, I'm still in the
information-collecting and planning stages.

3)  Write a man page (audio.4).

4)  Add /dev/audioctl (only implements subset of ioctls, but doesn't
require exclusive access).

5)  (Future)  Add native support for ADSP2115+AD1848-based cards made
by Cardinal and Orchid (possibly others).  This will have to wait
until more information becomes available.

The big problem I've run into so far is that *BSD allocates one IRQ
and DMA channel per device; it's a problem because the soundcard that
I have (Cardinal Digital Sound Pro 16) emulates three different
devices: Soundblaster, MSS, and MPU-401.  Each emulation has its own
IRQ, and the SB and MSS both have their own DMA channel, so each has
to be its own device.  The emulations don't work until the card has
been intialized, so you've got drivers depending on other drivers.  I
want to set things up so that you can use the same driver for both a
real SB (and/or MSS) and an emulated one.

It's late and I'm getting punchy, so that's all for now.  Don't hurt
me too much. :)
Mike Long                               
VLSI Design Engineer                              voice: (617)461-4030
Analog Devices, SPD Div.                            FAX: (617)461-3010
Norwood, MA 02062                            *this = !opinion(Analog);