On Mon, 2020-12-14 at 19:28 +0000, Daniel Baluta wrote:
Hi Ranjani,
I have few questions about PM flow in SOF.
- Firmware is always loaded at SOF device probe.
Why is that? Is this just an early check that DSP is OK? Because after SND_SOF_SUSPEND_DELAY_MS the SOF device is suspended and DSP is turned off.
Hi Daniel,
The SOF device probe executes a bunch of actions at boot which include probing the DSP, loading and booting the FW followed by registering the machine driver. If we dont load the FW at boot, it would prevent cras/pulseaudio from probing for available PCM devices. And yes, this also helps check if the FW/topology are compatible and fail early if not.
- What is the correct behavior when immediately after boot
there is a PM suspend/PM resume cycle.
Here is what happens on IMX.
PM suspend -> will do nothing because DSP is already suspended PM resume -> will reload the firmware.
But now the firmware is loaded and DSP is up. And the system stays like this.
How does this looks like on Intel platforms.
On Intel PCI devices, if the device is runtime suspended, it will be brought back tp full power before getting suspended again during system suspend. This is the default expected behaviour for all PCI devices (not just the SOF PCI device). And therefore, system resume will also resume the device before getting runtime suspended again after the suspend delay.
On the IMX, I'd think that if you dont perform any actions during system suspend (because the device was runtime suspended), you shouldnt perform any actions during system resume either. IIRC, you can indicate you want to skip system suspend/resume if the device is runtime suspended by returning 1 during prepare(). Maybe something to try for IMX platforms?
Thanks, Ranjani