All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx()
@ 2020-11-12  4:36 Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 01/12] ASoC: soc-component: add snd_soc_component_compr_open() Kuninori Morimoto
                   ` (11 more replies)
  0 siblings, 12 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:36 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


Hi Mark

I think component related function should be implemented at
soc-component.c, otherwise it is confusable to read.
These are for it.

Kuninori Morimoto (12):
  ASoC: soc-component: add snd_soc_component_compr_open()
  ASoC: soc-component: add snd_soc_component_compr_free()
  ASoC: soc-component: add snd_soc_component_compr_trigger()
  ASoC: soc-component: add snd_soc_component_compr_set_params()
  ASoC: soc-component: add snd_soc_component_compr_get_params()
  ASoC: soc-component: add snd_soc_component_compr_get_caps()
  ASoC: soc-component: add snd_soc_component_compr_get_codec_caps()
  ASoC: soc-component: add snd_soc_component_compr_ack()
  ASoC: soc-component: add snd_soc_component_compr_pointer()
  ASoC: soc-component: add snd_soc_component_compr_copy()
  ASoC: soc-component: add snd_soc_component_compr_set_metadata()
  ASoC: soc-component: add snd_soc_component_compr_get_metadata()

 include/sound/soc-component.h |  22 +++
 sound/soc/soc-component.c     | 244 ++++++++++++++++++++++++++++++++++
 sound/soc/soc-compress.c      | 223 ++++---------------------------
 3 files changed, 293 insertions(+), 196 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 01/12] ASoC: soc-component: add snd_soc_component_compr_open()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 02/12] ASoC: soc-component: add snd_soc_component_compr_free() Kuninori Morimoto
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch moves soc-compress soc_compr_components_open()
to soc-component as snd_soc_component_compr_open().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 23 +++++++++++++++++++++++
 sound/soc/soc-compress.c      | 31 ++-----------------------------
 3 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index 21f1d120b68e..0d79a0b30aba 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -444,6 +444,8 @@ int snd_soc_component_of_xlate_dai_id(struct snd_soc_component *component,
 int snd_soc_component_of_xlate_dai_name(struct snd_soc_component *component,
 					struct of_phandle_args *args,
 					const char **dai_name);
+int snd_soc_component_compr_open(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,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 6d719c2db92e..a711bee11712 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -421,6 +421,29 @@ EXPORT_SYMBOL_GPL(snd_soc_component_exit_regmap);
 
 #endif
 
+int snd_soc_component_compr_open(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, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->open) {
+			ret = component->driver->compress_ops->open(component, cstream);
+			if (ret < 0) {
+				*last = component;
+				return soc_component_ret(component, ret);
+			}
+		}
+	}
+
+	*last = NULL;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_open);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index c7ad52a21a29..d55ea0db7901 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -22,33 +22,6 @@
 #include <sound/soc-link.h>
 #include <linux/pm_runtime.h>
 
-static int soc_compr_components_open(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, ret;
-
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->open)
-			continue;
-
-		ret = component->driver->compress_ops->open(component, cstream);
-		if (ret < 0) {
-			dev_err(component->dev,
-				"Compress ASoC: can't open platform %s: %d\n",
-				component->name, ret);
-
-			*last = component;
-			return ret;
-		}
-	}
-
-	*last = NULL;
-	return 0;
-}
-
 static int soc_compr_components_free(struct snd_compr_stream *cstream,
 				     struct snd_soc_component *last)
 {
@@ -88,7 +61,7 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
 	if (ret < 0)
 		goto out;
 
-	ret = soc_compr_components_open(cstream, &component);
+	ret = snd_soc_component_compr_open(cstream, &component);
 	if (ret < 0)
 		goto machine_err;
 
@@ -156,7 +129,7 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
 	if (ret < 0)
 		goto out;
 
-	ret = soc_compr_components_open(cstream, &component);
+	ret = snd_soc_component_compr_open(cstream, &component);
 	if (ret < 0)
 		goto open_err;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 02/12] ASoC: soc-component: add snd_soc_component_compr_free()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 01/12] ASoC: soc-component: add snd_soc_component_compr_open() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 03/12] ASoC: soc-component: add snd_soc_component_compr_trigger() Kuninori Morimoto
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch moves soc-compress soc_compr_components_free()
to soc-component as snd_soc_component_compr_free().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 18 ++++++++++++++++++
 sound/soc/soc-compress.c      | 29 ++++-------------------------
 3 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index 0d79a0b30aba..1b2ed4a463b2 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -446,6 +446,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,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index a711bee11712..5dcbdfe411f6 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -444,6 +444,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);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index d55ea0db7901..4517baf0e62c 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -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;
@@ -76,7 +55,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:
@@ -150,7 +129,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:
@@ -182,7 +161,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);
 
@@ -230,7 +209,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);
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 03/12] ASoC: soc-component: add snd_soc_component_compr_trigger()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 01/12] ASoC: soc-component: add snd_soc_component_compr_open() Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 02/12] ASoC: soc-component: add snd_soc_component_compr_free() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 04/12] ASoC: soc-component: add snd_soc_component_compr_set_params() Kuninori Morimoto
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch moves soc-compress soc_compr_components_trigger()
to soc-component as snd_soc_component_compr_trigger().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  1 +
 sound/soc/soc-component.c     | 20 ++++++++++++++++++++
 sound/soc/soc-compress.c      | 27 +++------------------------
 3 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index 1b2ed4a463b2..6cb4a6a0bc39 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -448,6 +448,7 @@ 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_component_compr_trigger(struct snd_compr_stream *cstream, int cmd);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 5dcbdfe411f6..cf34545f4108 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -462,6 +462,26 @@ void snd_soc_component_compr_free(struct snd_compr_stream *cstream,
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_free);
 
+int snd_soc_component_compr_trigger(struct snd_compr_stream *cstream, int cmd)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->trigger) {
+			ret = component->driver->compress_ops->trigger(
+				component, cstream, cmd);
+			if (ret < 0)
+				return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_trigger);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 4517baf0e62c..d85bd1d1c119 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -217,27 +217,6 @@ static int soc_compr_free_fe(struct snd_compr_stream *cstream)
 	return 0;
 }
 
-static int soc_compr_components_trigger(struct snd_compr_stream *cstream,
-					int cmd)
-{
-	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
-	int i, ret;
-
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->trigger)
-			continue;
-
-		ret = component->driver->compress_ops->trigger(
-			component, cstream, cmd);
-		if (ret < 0)
-			return ret;
-	}
-
-	return 0;
-}
-
 static int soc_compr_trigger(struct snd_compr_stream *cstream, int cmd)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
@@ -248,7 +227,7 @@ static int soc_compr_trigger(struct snd_compr_stream *cstream, int cmd)
 
 	mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
 
-	ret = soc_compr_components_trigger(cstream, cmd);
+	ret = snd_soc_component_compr_trigger(cstream, cmd);
 	if (ret < 0)
 		goto out;
 
@@ -279,7 +258,7 @@ static int soc_compr_trigger_fe(struct snd_compr_stream *cstream, int cmd)
 
 	if (cmd == SND_COMPR_TRIGGER_PARTIAL_DRAIN ||
 	    cmd == SND_COMPR_TRIGGER_DRAIN)
-		return soc_compr_components_trigger(cstream, cmd);
+		return snd_soc_component_compr_trigger(cstream, cmd);
 
 	mutex_lock_nested(&fe->card->mutex, SND_SOC_CARD_CLASS_RUNTIME);
 
@@ -287,7 +266,7 @@ static int soc_compr_trigger_fe(struct snd_compr_stream *cstream, int cmd)
 	if (ret < 0)
 		goto out;
 
-	ret = soc_compr_components_trigger(cstream, cmd);
+	ret = snd_soc_component_compr_trigger(cstream, cmd);
 	if (ret < 0)
 		goto out;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 04/12] ASoC: soc-component: add snd_soc_component_compr_set_params()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (2 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 03/12] ASoC: soc-component: add snd_soc_component_compr_trigger() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 05/12] ASoC: soc-component: add snd_soc_component_compr_get_params() Kuninori Morimoto
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch moves soc-compress soc_compr_components_set_params()
to soc-component as snd_soc_component_compr_set_params().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 21 +++++++++++++++++++++
 sound/soc/soc-compress.c      | 25 ++-----------------------
 3 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index 6cb4a6a0bc39..d18a16a0881b 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -449,6 +449,8 @@ int snd_soc_component_compr_open(struct snd_compr_stream *cstream,
 void snd_soc_component_compr_free(struct snd_compr_stream *cstream,
 				  struct snd_soc_component *last);
 int snd_soc_component_compr_trigger(struct snd_compr_stream *cstream, int cmd);
+int snd_soc_component_compr_set_params(struct snd_compr_stream *cstream,
+				       struct snd_compr_params *params);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index cf34545f4108..4afd63223724 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -482,6 +482,27 @@ int snd_soc_component_compr_trigger(struct snd_compr_stream *cstream, int cmd)
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_trigger);
 
+int snd_soc_component_compr_set_params(struct snd_compr_stream *cstream,
+				       struct snd_compr_params *params)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->set_params) {
+			ret = component->driver->compress_ops->set_params(
+				component, cstream, params);
+			if (ret < 0)
+				return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_set_params);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index d85bd1d1c119..437ccd121b99 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -295,27 +295,6 @@ static int soc_compr_trigger_fe(struct snd_compr_stream *cstream, int cmd)
 	return ret;
 }
 
-static int soc_compr_components_set_params(struct snd_compr_stream *cstream,
-					   struct snd_compr_params *params)
-{
-	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
-	int i, ret;
-
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->set_params)
-			continue;
-
-		ret = component->driver->compress_ops->set_params(
-			component, cstream, params);
-		if (ret < 0)
-			return ret;
-	}
-
-	return 0;
-}
-
 static int soc_compr_set_params(struct snd_compr_stream *cstream,
 				struct snd_compr_params *params)
 {
@@ -337,7 +316,7 @@ static int soc_compr_set_params(struct snd_compr_stream *cstream,
 	if (ret < 0)
 		goto err;
 
-	ret = soc_compr_components_set_params(cstream, params);
+	ret = snd_soc_component_compr_set_params(cstream, params);
 	if (ret < 0)
 		goto err;
 
@@ -394,7 +373,7 @@ static int soc_compr_set_params_fe(struct snd_compr_stream *cstream,
 	if (ret < 0)
 		goto out;
 
-	ret = soc_compr_components_set_params(cstream, params);
+	ret = snd_soc_component_compr_set_params(cstream, params);
 	if (ret < 0)
 		goto out;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 05/12] ASoC: soc-component: add snd_soc_component_compr_get_params()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (3 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 04/12] ASoC: soc-component: add snd_soc_component_compr_set_params() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 06/12] ASoC: soc-component: add snd_soc_component_compr_get_caps() Kuninori Morimoto
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch adds snd_soc_component_compr_get_params().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 21 +++++++++++++++++++++
 sound/soc/soc-compress.c      | 14 ++------------
 3 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index d18a16a0881b..6841c3037548 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -451,6 +451,8 @@ void snd_soc_component_compr_free(struct snd_compr_stream *cstream,
 int snd_soc_component_compr_trigger(struct snd_compr_stream *cstream, int cmd);
 int snd_soc_component_compr_set_params(struct snd_compr_stream *cstream,
 				       struct snd_compr_params *params);
+int snd_soc_component_compr_get_params(struct snd_compr_stream *cstream,
+				       struct snd_codec *params);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 4afd63223724..7d2b31948854 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -503,6 +503,27 @@ int snd_soc_component_compr_set_params(struct snd_compr_stream *cstream,
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_set_params);
 
+int snd_soc_component_compr_get_params(struct snd_compr_stream *cstream,
+				       struct snd_codec *params)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->get_params) {
+			ret = component->driver->compress_ops->get_params(
+				component, cstream, params);
+			if (ret < 0)
+				return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_params);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 437ccd121b99..a98defdecad7 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -394,9 +394,8 @@ static int soc_compr_get_params(struct snd_compr_stream *cstream,
 				struct snd_codec *params)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
 	struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
-	int i, ret = 0;
+	int ret = 0;
 
 	mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
 
@@ -404,16 +403,7 @@ static int soc_compr_get_params(struct snd_compr_stream *cstream,
 	if (ret < 0)
 		goto err;
 
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->get_params)
-			continue;
-
-		ret = component->driver->compress_ops->get_params(
-			component, cstream, params);
-		break;
-	}
-
+	ret = snd_soc_component_compr_get_params(cstream, params);
 err:
 	mutex_unlock(&rtd->card->pcm_mutex);
 	return ret;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 06/12] ASoC: soc-component: add snd_soc_component_compr_get_caps()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (4 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 05/12] ASoC: soc-component: add snd_soc_component_compr_get_params() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12 16:42   ` Ranjani Sridharan
  2020-11-12  4:37 ` [PATCH 07/12] ASoC: soc-component: add snd_soc_component_compr_get_codec_caps() Kuninori Morimoto
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch adds snd_soc_component_compr_get_caps().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 21 +++++++++++++++++++++
 sound/soc/soc-compress.c      | 13 ++-----------
 3 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index 6841c3037548..7fd45462963e 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -453,6 +453,8 @@ int snd_soc_component_compr_set_params(struct snd_compr_stream *cstream,
 				       struct snd_compr_params *params);
 int snd_soc_component_compr_get_params(struct snd_compr_stream *cstream,
 				       struct snd_codec *params);
+int snd_soc_component_compr_get_caps(struct snd_compr_stream *cstream,
+				     struct snd_compr_caps *caps);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 7d2b31948854..6f560238e2f9 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -524,6 +524,27 @@ int snd_soc_component_compr_get_params(struct snd_compr_stream *cstream,
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_params);
 
+int snd_soc_component_compr_get_caps(struct snd_compr_stream *cstream,
+				     struct snd_compr_caps *caps)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->get_caps) {
+			ret = component->driver->compress_ops->get_caps(
+				component, cstream, caps);
+			if (ret < 0)
+				return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_caps);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index a98defdecad7..c62aa1a52c28 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -413,20 +413,11 @@ static int soc_compr_get_caps(struct snd_compr_stream *cstream,
 			      struct snd_compr_caps *caps)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
-	int i, ret = 0;
+	int ret;
 
 	mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
 
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->get_caps)
-			continue;
-
-		ret = component->driver->compress_ops->get_caps(
-			component, cstream, caps);
-		break;
-	}
+	ret = snd_soc_component_compr_get_caps(cstream, caps);
 
 	mutex_unlock(&rtd->card->pcm_mutex);
 	return ret;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 07/12] ASoC: soc-component: add snd_soc_component_compr_get_codec_caps()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (5 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 06/12] ASoC: soc-component: add snd_soc_component_compr_get_caps() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12 16:44   ` Ranjani Sridharan
  2020-11-12  4:37 ` [PATCH 08/12] ASoC: soc-component: add snd_soc_component_compr_ack() Kuninori Morimoto
                   ` (4 subsequent siblings)
  11 siblings, 1 reply; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch adds snd_soc_component_compr_get_codec_caps().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 21 +++++++++++++++++++++
 sound/soc/soc-compress.c      | 13 ++-----------
 3 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index 7fd45462963e..d91e0eb1546d 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -455,6 +455,8 @@ int snd_soc_component_compr_get_params(struct snd_compr_stream *cstream,
 				       struct snd_codec *params);
 int snd_soc_component_compr_get_caps(struct snd_compr_stream *cstream,
 				     struct snd_compr_caps *caps);
