|
@@ -2160,6 +2160,9 @@ static void skd_send_fitmsg(struct skd_device *skdev,
|
|
*/
|
|
*/
|
|
qcmd |= FIT_QCMD_MSGSIZE_64;
|
|
qcmd |= FIT_QCMD_MSGSIZE_64;
|
|
|
|
|
|
|
|
+ /* Make sure skd_msg_buf is written before the doorbell is triggered. */
|
|
|
|
+ smp_wmb();
|
|
|
|
+
|
|
SKD_WRITEQ(skdev, qcmd, FIT_Q_COMMAND);
|
|
SKD_WRITEQ(skdev, qcmd, FIT_Q_COMMAND);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2202,6 +2205,9 @@ static void skd_send_special_fitmsg(struct skd_device *skdev,
|
|
qcmd = skspcl->mb_dma_address;
|
|
qcmd = skspcl->mb_dma_address;
|
|
qcmd |= FIT_QCMD_QID_NORMAL + FIT_QCMD_MSGSIZE_128;
|
|
qcmd |= FIT_QCMD_QID_NORMAL + FIT_QCMD_MSGSIZE_128;
|
|
|
|
|
|
|
|
+ /* Make sure skd_msg_buf is written before the doorbell is triggered. */
|
|
|
|
+ smp_wmb();
|
|
|
|
+
|
|
SKD_WRITEQ(skdev, qcmd, FIT_Q_COMMAND);
|
|
SKD_WRITEQ(skdev, qcmd, FIT_Q_COMMAND);
|
|
}
|
|
}
|
|
|
|
|