diff --git a/sound/soc/intel/haswell/sst-haswell-pcm.c b/sound/soc/intel/haswell/sst-haswell-pcm.c index 225c04c38e42352a015005074548693583dfe46b..1557e37abe19e5b998a20cad4eafa61f20d48ff2 100644 --- a/sound/soc/intel/haswell/sst-haswell-pcm.c +++ b/sound/soc/intel/haswell/sst-haswell-pcm.c @@ -1103,8 +1103,10 @@ static int hsw_pcm_remove(struct snd_soc_platform *platform) snd_soc_platform_get_drvdata(platform); 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); - hsw_pcm_free_modules(priv_data); for (i = 0; i < ARRAY_SIZE(hsw_dais); i++) { if (hsw_dais[i].playback.channels_min)