Tags: ChiShao/linux-imx
Tags
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>
PreviousNext