+int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream *cstream,
+					   struct snd_compr_codec_caps *codec);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 6f560238e2f9..2f1628100208 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -545,6 +545,27 @@ int snd_soc_component_compr_get_caps(struct snd_compr_stream *cstream,
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_caps);
 
+int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream *cstream,
+					   struct snd_compr_codec_caps *codec)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->get_codec_caps) {
+			ret = component->driver->compress_ops->get_codec_caps(
+				component, cstream, codec);
+			if (ret < 0)
+				return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_codec_caps);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index c62aa1a52c28..9d6010fd5160 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -427,20 +427,11 @@ static int soc_compr_get_codec_caps(struct snd_compr_stream *cstream,
 				    struct snd_compr_codec_caps *codec)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
-	int i, ret = 0;
+	int ret;
 
 	mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
 
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->get_codec_caps)
-			continue;
-
-		ret = component->driver->compress_ops->get_codec_caps(
-			component, cstream, codec);
-		break;
-	}
+	ret = snd_soc_component_compr_get_codec_caps(cstream, codec);
 
 	mutex_unlock(&rtd->card->pcm_mutex);
 	return ret;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 08/12] ASoC: soc-component: add snd_soc_component_compr_ack()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (6 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 07/12] ASoC: soc-component: add snd_soc_component_compr_get_codec_caps() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 09/12] ASoC: soc-component: add snd_soc_component_compr_pointer() Kuninori Morimoto
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch adds snd_soc_component_compr_ack().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  1 +
 sound/soc/soc-component.c     | 20 ++++++++++++++++++++
 sound/soc/soc-compress.c      | 15 ++-------------
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index d91e0eb1546d..ba0eb49f8885 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -457,6 +457,7 @@ int snd_soc_component_compr_get_caps(struct snd_compr_stream *cstream,
 				     struct snd_compr_caps *caps);
 int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream *cstream,
 					   struct snd_compr_codec_caps *codec);
