On Fri, Jun 17, 2016 at 01:31:56PM +0100, Mark Brown wrote:
On Fri, Jun 17, 2016 at 05:45:48PM +0530, Vinod Koul wrote:
On Fri, Jun 17, 2016 at 01:18:10PM +0200, Lars-Peter Clausen wrote:
Why and why is this something that other cards do not need to do?
Other systems do not have a DSP sitting and need to redownload code which takes time and results in card being resumed even when the platform is not ready.
The logs are indicating the snd_soc_resume() is triggered even before the platform resume has returned which needs to be avoided.
One of the ways to ensure a dependency for PM is resolved, we tinker with PM callbacks here to ensure the platform is ready before resume is inoked here
When card suspends, the DAPM suspend closes the widgets, which translates to we sending IPC to DSP for tearing down the pipelines.
So we need the platform to be suspended last and resume first. This way the snd_soc_suspend will tear down pipelines and snd_soc_resume restore those back.
That doesn't answer the question - this applies to any control mechanism.
Thanks