diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index c7d419d340c8ac..2455decaeace40 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -184,6 +184,7 @@ void hda_ipc_dump(struct snd_sof_dev *sdev) u32 hipcie; u32 hipct; u32 hipcctl; + u32 ipc_rec, ipc_proc; /* read IPC status */ hipcie = snd_sof_dsp_read(sdev, HDA_DSP_BAR, HDA_DSP_REG_HIPCIE); @@ -195,6 +196,14 @@ void hda_ipc_dump(struct snd_sof_dev *sdev) dev_err(sdev->dev, "error: host status 0x%8.8x dsp status 0x%8.8x mask 0x%8.8x\n", hipcie, hipct, hipcctl); + + ipc_rec = snd_sof_dsp_read(sdev, HDA_DSP_BAR, + HDA_DSP_SRAM_REG_FW_IPC_RECEIVED_COUNT); + ipc_proc = snd_sof_dsp_read(sdev, HDA_DSP_BAR, + HDA_DSP_SRAM_REG_FW_IPC_PROCESSED_COUNT); + + dev_err(sdev->dev, "error: ipc received: %u processed: %u\n", + ipc_rec, ipc_proc); } static int hda_init(struct snd_sof_dev *sdev) diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h index 455046612b9494..5523d667edb24d 100644 --- a/sound/soc/sof/intel/hda.h +++ b/sound/soc/sof/intel/hda.h @@ -153,7 +153,9 @@ /* FW and ROM share offset 4 */ #define HDA_DSP_SRAM_REG_FW_STATUS (HDA_DSP_MBOX_OFFSET + 0x4) #define HDA_DSP_SRAM_REG_FW_TRACEP (HDA_DSP_MBOX_OFFSET + 0x8) -#define HDA_DSP_SRAM_REG_FW_END (HDA_DSP_MBOX_OFFSET + 0xc) +#define HDA_DSP_SRAM_REG_FW_IPC_RECEIVED_COUNT (HDA_DSP_MBOX_OFFSET + 0xc) +#define HDA_DSP_SRAM_REG_FW_IPC_PROCESSED_COUNT (HDA_DSP_MBOX_OFFSET + 0x10) +#define HDA_DSP_SRAM_REG_FW_END (HDA_DSP_MBOX_OFFSET + 0x14) #define HDA_DSP_MBOX_UPLINK_OFFSET 0x81000