[Sound-open-firmware] [PATCH] ipc: return msg to empty list
Liam Girdwood
liam.r.girdwood at linux.intel.com
Thu Feb 8 21:25:28 CET 2018
From: Rander Wang <rander.wang at intel.com>
DSP and host communicate each other with msg. It would
exhausted without return and make ipc failed
---
src/ipc/apl-ipc.c | 2 +-
src/ipc/byt-ipc.c | 2 ++
src/ipc/cnl-ipc.c | 2 ++
src/ipc/hsw-ipc.c | 2 ++
4 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/ipc/apl-ipc.c b/src/ipc/apl-ipc.c
index c779062..1332639 100644
--- a/src/ipc/apl-ipc.c
+++ b/src/ipc/apl-ipc.c
@@ -168,7 +168,7 @@ void ipc_platform_send_msg(struct ipc *ipc)
ipc_write(IPC_DIPCIE, 0);
ipc_write(IPC_DIPCI, 0x80000000 | msg->header);
-list_item_append(&msg->list, &ipc->empty_list);
+ list_item_append(&msg->list, &ipc->empty_list);
out:
spin_unlock_irq(&ipc->lock, flags);
diff --git a/src/ipc/byt-ipc.c b/src/ipc/byt-ipc.c
index 8897bb9..e7c1d78 100644
--- a/src/ipc/byt-ipc.c
+++ b/src/ipc/byt-ipc.c
@@ -194,6 +194,8 @@ void ipc_platform_send_msg(struct ipc *ipc)
shim_write(SHIM_IPCDL, msg->header);
shim_write(SHIM_IPCDH, SHIM_IPCDH_BUSY);
+ list_item_append(&msg->list, &ipc->empty_list);
+
out:
spin_unlock_irq(&ipc->lock, flags);
}
diff --git a/src/ipc/cnl-ipc.c b/src/ipc/cnl-ipc.c
index cd5e825..5ccc345 100644
--- a/src/ipc/cnl-ipc.c
+++ b/src/ipc/cnl-ipc.c
@@ -168,6 +168,8 @@ void ipc_platform_send_msg(struct ipc *ipc)
ipc_write(IPC_DIPCIDD, 0);
ipc_write(IPC_DIPCIDR, 0x80000000 | msg->header);
+ list_item_append(&msg->list, &ipc->empty_list);
+
out:
spin_unlock_irq(&ipc->lock, flags);
}
diff --git a/src/ipc/hsw-ipc.c b/src/ipc/hsw-ipc.c
index 4a16f41..7a1dd72 100644
--- a/src/ipc/hsw-ipc.c
+++ b/src/ipc/hsw-ipc.c
@@ -184,6 +184,8 @@ void ipc_platform_send_msg(struct ipc *ipc)
/* now interrupt host to tell it we have message sent */
shim_write(SHIM_IPCD, msg->header | SHIM_IPCD_BUSY);
+ list_item_append(&msg->list, &ipc->empty_list);
+
out:
spin_unlock_irq(&ipc->lock, flags);
}
--
2.14.1
More information about the Sound-open-firmware
mailing list