Merge remote-tracking branch 'h8300/h8300-next'
[deliverable/linux.git] / include / uapi / sound / asoc.h
index c4cc1e40b35c1343595d716b6b5b5e7d894226ce..e4701a3c633187c25a832580eb0af5fe70f2ade4 100644 (file)
 #define SND_SOC_TPLG_STREAM_PLAYBACK   0
 #define SND_SOC_TPLG_STREAM_CAPTURE    1
 
+/* vendor tuple types */
+#define SND_SOC_TPLG_TUPLE_TYPE_UUID   0
+#define SND_SOC_TPLG_TUPLE_TYPE_STRING 1
+#define SND_SOC_TPLG_TUPLE_TYPE_BOOL   2
+#define SND_SOC_TPLG_TUPLE_TYPE_BYTE   3
+#define SND_SOC_TPLG_TUPLE_TYPE_WORD   4
+#define SND_SOC_TPLG_TUPLE_TYPE_SHORT  5
+
 /*
  * Block Header.
  * This header precedes all object and object arrays below.
@@ -132,6 +140,35 @@ struct snd_soc_tplg_hdr {
        __le32 count;           /* number of elements in block */
 } __attribute__((packed));
 
+/* vendor tuple for uuid */
+struct snd_soc_tplg_vendor_uuid_elem {
+       __le32 token;
+       char uuid[16];
+} __attribute__((packed));
+
+/* vendor tuple for a bool/byte/short/word value */
+struct snd_soc_tplg_vendor_value_elem {
+       __le32 token;
+       __le32 value;
+} __attribute__((packed));
+
+/* vendor tuple for string */
+struct snd_soc_tplg_vendor_string_elem {
+       __le32 token;
+       char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
+} __attribute__((packed));
+
+struct snd_soc_tplg_vendor_array {
+       __le32 size;    /* size in bytes of the array, including all elements */
+       __le32 type;    /* SND_SOC_TPLG_TUPLE_TYPE_ */
+       __le32 num_elems;       /* number of elements in array */
+       union {
+               struct snd_soc_tplg_vendor_uuid_elem uuid[0];
+               struct snd_soc_tplg_vendor_value_elem value[0];
+               struct snd_soc_tplg_vendor_string_elem string[0];
+       };
+} __attribute__((packed));
+
 /*
  * Private data.
  * All topology objects may have private data that can be used by the driver or
@@ -139,7 +176,10 @@ struct snd_soc_tplg_hdr {
  */
 struct snd_soc_tplg_private {
        __le32 size;    /* in bytes of private data */
-       char data[0];
+       union {
+               char data[0];
+               struct snd_soc_tplg_vendor_array array[0];
+       };
 } __attribute__((packed));
 
 /*
@@ -383,7 +423,7 @@ struct snd_soc_tplg_pcm {
        __le32 size;            /* in bytes of this structure */
        char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
        char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-       __le32 pcm_id;          /* unique ID - used to match */
+       __le32 pcm_id;          /* unique ID - used to match with DAI link */
        __le32 dai_id;          /* unique ID - used to match */
        __le32 playback;        /* supports playback mode */
        __le32 capture;         /* supports capture mode */
This page took 0.024886 seconds and 5 git commands to generate.