diff mbox

[v3,2/2] ALSA: compress: Pass id string to snd_compress_new

Message ID 1448456424-6794-3-git-send-email-rf@opensource.wolfsonmicro.com (mailing list archive)
State New, archived
Headers show

Commit Message

Richard Fitzgerald Nov. 25, 2015, 1 p.m. UTC
Make snd_compress_new take an id string (like snd_pcm_new).
This string can be included in the procfs info.

This patch also updates soc_new_compress() to create an ID
based on the stream and dai name, as done for PCM streams.

Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
---
 include/sound/compress_driver.h |  2 +-
 sound/core/compress_offload.c   | 13 ++++++++++++-
 sound/soc/soc-compress.c        |  8 +++++++-
 3 files changed, 20 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
index 85c4237..c0abcdc 100644
--- a/include/sound/compress_driver.h
+++ b/include/sound/compress_driver.h
@@ -163,7 +163,7 @@  struct snd_compr {
 int snd_compress_register(struct snd_compr *device);
 int snd_compress_deregister(struct snd_compr *device);
 int snd_compress_new(struct snd_card *card, int device,
-			int type, struct snd_compr *compr);
+			int type, const char *id, struct snd_compr *compr);
 
 /* dsp driver callback apis
  * For playback: driver should call snd_compress_fragment_elapsed() to let the
diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
index 1258e9d..2c52510 100644
--- a/sound/core/compress_offload.c
+++ b/sound/core/compress_offload.c
@@ -945,6 +945,11 @@  static void snd_compress_proc_done(struct snd_compr *compr)
 	snd_info_free_entry(compr->proc_root);
 	compr->proc_root = NULL;
 }
+
+static inline void snd_compress_set_id(struct snd_compr *compr, const char *id)
+{
+	strlcpy(compr->id, id, sizeof(compr->id));
+}
 #else
 static inline int snd_compress_proc_init(struct snd_compr *compr)
 {
@@ -954,6 +959,10 @@  static inline int snd_compress_proc_init(struct snd_compr *compr)
 static inline void snd_compress_proc_done(struct snd_compr *compr)
 {
 }
+
+static inline void snd_compress_set_id(struct snd_compr *compr, const char *id)
+{
+}
 #endif
 
 static int snd_compress_dev_free(struct snd_device *device)
@@ -974,7 +983,7 @@  static int snd_compress_dev_free(struct snd_device *device)
  * @compr: compress device pointer
  */
 int snd_compress_new(struct snd_card *card, int device,
-			int dirn, struct snd_compr *compr)
+			int dirn, const char *id, struct snd_compr *compr)
 {
 	static struct snd_device_ops ops = {
 		.dev_free = snd_compress_dev_free,
@@ -987,6 +996,8 @@  int snd_compress_new(struct snd_card *card, int device,
 	compr->device = device;
 	compr->direction = dirn;
 
+	snd_compress_set_id(compr, id);
+
 	snd_device_initialize(&compr->dev, card);
 	dev_set_name(&compr->dev, "comprC%iD%i", card->number, device);
 
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 12a9820..fffbe6f 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -689,7 +689,13 @@  int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
 		compr->ops->copy = soc_compr_copy;
 
 	mutex_init(&compr->lock);
-	ret = snd_compress_new(rtd->card->snd_card, num, direction, compr);
+
+	snprintf(new_name, sizeof(new_name), "%s %s-%d",
+		 rtd->dai_link->stream_name,
+		 rtd->codec_dai->name, num);
+
+	ret = snd_compress_new(rtd->card->snd_card, num, direction,
+				new_name, compr);
 	if (ret < 0) {
 		pr_err("compress asoc: can't create compress for codec %s\n",
 			codec->component.name);