On Wed, 2006-03-15 at 10:11 -0800, muzak24h wrote:
The DSP can be from port 0x210 to 0x260. (there's
code to find it)
The IRQ number can be found too. (there's code there to find it too)
controlling a DSP requires writing to registers, not just memory-mapped
ports. it also typically requires an IRQ handler.
He states the SB can play direct or DMA. Direct is
simple but uses a lot of
processor time, while DMA mode is limited to transferring data only from
lo-ram (first MB). DMA requires a buffer and is limited to 64kb blocks so
the wav samples need to be chopped up. Sound Blaster can issue an IRQ each
time DMA stops.
with this particular h/w it might work since most of the registers get
mapped. but they only get mapped by a driver that requests that the i/o
memory space is allocated. no driver, no mapping. the fact that yes, you
can write these from user-space (as root) doesn't help with that.
if there is a driver, then you can simply use it.
The result is a WORD, but we'll send only the MSB
to the DSP. The code of
the function to set the sampling rate will be:
it would be better to keep people who still use terms like WORD should
not be allowed near linux kernel code.
IRQ vectors: When the DMA stops, what to do with it in
this kind of kernel.
Since I can't go to that level in Linux I'm curious...
one the main points of using linux is that, given the skillset, someone
can *always* go to that level.
--p