drivers: amd: renoir: fix for ipc timeout issues

This patch fixes the ipc timeout issues by avoiding
the acquiring of ipc lock in platform ipc driver, which
was already hold by ipc core thread during ipc complete command.

Signed-off-by: balapati <balakishore.pati@amd.com>
This commit is contained in:
balapati 2021-09-14 21:23:06 +05:30 committed by Liam Girdwood
parent ae0113287a
commit f983cb0c55
1 changed files with 0 additions and 3 deletions

View File

@ -132,10 +132,8 @@ enum task_state ipc_platform_do_cmd(void *data)
void ipc_platform_complete_cmd(void *data) void ipc_platform_complete_cmd(void *data)
{ {
struct ipc *ipc = data; struct ipc *ipc = data;
uint32_t flags;
acp_sw_intr_trig_t sw_intr_trig; acp_sw_intr_trig_t sw_intr_trig;
spin_lock_irq(&ipc->lock, flags);
/* Set Dsp Ack for msg from host */ /* Set Dsp Ack for msg from host */
sof_ipc_dsp_ack_set(); sof_ipc_dsp_ack_set();
/* Configures the trigger bit in ACP_DSP_SW_INTR_TRIG register */ /* Configures the trigger bit in ACP_DSP_SW_INTR_TRIG register */
@ -146,7 +144,6 @@ void ipc_platform_complete_cmd(void *data)
io_reg_write((PU_REGISTER_BASE + ACP_SW_INTR_TRIG), sw_intr_trig.u32all); io_reg_write((PU_REGISTER_BASE + ACP_SW_INTR_TRIG), sw_intr_trig.u32all);
/* now interrupt host to tell it we have sent a message */ /* now interrupt host to tell it we have sent a message */
acp_dsp_to_host_Intr_trig(); acp_dsp_to_host_Intr_trig();
spin_unlock_irq(&ipc->lock, flags);
if (ipc->pm_prepare_D3) { if (ipc->pm_prepare_D3) {
while (1) while (1)
wait_for_interrupt(0); wait_for_interrupt(0);