Skip to content

Commit e2aef33

Browse files
ranj063ujfalusi
authored andcommitted
ASoC: SOF: ipc3-topology: Fix multi-core and static pipelines tear down
In the case of static pipelines, freeing the widgets in the pipelines that were not suspended after freeing the scheduler widgets results in errors because the secondary cores are powered off when the scheduler widgets are freed. Fix this by tearing down the leftover pipelines before powering off the secondary cores. Fixes: d7332c4 ("ASoC: SOF: ipc3-topology: Fix pipeline tear down logic") Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
1 parent 9c9d463 commit e2aef33

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

sound/soc/sof/ipc3-topology.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2473,11 +2473,6 @@ static int sof_ipc3_tear_down_all_pipelines(struct snd_sof_dev *sdev, bool verif
24732473
if (ret < 0)
24742474
return ret;
24752475

2476-
/* free all the scheduler widgets now */
2477-
ret = sof_ipc3_free_widgets_in_list(sdev, true, &dyn_widgets, verify);
2478-
if (ret < 0)
2479-
return ret;
2480-
24812476
/*
24822477
* Tear down all pipelines associated with PCMs that did not get suspended
24832478
* and unset the prepare flag so that they can be set up again during resume.
@@ -2493,6 +2488,11 @@ static int sof_ipc3_tear_down_all_pipelines(struct snd_sof_dev *sdev, bool verif
24932488
}
24942489
}
24952490

2491+
/* free all the scheduler widgets now. This will also power down the secondary cores */
2492+
ret = sof_ipc3_free_widgets_in_list(sdev, true, &dyn_widgets, verify);
2493+
if (ret < 0)
2494+
return ret;
2495+
24962496
list_for_each_entry(sroute, &sdev->route_list, list)
24972497
sroute->setup = false;
24982498

0 commit comments

Comments
 (0)