[LWN Logo]

Date:   Mon, 16 Aug 1999 01:16:33 +0200
From:   David Olofson <audiality@swipnet.se>
To:     alsa-devel@alsa-project.org, rtl@rtlinux.cs.nmt.edu,
Subject: Driver Programming Interface for Linux/RTLinux

Finally, after messing with the usual 3 times as many silly bugs as you
can imagine, here it is, the first DPI release: dpi-0.1.0 Download from

   http://www.angelfire.com/or/audiality/download.html

<IMPORTANT>
  This code will NOT work with the original RTL POSIX I/O module that
comes
  with RTL beta12, and if the DPI module and the included es1370 driver
  loads with it, you'll likely have a bad kernel crash...
</IMPORTANT>

It's not very well tested, but /dev/dsp works from RTL, ioctl()
included. /dev/dsp, /dev/dac (the synth/rear outputs), and /dev/mixer
works from user space, but I haven't got /dev/midi to work at all with
my card, not even with the original driver... (SB PCI128 without the
stupid combined line in/rear line out.) Haven't tried that hard really,
but if anyone knows about something about AudioPCI cards and MIDI...?
I'll want the MIDI in for cool test hacks soon. :-)

Everything *should* work from both Linux and RTL, but it's mostly
untested, and as always, the kernel panic is close when messing around
with the inner workings... ;-)

Known problems:

 * I get bad crashed if I screw up the buffer fragment settings. Did I
   break the driver, or is there a problem with the original version as
   well? (Will check...)

 * My RTL POSIX I/O module uses structures physically compatible with
the
   standard Linux ones, but there's still some cleaning up to do. The
Bad
   Thing (TM) that's still visible to the driver hacker is the lack of
an
   inode struct, and the minor number is in rtl_file.f_minor. (That last
   int being the only difference from the real struct file.)

 * There is of course more cleaning up to do in the DPI layer, and I
   intend to split the code into headers with macros and inline funcs,
so
   that drivers can be configured "Linux only", "RTLinux only" or
"runtime
   context sensitive" at compile time. (The last alternative is
hardcoded
   in the current release.)


So, get RTL beta12 and have fun... :-)


//David

-
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/