On 3/31/2011 2:42 PM, Mark Brown wrote:
On Thu, Mar 31, 2011 at 10:35:22PM +0100, Liam Girdwood wrote:
It should be possible to add support for the _E() macros in soc-dsp.c, but I'm not sure why it's required atm since we dont need this for OMAP4 ABE.
Not sure why Patrick might need it but some of the DSPs I've seen require a multiple write sequence to kick them into doing things - for example, set the state up then do another write to tell it to apply the new configuration.
The reason is that PCM stream, which is presented as front-end, is run-time instantiated in DSP. Routing command to DSP cannot happen until PCM stream is available. So for multiple streams to same back-end case, activation of back-end can trigger routing of first PCM stream. However, for 2nd stream, backend is already active. So, routing of 2nd PCM stream would have to be triggered by activation of front-end.
As I stated before, I can have front-end CPU DAI driver trigger as workaround. However, it seems like DAPM framework would be the best place to provide the hook. It's better to keep the routing logic localized in platform driver in my opinion
Thanks Patrick