@@ -138,12 +138,28 @@ struct ssth_window {
size_t w1_size;
};
+struct ssth_dsp_loader_ops {
+ int (*init)(struct device *dev);
+ int (*prepare)(struct device *dev, unsigned int format,
+ unsigned int byte_size,
+ struct snd_dma_buffer *bufp);
+ void (*trigger)(struct device *dev, bool start);
+
+ void (*cleanup)(struct device *dev,
+ struct snd_dma_buffer *dmab);
+ int (*alloc_dma_buf)(struct device *dev,
+ struct snd_dma_buffer *dmab, u32 size);
+ int (*free_dma_buf)(struct device *dev,
+ struct snd_dma_buffer *dmab);
+};
+
struct ssth_lib {
struct device *dev;
struct ssth_ipc *ipc;
void __iomem *mmio_base;
struct ssth_window window;
int irq;
+ struct ssth_dsp_loader_ops dsp_ops;
struct snd_dma_buffer dsp_fw_buf;
int sst_state;
struct mutex sst_lock;