[alsa-devel] [PATCH 1/1] ASoC: soc_compress: Add set_metadata
Richard Fitzgerald
rf at opensource.wolfsonmicro.com
Mon Nov 25 11:16:48 CET 2013
Pass the set_metadata() calls through to the codec driver.
Signed-off-by: Zhao Weijia <weijia.zhao at capelabs.com>
Signed-off-by: Richard Fitzgerald <rf at opensource.wolfsonmicro.com>
---
sound/soc/soc-compress.c | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 53c9ecd..186802b 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -318,6 +318,21 @@ static int soc_compr_pointer(struct snd_compr_stream *cstream,
mutex_unlock(&rtd->pcm_mutex);
return 0;
}
+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_platform *platform = rtd->platform;
+
+ mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass);
+
+ if (platform->driver->compr_ops && platform->driver->compr_ops->set_metadata)
+ platform->driver->compr_ops->set_metadata(cstream, metadata);
+
+ mutex_unlock(&rtd->pcm_mutex);
+ return 0;
+}
+
static int soc_compr_copy(struct snd_compr_stream *cstream,
char __user *buf, size_t count)
@@ -372,7 +387,8 @@ static struct snd_compr_ops soc_compr_ops = {
.pointer = soc_compr_pointer,
.ack = soc_compr_ack,
.get_caps = soc_compr_get_caps,
- .get_codec_caps = soc_compr_get_codec_caps
+ .get_codec_caps = soc_compr_get_codec_caps,
+ .set_metadata = soc_compr_set_metadata,
};
/* create a new compress */
--
1.7.2.5
More information about the Alsa-devel
mailing list