From: Mengdong Lin mengdong.lin@linux.intel.com
Add link name, stream name, CPU and codec components info, for topology to create new backend or codec-codec links in the future.
Signed-off-by: Mengdong Lin mengdong.lin@linux.intel.com
diff --git a/include/uapi/sound/asoc.h b/include/uapi/sound/asoc.h index c75ed4f..812a70b 100644 --- a/include/uapi/sound/asoc.h +++ b/include/uapi/sound/asoc.h @@ -39,6 +39,9 @@ */ #define SND_SOC_TPLG_STREAM_CONFIG_MAX 8
+/* maximum number of codecs for a BE/CC link */ +#define SND_SOC_TPLG_LINK_CODECS_MAX 4 + /* individual kcontrol info types - can be mixed with other types */ #define SND_SOC_TPLG_CTL_VOLSW 1 #define SND_SOC_TPLG_CTL_VOLSW_SX 2 @@ -465,6 +468,15 @@ struct snd_soc_tplg_pcm {
/* + * Component for backend links. + */ +struct snd_soc_tplg_link_cmpnt { + __le32 size; /* in bytes of this structure */ + char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* component name, optional */ + char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; +} __attribute__((packed)); + +/* * Describes the BE or CC link runtime supported configs or params * * File block representation for BE/CC link config :- @@ -476,9 +488,16 @@ struct snd_soc_tplg_pcm { */ struct snd_soc_tplg_link_config { __le32 size; /* in bytes of this structure */ - __le32 id; /* unique ID - used to match */ + __le32 id; /* unique ID - used to match with DAI link */ struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* supported configs playback and captrure */ __le32 num_streams; /* number of streams */ + + char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* link name */ + char stream_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* stream name */ + + struct snd_soc_tplg_link_cmpnt cpu; /* cpu component */ + struct snd_soc_tplg_link_cmpnt codecs[SND_SOC_TPLG_LINK_CODECS_MAX]; /* codec components */ + __le32 num_codecs; /* number of codecs */ } __attribute__((packed));
/*