* [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.