+int snd_soc_component_compr_ack(struct snd_compr_stream *cstream, size_t bytes);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 2f1628100208..d968fa3a30d9 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -566,6 +566,26 @@ int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream *cstream,
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_codec_caps);
 
+int snd_soc_component_compr_ack(struct snd_compr_stream *cstream, size_t bytes)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->ack) {
+			ret = component->driver->compress_ops->ack(
+				component, cstream, bytes);
+			if (ret < 0)
+				return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_ack);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 9d6010fd5160..b1169c5aa61f 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -440,9 +440,8 @@ static int soc_compr_get_codec_caps(struct snd_compr_stream *cstream,
 static int soc_compr_ack(struct snd_compr_stream *cstream, size_t bytes)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
 	struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
-	int i, ret = 0;
+	int ret;
 
 	mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
 
@@ -450,17 +449,7 @@ static int soc_compr_ack(struct snd_compr_stream *cstream, size_t bytes)
 	if (ret < 0)
 		goto err;
 
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->ack)
-			continue;
-
-		ret = component->driver->compress_ops->ack(
-			component, cstream, bytes);
-		if (ret < 0)
-			goto err;
-	}
-
+	ret = snd_soc_component_compr_ack(cstream, bytes);
 err:
 	mutex_unlock(&rtd->card->pcm_mutex);
 	return ret;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 09/12] ASoC: soc-component: add snd_soc_component_compr_pointer()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (7 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 08/12] ASoC: soc-component: add snd_soc_component_compr_ack() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 10/12] ASoC: soc-component: add snd_soc_component_compr_copy() Kuninori Morimoto
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch adds snd_soc_component_compr_pointer().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 20 ++++++++++++++++++++
 sound/soc/soc-compress.c      | 13 ++-----------
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index ba0eb49f8885..d4e396cc75c2 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -458,6 +458,8 @@ int snd_soc_component_compr_get_caps(struct snd_compr_stream *cstream,
 int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream *cstream,
 					   struct snd_compr_codec_caps *codec);
 int snd_soc_component_compr_ack(struct snd_compr_stream *cstream, size_t bytes);
