[alsa-devel] [PATCH] topology: add support to parse private data for pcm

Keyon Jie yang.jie at linux.intel.com
Thu Aug 1 11:15:06 CEST 2019


We have private data section in struct snd_soc_tplg_pcm, but alsatplg
doesn't support handling it yet, here add handling in tplg_parse_pcm()
to enable it.

Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
---
 src/topology/data.c | 3 +++
 src/topology/pcm.c  | 8 ++++++++
 2 files changed, 11 insertions(+)

diff --git a/src/topology/data.c b/src/topology/data.c
index b3f4421f..729ce1f4 100644
--- a/src/topology/data.c
+++ b/src/topology/data.c
@@ -53,6 +53,9 @@ struct snd_soc_tplg_private *get_priv_data(struct tplg_elem *elem)
 	case SND_TPLG_TYPE_BE:
 		priv = &elem->link->priv;
 		break;
+	case SND_TPLG_TYPE_PCM:
+		priv = &elem->pcm->priv;
+		break;
 	default:
 		SNDERR("error: '%s': no support for private data for type %d\n",
 			elem->id, elem->type);
diff --git a/src/topology/pcm.c b/src/topology/pcm.c
index 5f586dc1..c533ee68 100644
--- a/src/topology/pcm.c
+++ b/src/topology/pcm.c
@@ -732,6 +732,14 @@ int tplg_parse_pcm(snd_tplg_t *tplg,
 				return err;
 			continue;
 		}
+
+		/* private data */
+		if (strcmp(id, "data") == 0) {
+			err = tplg_parse_data_refs(n, elem);
+			if (err < 0)
+				return err;
+			continue;
+		}
 	}
 
 	return 0;
-- 
2.20.1



More information about the Alsa-devel mailing list