@@ -22,5 +22,7 @@ int snd_soc_link_trigger(struct snd_pcm_substream *substream, int cmd);
int snd_soc_link_compr_startup(struct snd_soc_pcm_runtime *rtd,
struct snd_compr_stream *cstream);
+void snd_soc_link_compr_shutdown(struct snd_soc_pcm_runtime *rtd,
+ struct snd_compr_stream *cstream);
#endif /* __SOC_LINK_H */
@@ -226,8 +226,7 @@ static int soc_compr_free(struct snd_compr_stream *cstream)
if (!snd_soc_dai_active(codec_dai))
codec_dai->rate = 0;
- if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops->shutdown)
- rtd->dai_link->compr_ops->shutdown(cstream);
+ snd_soc_link_compr_shutdown(rtd, cstream);
soc_compr_components_free(cstream, NULL);
@@ -282,8 +281,7 @@ static int soc_compr_free_fe(struct snd_compr_stream *cstream)
fe->dpcm[stream].runtime = NULL;
- if (fe->dai_link->compr_ops && fe->dai_link->compr_ops->shutdown)
- fe->dai_link->compr_ops->shutdown(cstream);
+ snd_soc_link_compr_shutdown(fe, cstream);
soc_compr_components_free(cstream, NULL);
@@ -125,3 +125,12 @@ int snd_soc_link_compr_startup(struct snd_soc_pcm_runtime *rtd,
return soc_link_ret(rtd, ret);
}
EXPORT_SYMBOL_GPL(snd_soc_link_compr_startup);
+
+void snd_soc_link_compr_shutdown(struct snd_soc_pcm_runtime *rtd,
+ struct snd_compr_stream *cstream)
+{
+ if (rtd->dai_link->compr_ops &&
+ rtd->dai_link->compr_ops->shutdown)
+ rtd->dai_link->compr_ops->shutdown(cstream);
+}
+EXPORT_SYMBOL_GPL(snd_soc_link_compr_shutdown);