+int snd_soc_component_compr_pointer(struct snd_compr_stream *cstream,
+				    struct snd_compr_tstamp *tstamp);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index d968fa3a30d9..ed9c6bbce3fc 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -586,6 +586,26 @@ int snd_soc_component_compr_ack(struct snd_compr_stream *cstream, size_t bytes)
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_ack);
 
+int snd_soc_component_compr_pointer(struct snd_compr_stream *cstream,
+				    struct snd_compr_tstamp *tstamp)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->pointer) {
+			ret = component->driver->compress_ops->pointer(
+				component, cstream, tstamp);
+			return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_pointer);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index b1169c5aa61f..f7046dd0bb08 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -459,8 +459,7 @@ static int soc_compr_pointer(struct snd_compr_stream *cstream,
 			     struct snd_compr_tstamp *tstamp)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
-	int i, ret = 0;
+	int ret;
 	struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
 
 	mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
@@ -469,15 +468,7 @@ static int soc_compr_pointer(struct snd_compr_stream *cstream,
 	if (ret < 0)
 		goto out;
 
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->pointer)
-			continue;
-
-		ret = component->driver->compress_ops->pointer(
-			component, cstream, tstamp);
-		break;
-	}
+	ret = snd_soc_component_compr_pointer(cstream, tstamp);
 out:
 	mutex_unlock(&rtd->card->pcm_mutex);
 	return ret;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 10/12] ASoC: soc-component: add snd_soc_component_compr_copy()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (8 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 09/12] ASoC: soc-component: add snd_soc_component_compr_pointer() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 11/12] ASoC: soc-component: add snd_soc_component_compr_set_metadata() Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 12/12] ASoC: soc-component: add snd_soc_component_compr_get_metadata() Kuninori Morimoto
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch adds snd_soc_component_compr_copy().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 20 ++++++++++++++++++++
 sound/soc/soc-compress.c      | 13 ++-----------
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index d4e396cc75c2..535f22502e1e 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -460,6 +460,8 @@ int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream *cstream,
 int snd_soc_component_compr_ack(struct snd_compr_stream *cstream, size_t bytes);
 int snd_soc_component_compr_pointer(struct snd_compr_stream *cstream,
 				    struct snd_compr_tstamp *tstamp);
