Skip to content

Commit 7379cae

Browse files
ranj063plbossart
authored andcommitted
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: 0dcdf84 ("ASoC: SOF: add a "core" parameter to widget loading functions") Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
1 parent bfcad93 commit 7379cae

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

sound/soc/sof/topology.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2514,6 +2514,15 @@ static int sof_widget_unload(struct snd_soc_component *scomp,
25142514

25152515
/* power down the pipeline schedule core */
25162516
pipeline = swidget->private;
2517+
2518+
/*
2519+
* Runtime PM should still function normally if topology loading fails and
2520+
* it's components are unloaded. Do not power down the primary core so that the
2521+
* CTX_SAVE IPC can succeed during runtime suspend.
2522+
*/
2523+
if (pipeline->core == SOF_DSP_PRIMARY_CORE)
2524+
break;
2525+
25172526
ret = snd_sof_dsp_core_power_down(sdev, 1 << pipeline->core);
25182527
if (ret < 0)
25192528
dev_err(scomp->dev, "error: powering down pipeline schedule core %d\n",

0 commit comments

Comments
 (0)