[PATCH 07/24] ASoC: soc-component: add snd_soc_pcm_component_hw_free()
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Mon Jun 1 03:36:23 CEST 2020
From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
We have 2 type of component functions
snd_soc_component_xxx() is focusing to component itself,
snd_soc_pcm_component_xxx() is focusing to rtd related component.
Now we can update snd_soc_component_hw_free() to
snd_soc_pcm_component_hw_free(). This patch do it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
---
include/sound/soc-component.h | 4 ++--
sound/soc/soc-component.c | 30 +++++++++++++++++++-----------
sound/soc/soc-pcm.c | 23 ++---------------------
3 files changed, 23 insertions(+), 34 deletions(-)
diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index a2898bdd0a3c..d2f62d529559 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -426,8 +426,6 @@ int snd_soc_component_open(struct snd_soc_component *component,
struct snd_pcm_substream *substream);
int snd_soc_component_close(struct snd_soc_component *component,
struct snd_pcm_substream *substream);
-int snd_soc_component_hw_free(struct snd_soc_component *component,
- struct snd_pcm_substream *substream);
int snd_soc_component_trigger(struct snd_soc_component *component,
struct snd_pcm_substream *substream,
int cmd);
@@ -459,5 +457,7 @@ int snd_soc_pcm_component_prepare(struct snd_pcm_substream *substream);
int snd_soc_pcm_component_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_component **last);
+void snd_soc_pcm_component_hw_free(struct snd_pcm_substream *substream,
+ struct snd_soc_component *last);
#endif /* __SOC_COMPONENT_H */
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 56341968fe6d..380f6459b5cb 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -275,17 +275,6 @@ int snd_soc_component_close(struct snd_soc_component *component,
return soc_component_ret(component, ret);
}
-int snd_soc_component_hw_free(struct snd_soc_component *component,
- struct snd_pcm_substream *substream)
-{
- int ret = 0;
-
- if (component->driver->hw_free)
- ret = component->driver->hw_free(component, substream);
-
- return soc_component_ret(component, ret);
-}
-
int snd_soc_component_trigger(struct snd_soc_component *component,
struct snd_pcm_substream *substream,
int cmd)
@@ -585,3 +574,22 @@ int snd_soc_pcm_component_hw_params(struct snd_pcm_substream *substream,
*last = NULL;
return 0;
}
+
+void snd_soc_pcm_component_hw_free(struct snd_pcm_substream *substream,
+ struct snd_soc_component *last)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ struct snd_soc_component *component;
+ int i, ret;
+
+ for_each_rtd_components(rtd, i, component) {
+ if (component == last)
+ break;
+
+ if (component->driver->hw_free) {
+ ret = component->driver->hw_free(component, substream);
+ if (ret < 0)
+ soc_component_ret(component, ret);
+ }
+ }
+}
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 38d4a340cd7e..3df620dd80be 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -901,25 +901,6 @@ static void soc_pcm_codec_params_fixup(struct snd_pcm_hw_params *params,
interval->max = channels;
}
-static int soc_pcm_components_hw_free(struct snd_pcm_substream *substream,
- struct snd_soc_component *last)
-{
- struct snd_soc_pcm_runtime *rtd = substream->private_data;
- struct snd_soc_component *component;
- int i, r, ret = 0;
-
- for_each_rtd_components(rtd, i, component) {
- if (component == last)
- break;
-
- r = snd_soc_component_hw_free(component, substream);
- if (r < 0)
- ret = r; /* use last ret */
- }
-
- return ret;
-}
-
/*
* Called by ALSA when the hardware params are set by application. This
* function can also be called multiple times and can allocate buffers
@@ -1021,7 +1002,7 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream,
return ret;
component_err:
- soc_pcm_components_hw_free(substream, component);
+ snd_soc_pcm_component_hw_free(substream, component);
i = rtd->num_cpus;
@@ -1080,7 +1061,7 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
snd_soc_link_hw_free(substream);
/* free any component resources */
- soc_pcm_components_hw_free(substream, NULL);
+ snd_soc_pcm_component_hw_free(substream, NULL);
/* now free hw params for the DAIs */
for_each_rtd_dais(rtd, i, dai) {
--
2.17.1
More information about the Alsa-devel
mailing list