ASoC: SOF: ops: Use dev_warn() if the panic offsets differ
Catch the cases when the stored sdev->dsp_oops_offset and the offset received via the panic message differs and print a warning, but keep using the dsp_oops_offset for the oops query. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@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/20211223113628.18582-2-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
37daf8d9e0
commit
72b8ed83f7
|
@ -144,18 +144,23 @@ EXPORT_SYMBOL(snd_sof_dsp_update_bits_forced);
|
|||
|
||||
void snd_sof_dsp_panic(struct snd_sof_dev *sdev, u32 offset)
|
||||
{
|
||||
dev_err(sdev->dev, "error : DSP panic!\n");
|
||||
|
||||
/*
|
||||
* check if DSP is not ready and did not set the dsp_oops_offset.
|
||||
* if the dsp_oops_offset is not set, set it from the panic message.
|
||||
* Also add a check to memory window setting with panic message.
|
||||
* if DSP is not ready and the dsp_oops_offset is not yet set, use the
|
||||
* offset from the panic message.
|
||||
*/
|
||||
if (!sdev->dsp_oops_offset)
|
||||
sdev->dsp_oops_offset = offset;
|
||||
else
|
||||
dev_dbg(sdev->dev, "panic: dsp_oops_offset %zu offset %d\n",
|
||||
sdev->dsp_oops_offset, offset);
|
||||
|
||||
/*
|
||||
* Print warning if the offset from the panic message differs from
|
||||
* dsp_oops_offset
|
||||
*/
|
||||
if (sdev->dsp_oops_offset != offset)
|
||||
dev_warn(sdev->dev,
|
||||
"%s: dsp_oops_offset %zu differs from panic offset %u\n",
|
||||
__func__, sdev->dsp_oops_offset, offset);
|
||||
|
||||
dev_err(sdev->dev, "DSP panic!\n");
|
||||
|
||||
/* We want to see the DSP panic! */
|
||||
sdev->dbg_dump_printed = false;
|
||||
|
|
Loading…
Reference in New Issue