summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuneshwor Singh <guneshwor.o.singh@intel.com>2016-11-16 14:42:25 +0800
committerTakashi Iwai <tiwai@suse.de>2016-11-22 07:50:25 +0100
commit50c77cdc7f63ce754374b39fbc3bd1e1ef9b2a03 (patch)
tree0a726c29703a6e54b042a2aaf7b0deef9533ad3e
parent527c8a1b19dd5f956f4489f7bfd75aa954260145 (diff)
downloadalsa-lib-50c77cdc7f63ce754374b39fbc3bd1e1ef9b2a03.tar.gz
topology: ABI - Define new types for physical DAI
Define the type and ABI struct for physical DAIs (e.g. backend DAIs). They are new to ABI and so no backward compatibility risk. Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com> Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--include/sound/asoc.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/include/sound/asoc.h b/include/sound/asoc.h
index e14843b5..1232f1e2 100644
--- a/include/sound/asoc.h
+++ b/include/sound/asoc.h
@@ -102,7 +102,8 @@
#define SND_SOC_TPLG_TYPE_CODEC_LINK 9
#define SND_SOC_TPLG_TYPE_BACKEND_LINK 10
#define SND_SOC_TPLG_TYPE_PDATA 11
-#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_PDATA
+#define SND_SOC_TPLG_TYPE_DAI 12
+#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_DAI
/* vendor block IDs - please add new vendor types to end */
#define SND_SOC_TPLG_TYPE_VENDOR_FW 1000
@@ -121,6 +122,11 @@
#define SND_SOC_TPLG_TUPLE_TYPE_WORD 4
#define SND_SOC_TPLG_TUPLE_TYPE_SHORT 5
+/* DAI flags */
+#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0)
+#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
+#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
+
/* DAI physical PCM data formats.
* Add new formats to the end of the list.
*/
@@ -510,4 +516,27 @@ struct snd_soc_tplg_link_config {
__le32 flags; /* SND_SOC_TPLG_LNK_FLGBIT_* flag value */
struct snd_soc_tplg_private priv;
} __attribute__((packed));
+
+/*
+ * Describes SW/FW specific features of physical DAI.
+ * It can be used to configure backend DAIs for DPCM.
+ *
+ * File block representation for physical DAI :-
+ * +-----------------------------------+-----+
+ * | struct snd_soc_tplg_hdr | 1 |
+ * +-----------------------------------+-----+
+ * | struct snd_soc_tplg_dai | N |
+ * +-----------------------------------+-----+
+ */
+struct snd_soc_tplg_dai {
+ __le32 size; /* in bytes of this structure */
+ char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* name - used to match */
+ __le32 dai_id; /* unique ID - used to match */
+ __le32 playback; /* supports playback mode */
+ __le32 capture; /* supports capture mode */
+ struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
+ __le32 flag_mask; /* bitmask of flags to configure */
+ __le32 flags; /* SND_SOC_TPLG_DAI_FLGBIT_* */
+ struct snd_soc_tplg_private priv;
+} __attribute__((packed));
#endif