Hi,
On 4/2/20 9:15 PM, Pierre-Louis Bossart wrote:
On 4/2/20 1:49 PM, Hans de Goede wrote:
At least on Canon Lake each time the SOF firmware is booted,
the following error is logged in dmesg:
[ 36.711803] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Since the DSP is powered down when not in used this happens everytime
e.g. a notification plays, polluting dmesg with these false-positive
errors.
What kernel are you using Hans? I thought this was solved with
5.6.0
8354d9b44530b ("ASoC: SOF: Intel: hda-loader: clear the IPC ack bit after FW_PURGE done") >
Set DONE bit after the FW_PURGE IPC is polled successfully, to clear the
interrupt and avoid the arrival of the confusing unexpected ipc.
That commit is not in Torvald's tree yet, but it is in
broonie/sound.git, I've cherry picked it into my local tree
and reverted my own fix.
Unfortunately even with that patch cherry picked the errors my
patch silences still happen.
Regards,
Hans
Add a check to snd_sof_ipc_reply() which makes it return success when
receiving an unexpected msg_id 0 during fw-boot, fixing these
false-positive errors being logged.
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
---
sound/soc/sof/ipc.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
index 78aa1da7c7a9..7303b3d42f12 100644
--- a/sound/soc/sof/ipc.c
+++ b/sound/soc/sof/ipc.c
@@ -312,6 +312,11 @@ int snd_sof_ipc_reply(struct snd_sof_dev *sdev, u32 msg_id)
{
struct snd_sof_ipc_msg *msg = &sdev->ipc->msg;
+ /* Ignore msg_id 0 being send during fw-boot */
+ if (msg->ipc_complete && sdev->fw_state == SOF_FW_BOOT_IN_PROGRESS &&
+ msg_id == 0)
+ return 0;
+
if (msg->ipc_complete) {
dev_err(sdev->dev, "error: no reply expected, received 0x%x",
msg_id);