ASoC: topology: Improve backwards compatibility with v4 topology files
[linux-2.6-block.git] / sound / soc / intel / skylake / skl-tplg-interface.h
index f8d1749a2e0c89df8b1a95fd8b6729623ba8b8a1..b0e3d376594cb99a300e83ac73d325d4fdf0a578 100644 (file)
@@ -169,4 +169,78 @@ enum skl_tuple_type {
        SKL_TYPE_DATA
 };
 
+/* v4 configuration data */
+
+struct skl_dfw_v4_module_pin {
+       u16 module_id;
+       u16 instance_id;
+} __packed;
+
+struct skl_dfw_v4_module_fmt {
+       u32 channels;
+       u32 freq;
+       u32 bit_depth;
+       u32 valid_bit_depth;
+       u32 ch_cfg;
+       u32 interleaving_style;
+       u32 sample_type;
+       u32 ch_map;
+} __packed;
+
+struct skl_dfw_v4_module_caps {
+       u32 set_params:2;
+       u32 rsvd:30;
+       u32 param_id;
+       u32 caps_size;
+       u32 caps[HDA_SST_CFG_MAX];
+} __packed;
+
+struct skl_dfw_v4_pipe {
+       u8 pipe_id;
+       u8 pipe_priority;
+       u16 conn_type:4;
+       u16 rsvd:4;
+       u16 memory_pages:8;
+} __packed;
+
+struct skl_dfw_v4_module {
+       char uuid[SKL_UUID_STR_SZ];
+
+       u16 module_id;
+       u16 instance_id;
+       u32 max_mcps;
+       u32 mem_pages;
+       u32 obs;
+       u32 ibs;
+       u32 vbus_id;
+
+       u32 max_in_queue:8;
+       u32 max_out_queue:8;
+       u32 time_slot:8;
+       u32 core_id:4;
+       u32 rsvd1:4;
+
+       u32 module_type:8;
+       u32 conn_type:4;
+       u32 dev_type:4;
+       u32 hw_conn_type:4;
+       u32 rsvd2:12;
+
+       u32 params_fixup:8;
+       u32 converter:8;
+       u32 input_pin_type:1;
+       u32 output_pin_type:1;
+       u32 is_dynamic_in_pin:1;
+       u32 is_dynamic_out_pin:1;
+       u32 is_loadable:1;
+       u32 rsvd3:11;
+
+       struct skl_dfw_v4_pipe pipe;
+       struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE];
+       struct skl_dfw_v4_module_fmt out_fmt[MAX_OUT_QUEUE];
+       struct skl_dfw_v4_module_pin in_pin[MAX_IN_QUEUE];
+       struct skl_dfw_v4_module_pin out_pin[MAX_OUT_QUEUE];
+       struct skl_dfw_v4_module_caps caps;
+} __packed;
+
 #endif