On Wed, May 09, 2007 at 10:47:34PM +0200, Joachim Förster wrote: [snip]
So our thoughts were: Integrate the "DMA ring buffer" (which is usually somewhere in main memory/RAM) into the AC97 controller. Make ALSA access this HW buffer as if it was in main memory.
[snip]
Mapping this "IO memory" into kernel space should be possible with io_remap_page_range(), right? I would have to implement the mmap() callback in my driver, to setup the given VMA (with the above function), right? So, ALSA library/applications will be able to use MMAP mode, which is what we want to achieve?
You can't assume that IO memory can be accessed just as if it was memory on all architectures. However, in this case it seems that you can make sure that this is so. I think you should ask on the kernel mailing list what you should do designing the hardware to make sure it will work.