[PATCH 1/1] ASoC: soc_compress: Add set_metadata

From: Richard Fitzgerald
Date: Mon Nov 25 2013 - 05:17:00 EST



Pass the set_metadata() calls through to the codec driver.

Signed-off-by: Zhao Weijia <weijia.zhao@xxxxxxxxxxxx>
Signed-off-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
---
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/