On Mon, Feb 24, 2020 at 07:22:25PM -0600, Pierre-Louis Bossart wrote:
you'll see that the intent was to
- start the cpu_dai
- open the platform driver to e.g handle DMAs
- start the codec_dai.
The second step is not really needed for Intel but might be needed on others where the DMA is centrally handled (Omap, etc).
My concern is that we've modified the order to deal with module dependencies, without necessarily taking into account that DMA setup part
That said I don't understand the initial sequence for soc_pcm_close() so I am not advocating for a revert, but more a clarification of what those component open/close steps are supposed to do.
It's possible we're going to shake some issues out here but the ordering has always been a bit arbitrary, especially the CPU vs CODEC ordering. We're basically hoping that the ordering we've picked is the one that causes fewest glitches and upsets on the broad range of hardware. My expectation/hope is that for most hardware the flow control between the DAI and the DMA controller (which has to be there anyway) will mean that it mostly doesn't matter, if there's anything that is too sensitive to it we can always revert and try something else.