+int snd_soc_component_compr_copy(struct snd_compr_stream *cstream,
+				 char __user *buf, size_t count);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index ed9c6bbce3fc..7890295953ea 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -606,6 +606,26 @@ int snd_soc_component_compr_pointer(struct snd_compr_stream *cstream,
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_pointer);
 
+int snd_soc_component_compr_copy(struct snd_compr_stream *cstream,
+				 char __user *buf, size_t count)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->copy) {
+			ret = component->driver->compress_ops->copy(
+				component, cstream, buf, count);
+			return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_copy);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index f7046dd0bb08..b9324fa855ff 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -478,20 +478,11 @@ static int soc_compr_copy(struct snd_compr_stream *cstream,
 			  char __user *buf, size_t count)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
-	int i, ret = 0;
+	int ret;
 
 	mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
 
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->copy)
-			continue;
-
-		ret = component->driver->compress_ops->copy(
-			component, cstream, buf, count);
-		break;
-	}
+	ret = snd_soc_component_compr_copy(cstream, buf, count);
 
 	mutex_unlock(&rtd->card->pcm_mutex);
 	return ret;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 11/12] ASoC: soc-component: add snd_soc_component_compr_set_metadata()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (9 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 10/12] ASoC: soc-component: add snd_soc_component_compr_copy() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  2020-11-12  4:37 ` [PATCH 12/12] ASoC: soc-component: add snd_soc_component_compr_get_metadata() Kuninori Morimoto
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch adds snd_soc_component_compr_set_metadata().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 21 +++++++++++++++++++++
 sound/soc/soc-compress.c      | 16 ++--------------
 3 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index 535f22502e1e..d23ebd5ce617 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -462,6 +462,8 @@ int snd_soc_component_compr_pointer(struct snd_compr_stream *cstream,
 				    struct snd_compr_tstamp *tstamp);
 int snd_soc_component_compr_copy(struct snd_compr_stream *cstream,
 				 char __user *buf, size_t count);
+int snd_soc_component_compr_set_metadata(struct snd_compr_stream *cstream,
+					 struct snd_compr_metadata *metadata);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 7890295953ea..b7d37f945991 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -626,6 +626,27 @@ int snd_soc_component_compr_copy(struct snd_compr_stream *cstream,
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_copy);
 
+int snd_soc_component_compr_set_metadata(struct snd_compr_stream *cstream,
+					 struct snd_compr_metadata *metadata)
+{
+	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+	struct snd_soc_component *component;
+	int i, ret;
+
+	for_each_rtd_components(rtd, i, component) {
+		if (component->driver->compress_ops &&
+		    component->driver->compress_ops->set_metadata) {
+			ret = component->driver->compress_ops->set_metadata(
+				component, cstream, metadata);
+			if (ret < 0)
+				return soc_component_ret(component, ret);
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_set_metadata);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index b9324fa855ff..1599c25d1f37 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -492,26 +492,14 @@ static int soc_compr_set_metadata(struct snd_compr_stream *cstream,
 				  struct snd_compr_metadata *metadata)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
 	struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
-	int i, ret;
+	int ret;
 
 	ret = snd_soc_dai_compr_set_metadata(cpu_dai, cstream, metadata);
 	if (ret < 0)
 		return ret;
 
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->set_metadata)
-			continue;
-
-		ret = component->driver->compress_ops->set_metadata(
-			component, cstream, metadata);
-		if (ret < 0)
-			return ret;
-	}
-
-	return 0;
+	return snd_soc_component_compr_set_metadata(cstream, metadata);
 }
 
 static int soc_compr_get_metadata(struct snd_compr_stream *cstream,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 12/12] ASoC: soc-component: add snd_soc_component_compr_get_metadata()
  2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
                   ` (10 preceding siblings ...)
  2020-11-12  4:37 ` [PATCH 11/12] ASoC: soc-component: add snd_soc_component_compr_set_metadata() Kuninori Morimoto
@ 2020-11-12  4:37 ` Kuninori Morimoto
  11 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12  4:37 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

