ASoC: SOF: ipc: Re-enable dumps after successful IPC tx
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Wed, 6 Oct 2021 11:06:38 +0000 (14:06 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 7 Oct 2021 14:45:34 +0000 (15:45 +0100)
The dumps are silenced after an IPC tx timeout by default.
The IPC timeout can indicate severe error (firmware crash) or in some cases
it is less devastating and the firmware remains operational, the timeout
was due to a scheduling spike or other anomaly.

In any case consequent IPC timeouts will not print dumps but if any IPC do
succeed than we should re-enable the dumps to print dumps the next time
a timeout might happen.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20211006110645.26679-13-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc.c

index 53593df951559faf658dab67a877fb1c18e38473..5c698fa662f4316d1916e4f24f104c29de985d36 100644 (file)
@@ -267,6 +267,12 @@ static int tx_wait_done(struct snd_sof_ipc *ipc, struct snd_sof_ipc_msg *msg,
                                memcpy(reply_data, msg->reply_data,
                                       msg->reply_size);
                }
+
+               /* re-enable dumps after successful IPC tx */
+               if (sdev->ipc_dump_printed) {
+                       sdev->dbg_dump_printed = false;
+                       sdev->ipc_dump_printed = false;
+               }
        }
 
        return ret;