usleep_range(50, 100);
        } while (time_before(jiffies, end));
 
-       dev_err(&scu->dev, "IPC timed out");
        return -ETIMEDOUT;
 }
 
 {
        int status;
 
-       if (!wait_for_completion_timeout(&scu->cmd_complete, IPC_TIMEOUT)) {
-               dev_err(&scu->dev, "IPC timed out\n");
+       if (!wait_for_completion_timeout(&scu->cmd_complete, IPC_TIMEOUT))
                return -ETIMEDOUT;
-       }
 
        status = ipc_read_status(scu);
        if (status & IPC_STATUS_ERR)
 int intel_scu_ipc_simple_command(int cmd, int sub)
 {
        struct intel_scu_ipc_dev *scu;
+       u32 cmdval;
        int err;
 
        mutex_lock(&ipclock);
                return -ENODEV;
        }
        scu = ipcdev;
-       ipc_command(scu, sub << 12 | cmd);
+       cmdval = sub << 12 | cmd;
+       ipc_command(scu, cmdval);
        err = intel_scu_ipc_check_status(scu);
        mutex_unlock(&ipclock);
+       if (err)
+               dev_err(&scu->dev, "IPC command %#x failed with %d\n", cmdval, err);
        return err;
 }
 EXPORT_SYMBOL(intel_scu_ipc_simple_command);
                          u32 *out, int outlen)
 {
        struct intel_scu_ipc_dev *scu;
+       u32 cmdval;
        int i, err;
 
        mutex_lock(&ipclock);
        for (i = 0; i < inlen; i++)
                ipc_data_writel(scu, *in++, 4 * i);
 
-       ipc_command(scu, (inlen << 16) | (sub << 12) | cmd);
+       cmdval = (inlen << 16) | (sub << 12) | cmd;
+       ipc_command(scu, cmdval);
        err = intel_scu_ipc_check_status(scu);
 
        if (!err) {
        }
 
        mutex_unlock(&ipclock);
+       if (err)
+               dev_err(&scu->dev, "IPC command %#x failed with %d\n", cmdval, err);
        return err;
 }
 EXPORT_SYMBOL(intel_scu_ipc_command);