component related function should be implemented at
soc-component.c.
This patch adds snd_soc_component_compr_get_metadata().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-component.h |  2 ++
 sound/soc/soc-component.c     | 18 ++++++++++++++++++
 sound/soc/soc-compress.c      | 14 ++------------
 3 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index d23ebd5ce617..984dd7353066 100644
--- a/include/sound/soc-component.h
+++ b/include/sound/soc-component.h
@@ -464,6 +464,8 @@ int snd_soc_component_compr_copy(struct snd_compr_stream *cstream,
 				 char __user *buf, size_t count);
 int snd_soc_component_compr_set_metadata(struct snd_compr_stream *cstream,
 					 struct snd_compr_metadata *metadata);
+int snd_soc_component_compr_get_metadata(struct snd_compr_stream *cstream,
+					 struct snd_compr_metadata *metadata);
 
 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
 int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index b7d37f945991..d327912ad07b 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -647,6 +647,24 @@ int snd_soc_component_compr_set_metadata(struct snd_compr_stream *cstream,
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_compr_set_metadata);
 
+int snd_soc_component_compr_get_metadata(struct snd_compr_stream *cstream,
+					 struct snd_compr_metadata *metadata)
+{
+	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->driver->compress_ops &&
+		    component->driver->compress_ops->get_metadata)
+			return component->driver->compress_ops->get_metadata(
+				component, cstream, metadata);
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_metadata);
+
 static unsigned int soc_component_read_no_lock(
 	struct snd_soc_component *component,
 	unsigned int reg)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 1599c25d1f37..ba1f65403719 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -506,24 +506,14 @@ static int soc_compr_get_metadata(struct snd_compr_stream *cstream,
 				  struct snd_compr_metadata *metadata)
 {
 	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
-	struct snd_soc_component *component;
 	struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
-	int i, ret;
+	int ret;
 
 	ret = snd_soc_dai_compr_get_metadata(cpu_dai, cstream, metadata);
 	if (ret < 0)
 		return ret;
 
-	for_each_rtd_components(rtd, i, component) {
-		if (!component->driver->compress_ops ||
-		    !component->driver->compress_ops->get_metadata)
-			continue;
-
-		return component->driver->compress_ops->get_metadata(
-			component, cstream, metadata);
-	}
-
-	return 0;
+	return snd_soc_component_compr_get_metadata(cstream, metadata);
 }
 
 /* ASoC Compress operations */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 06/12] ASoC: soc-component: add snd_soc_component_compr_get_caps()
  2020-11-12  4:37 ` [PATCH 06/12] ASoC: soc-component: add snd_soc_component_compr_get_caps() Kuninori Morimoto
@ 2020-11-12 16:42   ` Ranjani Sridharan
  2020-11-12 23:55     ` Kuninori Morimoto
  0 siblings, 1 reply; 16+ messages in thread
From: Ranjani Sridharan @ 2020-11-12 16:42 UTC (permalink / raw)
  To: Kuninori Morimoto, Mark Brown; +Cc: Linux-ALSA

On Thu, 2020-11-12 at 13:37 +0900, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> 
> component related function should be implemented at
> soc-component.c.
> This patch adds snd_soc_component_compr_get_caps().
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>  include/sound/soc-component.h |  2 ++
>  sound/soc/soc-component.c     | 21 +++++++++++++++++++++
>  sound/soc/soc-compress.c      | 13 ++-----------
>  3 files changed, 25 insertions(+), 11 deletions(-)
> 
> diff --git a/include/sound/soc-component.h b/include/sound/soc-
> component.h
> index 6841c3037548..7fd45462963e 100644
> --- a/include/sound/soc-component.h
> +++ b/include/sound/soc-component.h
> @@ -453,6 +453,8 @@ int snd_soc_component_compr_set_params(struct
> snd_compr_stream *cstream,
>  				       struct snd_compr_params
> *params);
>  int snd_soc_component_compr_get_params(struct snd_compr_stream
> *cstream,
>  				       struct snd_codec *params);
> +int snd_soc_component_compr_get_caps(struct snd_compr_stream
> *cstream,
> +				     struct snd_compr_caps *caps);
>  
>  int snd_soc_pcm_component_pointer(struct snd_pcm_substream
> *substream);
>  int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
> diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
> index 7d2b31948854..6f560238e2f9 100644
> --- a/sound/soc/soc-component.c
> +++ b/sound/soc/soc-component.c
> @@ -524,6 +524,27 @@ int snd_soc_component_compr_get_params(struct
> snd_compr_stream *cstream,
>  }
>  EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_params);
>  
> +int snd_soc_component_compr_get_caps(struct snd_compr_stream
> *cstream,
> +				     struct snd_compr_caps *caps)
> +{
> +	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
> +	struct snd_soc_component *component;
> +	int i, ret;
> +
> +	for_each_rtd_components(rtd, i, component) {
> +		if (component->driver->compress_ops &&
> +		    component->driver->compress_ops->get_caps) {
> +			ret = component->driver->compress_ops-
> >get_caps(
> +				component, cstream, caps);
> +			if (ret < 0)
> +				return soc_component_ret(component,
> ret);
> +		}
> +	}
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_caps);
> +
>  static unsigned int soc_component_read_no_lock(
>  	struct snd_soc_component *component,
>  	unsigned int reg)
> diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
> index a98defdecad7..c62aa1a52c28 100644
> --- a/sound/soc/soc-compress.c
> +++ b/sound/soc/soc-compress.c
> @@ -413,20 +413,11 @@ static int soc_compr_get_caps(struct
> snd_compr_stream *cstream,
>  			      struct snd_compr_caps *caps)
>  {
>  	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
> -	struct snd_soc_component *component;
> -	int i, ret = 0;
> +	int ret;
>  
>  	mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card-
> >pcm_subclass);
>  
> -	for_each_rtd_components(rtd, i, component) {
> -		if (!component->driver->compress_ops ||
> -		    !component->driver->compress_ops->get_caps)
> -			continue;
> -
> -		ret = component->driver->compress_ops->get_caps(
> -			component, cstream, caps);
> -		break;
> -	}
> +	ret = snd_soc_component_compr_get_caps(cstream, caps);
Morimoto-san,

Do you think it makes sense to remove soc_compr_get_caps() altogether
after adding snd_soc_component_cpmpr_get_caps() and calling it directly
instead?

Thanks,
Ranjani


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 07/12] ASoC: soc-component: add snd_soc_component_compr_get_codec_caps()
  2020-11-12  4:37 ` [PATCH 07/12] ASoC: soc-component: add snd_soc_component_compr_get_codec_caps() Kuninori Morimoto
