ASoC: SOF: topology: do not power down primary core during topology removal
When removing the topology components, do not power down
the primary core. Doing so will result in an IPC timeout
when the SOF PCI device runtime suspends.
Fixes: 0dcdf84289
("ASoC: SOF: add a "core" parameter to widget loading functions")
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20211006104041.27183-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
dc1fad25bb
commit
ec626334ea
|
@ -2514,6 +2514,15 @@ static int sof_widget_unload(struct snd_soc_component *scomp,
|
|||
|
||||
/* power down the pipeline schedule core */
|
||||
pipeline = swidget->private;
|
||||
|
||||
/*
|
||||
* Runtime PM should still function normally if topology loading fails and
|
||||
* it's components are unloaded. Do not power down the primary core so that the
|
||||
* CTX_SAVE IPC can succeed during runtime suspend.
|
||||
*/
|
||||
if (pipeline->core == SOF_DSP_PRIMARY_CORE)
|
||||
break;
|
||||
|
||||
ret = snd_sof_dsp_core_power_down(sdev, 1 << pipeline->core);
|
||||
if (ret < 0)
|
||||
dev_err(scomp->dev, "error: powering down pipeline schedule core %d\n",
|
||||
|
|
Loading…
Reference in New Issue