On Fri, 2020-04-17 at 14:06 +0900, Kuninori Morimoto wrote:
From: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
We can use snd_compress_ops. Let's switch to use it.
Upstream code doesn't have sof_compressed_ops. This patch assume it is implemented at out-of-tree.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
sound/soc/sof/compress.c | 34 +++++++++++++++++++++------------- sound/soc/sof/compress.h | 34 +++++++++++++++++++++------------- sound/soc/sof/pcm.c | 4 ++-- sound/soc/sof/sof-priv.h | 2 +- 4 files changed, 45 insertions(+), 29 deletions(-)
diff --git a/sound/soc/sof/compress.c b/sound/soc/sof/compress.c index 7354dc6a49cf..52a1d7ed97a5 100644 --- a/sound/soc/sof/compress.c +++ b/sound/soc/sof/compress.c @@ -13,13 +13,14 @@ #include "ops.h" #include "probe.h"
-struct snd_compr_ops sof_probe_compressed_ops = { +struct snd_compress_ops sof_probe_compressed_ops = { .copy = sof_probe_compr_copy, }; EXPORT_SYMBOL(sof_probe_compressed_ops);
Morimoto-san,
This change is correct based on your new snd_compress_ops. And the only change we need is for the copy op in sof_probe_compressed_ops.
-int sof_probe_compr_open(struct snd_compr_stream *cstream,
struct snd_soc_dai *dai)
+int sof_probe_compr_open(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
struct snd_soc_dai *dai)
But this one seems incorrect? This op (and the ones below except for copy) is actually the startup op in struct snd_soc_cdai_ops.
{ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(dai-
component);
@@ -36,8 +37,9 @@ int sof_probe_compr_open(struct snd_compr_stream *cstream, } EXPORT_SYMBOL(sof_probe_compr_open);
-int sof_probe_compr_free(struct snd_compr_stream *cstream,
struct snd_soc_dai *dai)
+int sof_probe_compr_free(struct snd_soc_component *componsnd_soc_cdai_opsent,
struct snd_compr_stream *cstream,
struct snd_soc_dai *dai)
ditto
{ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(dai-
component);
@@ -68,8 +70,10 @@ int sof_probe_compr_free(struct snd_compr_stream *cstream, } EXPORT_SYMBOL(sof_probe_compr_free);
-int sof_probe_compr_set_params(struct snd_compr_stream *cstream,
struct snd_compr_params *params, struct snd_soc_dai
*dai) +int sof_probe_compr_set_params(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
struct snd_compr_params *params,
struct snd_soc_dai *dai)
ditto
{
struct snd_compr_runtime *rtd = cstream->runtime; struct snd_sof_dev *sdev = @@ -97,8 +101,9 @@ int sof_probe_compr_set_params(struct snd_compr_stream *cstream, } EXPORT_SYMBOL(sof_probe_compr_set_params);
-int sof_probe_compr_trigger(struct snd_compr_stream *cstream, int cmd,
struct snd_soc_dai *dai)
+int sof_probe_compr_trigger(struct snd_soc_component *component,
struct snd_compr_stream *cstream, int cmd,
struct snd_soc_dai *dai)
ditto
{ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(dai-
component);
@@ -107,8 +112,10 @@ int sof_probe_compr_trigger(struct snd_compr_stream *cstream, int cmd, } EXPORT_SYMBOL(sof_probe_compr_trigger);
-int sof_probe_compr_pointer(struct snd_compr_stream *cstream,
struct snd_compr_tstamp *tstamp, struct snd_soc_dai
*dai) +int sof_probe_compr_pointer(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
struct snd_compr_tstamp *tstamp,
struct snd_soc_dai *dai)
ditto
{ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(dai-
component);
@@ -117,8 +124,9 @@ int sof_probe_compr_pointer(struct snd_compr_stream *cstream, } EXPORT_SYMBOL(sof_probe_compr_pointer);
-int sof_probe_compr_copy(struct snd_compr_stream *cstream,
char __user *buf, size_t count)
+int sof_probe_compr_copy(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
char __user *buf, size_t count)
This one is correct.
{ struct snd_compr_runtime *rtd = cstream->runtime; unsigned int offset, n; diff --git a/sound/soc/sof/compress.h b/sound/soc/sof/compress.h index 800f163603e1..afc7ab9bc3c9 100644 --- a/sound/soc/sof/compress.h +++ b/sound/soc/sof/compress.h @@ -13,19 +13,27 @@
#include <sound/compress_driver.h>
-extern struct snd_compr_ops sof_probe_compressed_ops; +extern struct snd_compress_ops sof_probe_compressed_ops;
-int sof_probe_compr_open(struct snd_compr_stream *cstream,
struct snd_soc_dai *dai);
-int sof_probe_compr_free(struct snd_compr_stream *cstream,
struct snd_soc_dai *dai);
-int sof_probe_compr_set_params(struct snd_compr_stream *cstream,
struct snd_compr_params *params, struct snd_soc_dai
*dai); -int sof_probe_compr_trigger(struct snd_compr_stream *cstream, int cmd,
struct snd_soc_dai *dai);
-int sof_probe_compr_pointer(struct snd_compr_stream *cstream,
struct snd_compr_tstamp *tstamp, struct snd_soc_dai
*dai); -int sof_probe_compr_copy(struct snd_compr_stream *cstream,
char __user *buf, size_t count);
+int sof_probe_compr_open(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
struct snd_soc_dai *dai);
+int sof_probe_compr_free(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
struct snd_soc_dai *dai);
+int sof_probe_compr_set_params(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
struct snd_compr_params *params,
struct snd_soc_dai *dai);
+int sof_probe_compr_trigger(struct snd_soc_component *component,
struct snd_compr_stream *cstream, int cmd,
struct snd_soc_dai *dai);
+int sof_probe_compr_pointer(struct snd_soc_component *component,
struct snd_compr_stream *cstream,
struct snd_compr_tstamp *tstamp,
struct snd_soc_dai *dai);
All of the above are part of struct snd_soc_cdai_ops.
Thanks, Ranjani