These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / sound / soc / intel / baytrail / sst-baytrail-ipc.c
index a839dbf..5bbaa66 100644 (file)
@@ -679,6 +679,14 @@ static u64 byt_reply_msg_match(u64 header, u64 *mask)
        return header;
 }
 
+static bool byt_is_dsp_busy(struct sst_dsp *dsp)
+{
+       u64 ipcx;
+
+       ipcx = sst_dsp_shim_read_unlocked(dsp, SST_IPCX);
+       return (ipcx & (SST_IPCX_BUSY | SST_IPCX_DONE));
+}
+
 int sst_byt_dsp_init(struct device *dev, struct sst_pdata *pdata)
 {
        struct sst_byt *byt;
@@ -693,12 +701,17 @@ int sst_byt_dsp_init(struct device *dev, struct sst_pdata *pdata)
        if (byt == NULL)
                return -ENOMEM;
 
+       byt->dev = dev;
+
        ipc = &byt->ipc;
        ipc->dev = dev;
        ipc->ops.tx_msg = byt_tx_msg;
        ipc->ops.shim_dbg = byt_shim_dbg;
        ipc->ops.tx_data_copy = byt_tx_data_copy;
        ipc->ops.reply_msg_match = byt_reply_msg_match;
+       ipc->ops.is_dsp_busy = byt_is_dsp_busy;
+       ipc->tx_data_max_size = IPC_MAX_MAILBOX_BYTES;
+       ipc->rx_data_max_size = IPC_MAX_MAILBOX_BYTES;
 
        err = sst_ipc_init(ipc);
        if (err != 0)