Hi.  I am trying to write a Linux sound driver.  I have some questions
that I hope someone here can answer.

1. (the big question) This device requires a single DMA buffer of up
   to 8 Kb in main memory.  It reads/writes the buffer circularly.  It
   can't chain buffers.  Can I use the OSS DMA routines to set that
   up somehow (how?), or do I have to write a non-OSS driver?
   What does this imply for mmap?
   
2. This device is capable of telling how many samples it has
   read/written, with an accuracy of 1 sample.  I'd like to export
   that via the SNDCTL_DSP_GET{I,O}PTR, ioctls, but I can't see how
   my driver can get control on those ioctls.

3. This device has memory-mapped registers.  I want to write a probe
   routine that can verify that the device is there at the address
   it's supposed to be.  Is there a Linux routine to "read memory and
   trap any fault"?

4. The mixer doesn't have a capability that corresponds to
   SOUND_MIXER_VOLUME.  If I don't implement SOUND_MIXER_VOLUME, will
   I be incompatible with 99% of the apps?  If I have to, I can fake
   it -- maintain a SW volume setting and merge it into the level
   I send to all the other faders...

That's enough questions for now.  Hopefully, these are easy for
someone who's familiar with the Linux sound architecture.

Thanks for any help.

                                        K<bob>

Reply via email to