re: sound blaster using DMA 0

Mike A. Harris (
Fri, 31 Jul 1998 01:16:46 -0400 (EDT)

On Thu, 30 Jul 1998, Brian K. White wrote:

> > > Since no one mentioned yet...Is it a full duplex card?
> > >
> > > --
> > >
> >
> > A full duplex midi card?
> > I don't think those exist or are usefull.
> > It was a bug in the source, hopefully fixed by Mike now.
> >
> > Yeep
> >
> pardon me, but, what a retarded notion! please... retarded I may
> indeed be, but I certainly didn't prove it by thinking there was
> a midi card out there needing two or more dma's to itself! :)
> there are several cheapy as well as quality sound cards out
> now that have full duplex pcm capability. They can adc and dac
> at the same time and usually are defaulted to use both dma 0
> and dma 1 . I can't remember if the last one I set-up had a third
> dma for "dma16" or not, but it seems entirely possible.
> btw, no I don't just mean like any sound card can do, which is
> record pcm and the mixer can monitor the input thus seemingly
> "playing" while recording.
> In any event, I though the midi (if you really do want midi at the
> 15 pin plug) used irq 2/9 and the fm-synth (what is usually also
> "called" midi, since most don't actually have a use for midi at
> the plug, but they play midi files with the internal fm-synth chip)
> used no irq at all and the address for historical adlib.

Look. The problem that I posted, was stating that there was an
alleged bug in the sound code. I mis-stated that my card was
using 2 DMA channels when in fact the Linux startup claimed it
used 3. 2 were the standard 2 DMA's used by SB16 cards, the
third was bogus as far as I was concerned because I didn't
think that MIDI used DMA.

The bug was either one of two things:

1) MIDI does not use DMA of any kind, so the DMA 0 message was
2) MIDI does use DMA, uses DMA 0, and /proc/dma was not
displaying it, thus a bug.

Alan Cox reported that I was correct, that there was a minor bug,
and he guessed at what it probably was. He guessed that the code
that configures the MIDI section of the SB was not disabling DMA
by setting the struct members to -1. Thus they defaulted to 0,
which is a valid DMA channel, and thus it printed DMA 0.

The routine that displays the stuff is conf_printf(),
conf_printf2(). It displays whatever info is available. It does
a check to see if DMA is set to -1, and if so, it does NOT
DISPLAY any DMA setting. However, the DMA was set to 0 by the
probe_mpu() routine, and thus the improper confusing message was
printed on the screen.

So, I was right. I found and fixed the problem, which Alan will
include in the next kernel release. End of story.

This has nothing to do whatsoever with PCM, DSP's, recording or
playback, or anything else you are discussing.

There was a problem, it is now fixed. Now please drop it.

Mike A. Harris  -  Computer Consultant  -  Linux advocate

Escape from the confines of Microsoft's operating systems and push your PC to it's limits with LINUX - a real OS.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to Please read the FAQ at