On Thu, 29 Jan 2015, Lars-Peter Clausen wrote:
Curious though, wouldn't it be more natural to bind it all together in the simple-audio-card DT entry, having a "simple-audio-card,platform" specification? Or is the idea that normally the CPU DAI driver is fairly tightly coupled to the PCM driver so it makes more sense to make that connection in the code?
...
I'm not necessarily saying it would be better with a platform description in the DT, all things considered, just trying to understand why it may not be.
If you can make a compelling case that it should be added and that it describes the hardware that you have accurately I shouldn't be a problem to add it.
But in my opinion and experience the model where you have platform, CPU DAI, CODEC DAI is antiquated and does not match the modern hardware very well. We've started to restructure the ASoC framework to better accommodate the requirements of modern systems. And I'm hoping that once this restructuring is complete there will be no need for snd_soc_platform anymore.
Well, your experience definitely greatly outweighes mine for sure. At this stage I'm mostly trying to get my head around why things are the way they are.
My experience so far has basically been with a single SoC. It does fit the platform - CPU DAI - CODEC DAI paradigm quite well though, as there is one PCM = platform driver to handle the DMA, an on-chip I2S DAI, and an off-chip codec. In what way do 'modern systems' differ?
One thing I could imagine is that if the DMA driver is implemented in the kernel DMA framework as a DMA engine, then a single generic platform driver will be able to handle multiple 'platforms' which would eventually make the concept obsolete. But I don't if that is the issue here.
/Ricard