mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 18:26:39 +07:00
ASoC: SOF: Intel: Add context data to any IPC timeout.
Helps with FW debug as it provides DSP IPC processing context. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20190927200538.660-13-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
f567ff6c76
commit
3a9e204d4e
@ -241,7 +241,7 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
|
|||||||
struct sof_ipc_dsp_oops_xtensa xoops;
|
struct sof_ipc_dsp_oops_xtensa xoops;
|
||||||
struct sof_ipc_panic_info panic_info;
|
struct sof_ipc_panic_info panic_info;
|
||||||
u32 stack[BDW_STACK_DUMP_SIZE];
|
u32 stack[BDW_STACK_DUMP_SIZE];
|
||||||
u32 status, panic;
|
u32 status, panic, imrx, imrd;
|
||||||
|
|
||||||
/* now try generic SOF status messages */
|
/* now try generic SOF status messages */
|
||||||
status = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IPCD);
|
status = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IPCD);
|
||||||
@ -250,6 +250,26 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
|
|||||||
BDW_STACK_DUMP_SIZE);
|
BDW_STACK_DUMP_SIZE);
|
||||||
snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
|
snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
|
||||||
BDW_STACK_DUMP_SIZE);
|
BDW_STACK_DUMP_SIZE);
|
||||||
|
|
||||||
|
/* provide some context for firmware debug */
|
||||||
|
imrx = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IMRX);
|
||||||
|
imrd = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IMRD);
|
||||||
|
dev_err(sdev->dev,
|
||||||
|
"error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
|
||||||
|
panic & SHIM_IPCX_BUSY ? "yes" : "no",
|
||||||
|
panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
|
||||||
|
dev_err(sdev->dev,
|
||||||
|
"error: mask host: pending %s complete %s raw 0x%8.8x\n",
|
||||||
|
imrx & SHIM_IMRX_BUSY ? "yes" : "no",
|
||||||
|
imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
|
||||||
|
dev_err(sdev->dev,
|
||||||
|
"error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
|
||||||
|
status & SHIM_IPCD_BUSY ? "yes" : "no",
|
||||||
|
status & SHIM_IPCD_DONE ? "yes" : "no", status);
|
||||||
|
dev_err(sdev->dev,
|
||||||
|
"error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
|
||||||
|
imrd & SHIM_IMRD_BUSY ? "yes" : "no",
|
||||||
|
imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -139,7 +139,7 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
|
|||||||
struct sof_ipc_dsp_oops_xtensa xoops;
|
struct sof_ipc_dsp_oops_xtensa xoops;
|
||||||
struct sof_ipc_panic_info panic_info;
|
struct sof_ipc_panic_info panic_info;
|
||||||
u32 stack[BYT_STACK_DUMP_SIZE];
|
u32 stack[BYT_STACK_DUMP_SIZE];
|
||||||
u32 status, panic;
|
u32 status, panic, imrd, imrx;
|
||||||
|
|
||||||
/* now try generic SOF status messages */
|
/* now try generic SOF status messages */
|
||||||
status = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IPCD);
|
status = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IPCD);
|
||||||
@ -148,6 +148,27 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
|
|||||||
BYT_STACK_DUMP_SIZE);
|
BYT_STACK_DUMP_SIZE);
|
||||||
snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
|
snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
|
||||||
BYT_STACK_DUMP_SIZE);
|
BYT_STACK_DUMP_SIZE);
|
||||||
|
|
||||||
|
/* provide some context for firmware debug */
|
||||||
|
imrx = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IMRX);
|
||||||
|
imrd = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IMRD);
|
||||||
|
dev_err(sdev->dev,
|
||||||
|
"error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
|
||||||
|
panic & SHIM_IPCX_BUSY ? "yes" : "no",
|
||||||
|
panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
|
||||||
|
dev_err(sdev->dev,
|
||||||
|
"error: mask host: pending %s complete %s raw 0x%8.8x\n",
|
||||||
|
imrx & SHIM_IMRX_BUSY ? "yes" : "no",
|
||||||
|
imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
|
||||||
|
dev_err(sdev->dev,
|
||||||
|
"error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
|
||||||
|
status & SHIM_IPCD_BUSY ? "yes" : "no",
|
||||||
|
status & SHIM_IPCD_DONE ? "yes" : "no", status);
|
||||||
|
dev_err(sdev->dev,
|
||||||
|
"error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
|
||||||
|
imrd & SHIM_IMRD_BUSY ? "yes" : "no",
|
||||||
|
imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user