Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ASoC: SOF: HDA: power down all DSP cores at suspend and remove
Although the snd_sof_dsp_core_power_up/down will actually take effect on the host managed DSP cores on Intel platforms, they are actually designed for all DSP cores, and the enabled_cores_mask will update the mask of those non host managed cores also. In either hda_suspend() or hda_dsp_remove(), we should make sure all DSP cores are power off and the enabled_cores_mask is reset to 0, so we should call snd_sof_dsp_core_power_down() with mask of all cores, not only the host_managed_cores_mask one. Otherwise, those non host managed cores (e.g. core 1 on TigerLake) will be preserved as 'enabled' in the enabled_cores_mask, in case those DSP cores are 'ON' before _suspend() or_remove(). This misalignment will lead to failure when we try to set up widgets or pipelines which rely on those cores after resumed, as no _CORE_ENABLE IPC will be sent in sof_core_enable() with enabled_cores_mask already cover it. Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
- Loading branch information