Messages in this thread | | | From | Geoffrey Wossum <> | Subject | Re: AT32 ASoC Driver Patches on alsa-devel | Date | Fri, 6 Jun 2008 09:32:15 -0500 |
| |
On Friday 06 June 2008 04:29:15 am Haavard Skinnemoen wrote: > Geoffrey Wossum <geoffrey@pager.net> wrote: > > On Thursday 05 June 2008 11:24:09 am Haavard Skinnemoen wrote: > > > Geoffrey Wossum <geoffrey@pager.net> wrote: > > > > On Thursday 05 June 2008 09:22:06 am Haavard Skinnemoen wrote: > > > > > Geoffrey Wossum <geoffrey@pager.net> wrote:
> Ok. Since the SSC module is a multi-purpose module, the SSC driver was > designed to be as thin and flexible as possible. So we just added some > platform_driver glue and a request/free interface and left everything > else up to the higher-level driver. > > I suppose we could add a few more helper functions. Suggestions are > welcome.
It's hard to try to add all the possible permutations of functionality. Probably just getting register bit field constants defined would help out tremendously.
> > One issue is the SSC > > interface, which you have said could be used on the AT91. After that, > > the main differences are that the DMA buffer has to be allocated > > differently, and the mmap() implementation is different. > > Oh. That's a bit surprising to me...can you elaborate on the > differences?
Well, I used a coherent DMA buffer on the AVR32. I was trying to rule out caching effects for the issues I was having at first. Eventually it should be switched back to a writecombined DMA buffer. I assume this will require adding some dma_sync_*() calls, which strangely seem to be missing from at91-pcm.c.
The mmap() would still look different, though. The AT91 uses dma_mmap_writecombine(), which only exists on the ARM. Glancing at that routine, it seems to jump through a lot of hoops. I've never worked on an ARM with an MMU, so I don't really know why it's necessary. But the AVR32 just requires a call to remap_pfn_range().
--- Geoffrey
| |