Skip to content

Tags: ChiShao/linux-imx

Tags

android-13.0.0_1.2.0

Toggle android-13.0.0_1.2.0's commit message
android-13.0.0_1.2.0-rc2

lf-6.1.1-1.0.0

Toggle lf-6.1.1-1.0.0's commit message
LF-8133 ASoC: SOF: imx8: Add post_fw_run operation

We need to make sure that DSP is booted and FW ready message
is already ACKed before we start sending IPC commands from
Linux (ARM core) to Firmware (DSP).

Add a delay after firmware is booted in order to have the MU and DSP
in correct state.

The problem we see is that, on DSP side, after sending the FW_READY
message to Linux Kernel no new interrupt is triggered.

On the Kernel side, we received the FW_READY, we send a reply to it
and then we start sending IPCs.

---> this would be the normal flow.

But what actually happens is that after kernel side receives FW_READY
message we have:

Core #0                                       Core nxp-imx#1

sof_resume
snd_sof_run_firmware
wait_event(boot_wait)
				--->FW_READY arrives via IRQ
				    handle_irq_event
				    sof_ipc3_rx_msg
				    wake_up(boot_wait)
set_up_all_pipelines
send FIRST IPC                  (this confuses the DSP)
				---> send ACK reply for FW_READY message

So, basically an IPC is sent before FW ready message is ACKed which
confuses the DSP.

Using a delay, after firmware boot, fixes the issue because we make sure
that DSP is completely booted and the boot is ACKed.

This is a workaround, until we find the exact root cause.
This affects only SOF on i.MX8QM.

A discussion with SOF community is started here
thesofproject/sof#7193

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Acked-by: Jason Liu <jason.hui.liu@nxp.com>

automotive-12.1.0_1.1.0

Toggle automotive-12.1.0_1.1.0's commit message
The automotive-12.1.0_1.1.0 release

lf-5.10.72-2.2.3

Toggle lf-5.10.72-2.2.3's commit message
"lf-5.10.72-2.2.3"