@@ -438,6 +438,8 @@ int snd_soc_component_of_xlate_dai_name(struct snd_soc_component *component,
const char **dai_name);
int snd_soc_component_compr_open(struct snd_compr_stream *cstream,
struct snd_soc_component **last);
+void snd_soc_component_compr_free(struct snd_compr_stream *cstream,
+ struct snd_soc_component *last);
int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
@@ -407,6 +407,24 @@ int snd_soc_component_compr_open(struct snd_compr_stream *cstream,
}
EXPORT_SYMBOL_GPL(snd_soc_component_compr_open);
+void snd_soc_component_compr_free(struct snd_compr_stream *cstream,
+ struct snd_soc_component *last)
+{
+ struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+ struct snd_soc_component *component;
+ int i;
+
+ for_each_rtd_components(rtd, i, component) {
+ if (component == last)
+ break;
+
+ if (component->driver->compress_ops &&
+ component->driver->compress_ops->free)
+ component->driver->compress_ops->free(component, cstream);
+ }
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_free);
+
int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream)
{
struct snd_soc_pcm_runtime *rtd = substream->private_data;
@@ -22,27 +22,6 @@
#include <sound/soc-link.h>
#include <linux/pm_runtime.h>
-static int soc_compr_components_free(struct snd_compr_stream *cstream,
- struct snd_soc_component *last)
-{
- struct snd_soc_pcm_runtime *rtd = cstream->private_data;
- struct snd_soc_component *component;
- int i;
-
- for_each_rtd_components(rtd, i, component) {
- if (component == last)
- break;
-
- if (!component->driver->compress_ops ||
- !component->driver->compress_ops->free)
- continue;
-
- component->driver->compress_ops->free(component, cstream);
- }
-
- return 0;
-}
-
static int soc_compr_open(struct snd_compr_stream *cstream)
{
struct snd_soc_pcm_runtime *rtd = cstream->private_data;
@@ -80,7 +59,7 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
return 0;
machine_err:
- soc_compr_components_free(cstream, component);
+ snd_soc_component_compr_free(cstream, component);
snd_soc_dai_compr_shutdown(cpu_dai, cstream);
out:
@@ -164,7 +143,7 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
return 0;
machine_err:
- soc_compr_components_free(cstream, component);
+ snd_soc_component_compr_free(cstream, component);
open_err:
snd_soc_dai_compr_shutdown(cpu_dai, cstream);
out:
@@ -202,7 +181,7 @@ static int soc_compr_free(struct snd_compr_stream *cstream)
snd_soc_link_compr_shutdown(cstream);
- soc_compr_components_free(cstream, NULL);
+ snd_soc_component_compr_free(cstream, NULL);
snd_soc_dai_compr_shutdown(cpu_dai, cstream);
@@ -257,7 +236,7 @@ static int soc_compr_free_fe(struct snd_compr_stream *cstream)
snd_soc_link_compr_shutdown(cstream);
- soc_compr_components_free(cstream, NULL);
+ snd_soc_component_compr_free(cstream, NULL);
snd_soc_dai_compr_shutdown(cpu_dai, cstream);