diff options
Diffstat (limited to 'chip/mt8192_scp/ipi.c')
-rw-r--r-- | chip/mt8192_scp/ipi.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/chip/mt8192_scp/ipi.c b/chip/mt8192_scp/ipi.c index 39fcc09809..76af0af838 100644 --- a/chip/mt8192_scp/ipi.c +++ b/chip/mt8192_scp/ipi.c @@ -4,6 +4,7 @@ */ #include "atomic.h" +#include "cache.h" #include "common.h" #include "console.h" #include "hooks.h" @@ -97,6 +98,10 @@ int ipi_send(int32_t id, const void *buf, uint32_t len, int wait) ipi_send_buf->len = len; memcpy(ipi_send_buf->buffer, buf, len); + /* flush memory cache (if any) */ + cache_flush_dcache_range((uintptr_t)ipi_send_buf, + sizeof(*ipi_send_buf)); + /* interrupt AP to handle the message */ ipi_wake_ap(id); SCP_SCP2APMCU_IPC_SET = IPC_SCP2HOST; |