On 03/11/2014 05:47 AM, Kuninori Morimoto wrote:
Hi Lars, Mark
Make them ASoC components ;) I don't know the hardware, but looking at the code it doesn't seem to be that different from other modern host side audio processing units. But one step at a time, first maybe try and see if you can switch over to using the dmaengine PCM helper functions. Then later thing about how this all can be better integrated into the ASoC framework.
In my quick check, I guess, my drivers (FSI/rcar) can use ${LINUX}/sound/core/pcm_dmaengine.c methods as 1st step.
OTOH, these drivers has PIO transfer too. So, if ALSA has PIO method like pcm_pio.c (?) which has similar method, it seems easy to switch over. But what do you think ?
If there are other platforms that also do PIO in a very similar way it might make sense to factor this out.
The reason why we factored out the dmaengine DMA stuff is because there is a standard API that hides the implementation details and is supposed to behave the same for each system. For PIO you do not have such a abstraction layer that hides the details, so I'm not sure how similar PIO between different platforms will actually be.
- Lars