Skip to contentSkip to conversation

Missing 16bit DMA channel

DISCUSSION Peter Leif Rasmussen 3 participants 4 messages Apr 18, 2000 – Apr 19, 2000 Sound

lore
Share & tools
lore
#0 lore raw

I have mentioned this before and I'm sure you are sick of it, but having investigated some more I am actually more confused about this issue than ever.

It seems to me from reading documentation, linux/Documentation/sound files and the sound HOWTO, and reading posts on this list that sound cards are supposed to have one 8bit DMA channel and one 16bit if it has two DMA channels and all drivers expect that?

As I am unfortunate enough to have a Socket7 mobo with a SB Vibra 16 chip on it, which I can't disable, and that chip has two 8bit DMA channels instead of one 8bit and one 16bit, I looked if I could get it to work with another soundcard.

I found in my pile of stuff an ESS1868 soundcard, which should be very SB compatible and an Opti925 soundcard. They are both ISA PNP cards. I also found that those two only have two 8bit DMA channels as well and I had some problems getting them to work on the mentioned mobo (using module sound drivers and the isapnp tool or letting the kernel ISA PNP module take care of things, which it didn't seem to really be able to).

In any case this has got to mean that there are lots of sound cards out there that only have 8bit DMA channels, and not only the SB16 Vibra as I once thought, so why is the design of the Linux sound subsystem made to expect 16bit for the second DMA channel? At least that is what it looks like to me?

I could get the kernel (2.3.99-pre5) to detect the Opti925 card upon bootup, with the drivers mentioned in the "sound/Opti" file compiled in and ISA PNP also compiled in, but after that there was nothing that showed that there was a sound device (/proc/dma, /proc/interrupts, /proc/ioports) even though /proc/isapnp showed the presence of the Opti card.

Could someone please tell me what I am missing here?

Thank you very much,

Peter

#1 lore raw

[quoted lines by Peter Leif Rasmussen on April 18, 2000, at 09:52]

Quoted 2 lines

I found in my pile of stuff an ESS1868 soundcard, which should be very SB compatible

Check the comments at the top of "/usr/src/linux/drivers/sound/sb_ess.c". They seem to be saying that the second DMA option is called "dma16", but that it only specifies a 16-bit DMA if set to 5, and that all other values really refer to 8-bit DMAs.

Signature · 3 lines
Dave Mielke           | 856 Grenon Avenue | I believe that the Bible is the
Phone: 1-613-726-0014 | Ottawa, Ontario   | Word of God. Please contact me
EMail: [email protected] | Canada  K2B 6G3   | if you're concerned about Hell.
#2 lore raw
In reply to Peter Leif Rasmussen
Quoted 11 lines · Dave Mielke

[quoted lines by Peter Leif Rasmussen on April 18, 2000, at 09:52]

Quoted 2 lines

I found in my pile of stuff an ESS1868 soundcard, which should be very SB compatible

Check the comments at the top of "/usr/src/linux/drivers/sound/sb_ess.c". They seem to be saying that the second DMA option is called "dma16", but that it only specifies a 16-bit DMA if set to 5, and that all other values really refer to 8-bit DMAs.

Yes, I looked and I found in that file:

* Full duplex is enabled by specifying dma16. While the normal dma must
* be one of 0, 1 or 3, dma16 can be one of 0, 1, 3 or 5. DMA 5 is a 16 bit
* DMA channel, while the others are 8 bit..

As duplex is what I am looking for.

This comment (if still valid) seems to indicate that even a second 8bit DMA channel will make the driver work in full duplex, and only if you really need a 16bit DMA channel you can specify that. The documentation doesn't give any indication of this, so thank you for pointing it out. I couldn't yesterday make it work, though, but will try a little harder now knowing that this card probably should work.

As ESS is closely wedded to SB why then can't a true SB card, eg. the SB Vibra 16, be made to use the second 8bit DMA channel in duplex mode?

Thanks,

Peter

#3 lore raw
In reply to Peter Leif Rasmussen
Quoted 3 lines · Peter Leif Rasmussen

I have mentioned this before and I'm sure you are sick of it, but having investigated some more I am actually more confused about this issue than ever.

[SNIP]

Quoted 6 lines

Could someone please tell me what I am missing here?

Thank you very much,

Peter

Peter,

Could you please send me a copy of your /proc/isapnp from a 2.3.99 kernel (if not available a copy of the output from pnpdump would work)? The copy I have, for the Creative ViBRA16C PnP, shows that the card actually asks for a 16 bit DMA. This goes against what I've heard about these cards, that they need two 8 bit DMAs. If your card is also asking for a 16 bit dma, then it is not the fault of the kernel but a hardware bug, which needs a isapnp quirk written for it (I'll write it if you test it).

Anyway, I'd appreciate a copy of your /proc/isapnp anyway. Perhaps I should start a database . . . Or is there one available?

Thanks,
Paul Laufer