@ 2020-11-12 16:44   ` Ranjani Sridharan
  0 siblings, 0 replies; 16+ messages in thread
From: Ranjani Sridharan @ 2020-11-12 16:44 UTC (permalink / raw)
  To: Kuninori Morimoto, Mark Brown; +Cc: Linux-ALSA

On Thu, 2020-11-12 at 13:37 +0900, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> 
> component related function should be implemented at
> soc-component.c.
> This patch adds snd_soc_component_compr_get_codec_caps().
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>  include/sound/soc-component.h |  2 ++
>  sound/soc/soc-component.c     | 21 +++++++++++++++++++++
>  sound/soc/soc-compress.c      | 13 ++-----------
>  3 files changed, 25 insertions(+), 11 deletions(-)
> 
> diff --git a/include/sound/soc-component.h b/include/sound/soc-
> component.h
> index 7fd45462963e..d91e0eb1546d 100644
> --- a/include/sound/soc-component.h
> +++ b/include/sound/soc-component.h
> @@ -455,6 +455,8 @@ int snd_soc_component_compr_get_params(struct
> snd_compr_stream *cstream,
>  				       struct snd_codec *params);
>  int snd_soc_component_compr_get_caps(struct snd_compr_stream
> *cstream,
>  				     struct snd_compr_caps *caps);
> +int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream
> *cstream,
> +					   struct snd_compr_codec_caps
> *codec);
>  
>  int snd_soc_pcm_component_pointer(struct snd_pcm_substream
> *substream);
>  int snd_soc_pcm_component_ioctl(struct snd_pcm_substream *substream,
> diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
> index 6f560238e2f9..2f1628100208 100644
> --- a/sound/soc/soc-component.c
> +++ b/sound/soc/soc-component.c
> @@ -545,6 +545,27 @@ int snd_soc_component_compr_get_caps(struct
> snd_compr_stream *cstream,
>  }
>  EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_caps);
>  
> +int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream
> *cstream,
> +					   struct snd_compr_codec_caps
> *codec)
> +{
> +	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
> +	struct snd_soc_component *component;
> +	int i, ret;
> +
> +	for_each_rtd_components(rtd, i, component) {
> +		if (component->driver->compress_ops &&
> +		    component->driver->compress_ops->get_codec_caps) {
> +			ret = component->driver->compress_ops-
> >get_codec_caps(
> +				component, cstream, codec);
> +			if (ret < 0)
> +				return soc_component_ret(component,
> ret);
> +		}
> +	}
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(snd_soc_component_compr_get_codec_caps);
same comment for get_codec_caps() as well. We can maybe use this
directly instead of soc_compr_get_codec_caps()?

Thanks,Ranjani


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 06/12] ASoC: soc-component: add snd_soc_component_compr_get_caps()
  2020-11-12 16:42   ` Ranjani Sridharan
