KVM: x86: SVM: fix nested PAUSE filtering when L0 intercepts PAUSE
[linux-2.6-microblaze.git] / include / sound / sof.h
index 7cdfc95..1a82a0d 100644 (file)
@@ -16,6 +16,7 @@
 #include <sound/soc-acpi.h>
 
 struct snd_sof_dsp_ops;
+struct snd_sof_dev;
 
 /**
  * enum sof_fw_state - DSP firmware state definitions
@@ -47,6 +48,13 @@ enum sof_dsp_power_states {
        SOF_DSP_PM_D3,
 };
 
+/* Definitions for multiple IPCs */
+enum sof_ipc_type {
+       SOF_IPC,
+       SOF_INTEL_IPC4,
+       SOF_IPC_TYPE_COUNT
+};
+
 /*
  * SOF Platform data.
  */
@@ -83,6 +91,8 @@ struct snd_sof_pdata {
        const struct snd_soc_acpi_mach *machine;
 
        void *hw_pdata;
+
+       enum sof_ipc_type ipc_type;
 };
 
 /*
@@ -115,14 +125,19 @@ struct sof_dev_desc {
        /* defaults for no codec mode */
        const char *nocodec_tplg_filename;
 
+       /* information on supported IPCs */
+       unsigned int ipc_supported_mask;
+       enum sof_ipc_type ipc_default;
+
        /* defaults paths for firmware and topology files */
-       const char *default_fw_path;
-       const char *default_tplg_path;
+       const char *default_fw_path[SOF_IPC_TYPE_COUNT];
+       const char *default_tplg_path[SOF_IPC_TYPE_COUNT];
 
        /* default firmware name */
-       const char *default_fw_filename;
+       const char *default_fw_filename[SOF_IPC_TYPE_COUNT];
 
-       const struct snd_sof_dsp_ops *ops;
+       struct snd_sof_dsp_ops *ops;
+       int (*ops_init)(struct snd_sof_dev *sdev);
 };
 
 int sof_dai_get_mclk(struct snd_soc_pcm_runtime *rtd);