All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.de, Liam Girdwood <liam.r.girdwood@linux.intel.com>,
	broonie@kernel.org,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Subject: [alsa-devel] [PATCH 12/13] ASoC: SOF: Intel: Add context data to any IPC timeout.
Date: Fri, 27 Sep 2019 15:05:37 -0500	[thread overview]
Message-ID: <20190927200538.660-13-pierre-louis.bossart@linux.intel.com> (raw)
In-Reply-To: <20190927200538.660-1-pierre-louis.bossart@linux.intel.com>

From: Liam Girdwood <liam.r.girdwood@linux.intel.com>

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>
---
 sound/soc/sof/intel/bdw.c | 22 +++++++++++++++++++++-
 sound/soc/sof/intel/byt.c | 23 ++++++++++++++++++++++-
 2 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
index 80e2826fb447..f395d0638876 100644
--- a/sound/soc/sof/intel/bdw.c
+++ b/sound/soc/sof/intel/bdw.c
@@ -247,7 +247,7 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
 	struct sof_ipc_dsp_oops_xtensa xoops;
 	struct sof_ipc_panic_info panic_info;
 	u32 stack[BDW_STACK_DUMP_SIZE];
-	u32 status, panic;
+	u32 status, panic, imrx, imrd;
 
 	/* now try generic SOF status messages */
 	status = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IPCD);
@@ -256,6 +256,26 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
 			  BDW_STACK_DUMP_SIZE);
 	snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
 			   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);
 }
 
 /*
diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
index a1e514f71739..b2597ecfdc1c 100644
--- a/sound/soc/sof/intel/byt.c
+++ b/sound/soc/sof/intel/byt.c
@@ -145,7 +145,7 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
 	struct sof_ipc_dsp_oops_xtensa xoops;
 	struct sof_ipc_panic_info panic_info;
 	u32 stack[BYT_STACK_DUMP_SIZE];
-	u32 status, panic;
+	u32 status, panic, imrd, imrx;
 
 	/* now try generic SOF status messages */
 	status = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IPCD);
@@ -154,6 +154,27 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
 			  BYT_STACK_DUMP_SIZE);
 	snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
 			   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);
+
 }
 
 /*
-- 
2.20.1

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply	other threads:[~2019-09-27 20:14 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-27 20:05 [alsa-devel] [PATCH 00/13] ASoC: SOF: fixes and improvements Pierre-Louis Bossart
2019-09-27 20:05 ` [alsa-devel] [PATCH 01/13] ASoC: SOF: loader: fix kernel oops on firmware boot failure Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: loader: fix kernel oops on firmware boot failure" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 02/13] ASoC: SOF: topology: fix parse fail issue for byte/bool tuple types Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: topology: fix parse fail issue for byte/bool tuple types" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 03/13] ASoC: SOF: trace: move to opt-in with Kconfig and module parameter Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: trace: move to opt-in with Kconfig and module parameter" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 04/13] ASoC: SOF: ipc: retain DSP context after FW exception Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: ipc: retain DSP context after FW exception." to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 05/13] ASoC: SOF: pcm: fix resource leak in hw_free Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: pcm: fix resource leak in hw_free" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 06/13] ASoC: SOF: pcm: harden PCM STOP sequence Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: pcm: harden PCM STOP sequence" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 07/13] ASoC: SOF: core: check for mandatory fw_ready op during SOF probe Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: core: check for mandatory fw_ready op during SOF probe" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 08/13] ASoC: SOF: ipc: introduce no_stream_position in sof_ipc_stream_params struct Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: ipc: introduce no_stream_position in sof_ipc_stream_params struct" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 09/13] ASoC: SOF: Intel: hda: fix reset of host_period_bytes Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: Intel: hda: fix reset of host_period_bytes" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 10/13] ASoC: SOF: Intel: hda: fix warnings during FW load Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: Intel: hda: fix warnings during FW load" to the asoc tree Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 11/13] ASoC: SOF: Intel: initialise and verify FW crash dump data Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: Intel: initialise and verify FW crash dump data." to the asoc tree Mark Brown
2019-09-27 20:05 ` Pierre-Louis Bossart [this message]
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: Intel: Add context data to any IPC timeout." " Mark Brown
2019-09-27 20:05 ` [alsa-devel] [PATCH 13/13] ASoC: SOF: Intel: hda: Disable DMI L1 entry during capture Pierre-Louis Bossart
2019-10-01 17:56   ` [alsa-devel] Applied "ASoC: SOF: Intel: hda: Disable DMI L1 entry during capture" to the asoc tree Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190927200538.660-13-pierre-louis.bossart@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.