Commit 01f202c7 authored by Liam Girdwood's avatar Liam Girdwood Committed by Mark Brown

ASoC: Intel: fix broadwell module removing failed issue

In haswell-pcm module unloading, we can't free runtime modules
directly, for they may be already freed in runtime suspend.

Here add executing suspend call to unload runtime modules, only
for status not equal to RPM_SUSPEND, to fix broadwell module
removing failed issue.
Signed-off-by: default avatarLiam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: default avatarJie Yang <yang.jie@intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 506c148e
...@@ -1103,8 +1103,10 @@ static int hsw_pcm_remove(struct snd_soc_platform *platform) ...@@ -1103,8 +1103,10 @@ static int hsw_pcm_remove(struct snd_soc_platform *platform)
snd_soc_platform_get_drvdata(platform); snd_soc_platform_get_drvdata(platform);
int i; int i;
/* execute a suspend call to unload all FW resources */
if (!pm_runtime_status_suspended(platform->dev))
pm_runtime_put_sync_suspend(platform->dev);
pm_runtime_disable(platform->dev); pm_runtime_disable(platform->dev);
hsw_pcm_free_modules(priv_data);
for (i = 0; i < ARRAY_SIZE(hsw_dais); i++) { for (i = 0; i < ARRAY_SIZE(hsw_dais); i++) {
if (hsw_dais[i].playback.channels_min) if (hsw_dais[i].playback.channels_min)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment