mirror of https://gitee.com/openkylin/linux.git
ASoC: SOF: IPC: add ipc dump function
Dump IPC status when IPC timed out. IPC status is platform specific and need bind to plaform. Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
ed3baacd76
commit
5e4a27fda2
|
@ -207,6 +207,7 @@ static int tx_wait_done(struct snd_sof_ipc *ipc, struct snd_sof_ipc_msg *msg,
|
||||||
dev_err(sdev->dev, "error: ipc timed out for 0x%x size %d\n",
|
dev_err(sdev->dev, "error: ipc timed out for 0x%x size %d\n",
|
||||||
hdr->cmd, hdr->size);
|
hdr->cmd, hdr->size);
|
||||||
snd_sof_dsp_dbg_dump(ipc->sdev, SOF_DBG_REGS | SOF_DBG_MBOX);
|
snd_sof_dsp_dbg_dump(ipc->sdev, SOF_DBG_REGS | SOF_DBG_MBOX);
|
||||||
|
snd_sof_ipc_dump(ipc->sdev);
|
||||||
snd_sof_trace_notify_for_error(ipc->sdev);
|
snd_sof_trace_notify_for_error(ipc->sdev);
|
||||||
ret = -ETIMEDOUT;
|
ret = -ETIMEDOUT;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -155,6 +155,12 @@ static inline void snd_sof_dsp_dbg_dump(struct snd_sof_dev *sdev, u32 flags)
|
||||||
return sof_ops(sdev)->dbg_dump(sdev, flags);
|
return sof_ops(sdev)->dbg_dump(sdev, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void snd_sof_ipc_dump(struct snd_sof_dev *sdev)
|
||||||
|
{
|
||||||
|
if (sof_ops(sdev)->ipc_dump)
|
||||||
|
return sof_ops(sdev)->ipc_dump(sdev);
|
||||||
|
}
|
||||||
|
|
||||||
/* register IO */
|
/* register IO */
|
||||||
static inline void snd_sof_dsp_write(struct snd_sof_dev *sdev, u32 bar,
|
static inline void snd_sof_dsp_write(struct snd_sof_dev *sdev, u32 bar,
|
||||||
u32 offset, u32 value)
|
u32 offset, u32 value)
|
||||||
|
|
|
@ -176,6 +176,7 @@ struct snd_sof_dsp_ops {
|
||||||
int debug_map_count; /* optional */
|
int debug_map_count; /* optional */
|
||||||
void (*dbg_dump)(struct snd_sof_dev *sof_dev,
|
void (*dbg_dump)(struct snd_sof_dev *sof_dev,
|
||||||
u32 flags); /* optional */
|
u32 flags); /* optional */
|
||||||
|
void (*ipc_dump)(struct snd_sof_dev *sof_dev); /* optional */
|
||||||
|
|
||||||
/* host DMA trace initialization */
|
/* host DMA trace initialization */
|
||||||
int (*trace_init)(struct snd_sof_dev *sdev,
|
int (*trace_init)(struct snd_sof_dev *sdev,
|
||||||
|
|
Loading…
Reference in New Issue