@ 2020-11-12 23:55     ` Kuninori Morimoto
  0 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-11-12 23:55 UTC (permalink / raw)
  To: Ranjani Sridharan; +Cc: Linux-ALSA, Mark Brown


Hi Ranjani

Thank you for your feedback

> > From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > 
> > component related function should be implemented at
> > soc-component.c.
> > This patch adds snd_soc_component_compr_get_caps().
> > 
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > ---
> Do you think it makes sense to remove soc_compr_get_caps() altogether
> after adding snd_soc_component_cpmpr_get_caps() and calling it directly
> instead?

Yes indeed !
Thanks. I will do it in v2.
Same comment for [07/12], too.

Thank you for your help !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-11-12 23:56 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-12  4:36 [PATCH 00/12] ASoC: soc-component: add snd_soc_component_xxx() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 01/12] ASoC: soc-component: add snd_soc_component_compr_open() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 02/12] ASoC: soc-component: add snd_soc_component_compr_free() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 03/12] ASoC: soc-component: add snd_soc_component_compr_trigger() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 04/12] ASoC: soc-component: add snd_soc_component_compr_set_params() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 05/12] ASoC: soc-component: add snd_soc_component_compr_get_params() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 06/12] ASoC: soc-component: add snd_soc_component_compr_get_caps() Kuninori Morimoto
2020-11-12 16:42   ` Ranjani Sridharan
2020-11-12 23:55     ` Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 07/12] ASoC: soc-component: add snd_soc_component_compr_get_codec_caps() Kuninori Morimoto
2020-11-12 16:44   ` Ranjani Sridharan
2020-11-12  4:37 ` [PATCH 08/12] ASoC: soc-component: add snd_soc_component_compr_ack() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 09/12] ASoC: soc-component: add snd_soc_component_compr_pointer() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 10/12] ASoC: soc-component: add snd_soc_component_compr_copy() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 11/12] ASoC: soc-component: add snd_soc_component_compr_set_metadata() Kuninori Morimoto
2020-11-12  4:37 ` [PATCH 12/12] ASoC: soc-component: add snd_soc_component_compr_get_metadata() Kuninori Morimoto

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.