diff --git a/src/platform/intel/ace/include/ace/lib/mailbox.h b/src/platform/intel/ace/include/ace/lib/mailbox.h index df0b02c286f2..b3cccad8c85a 100644 --- a/src/platform/intel/ace/include/ace/lib/mailbox.h +++ b/src/platform/intel/ace/include/ace/lib/mailbox.h @@ -80,12 +80,12 @@ static inline uint64_t mailbox_sw_reg_read64(size_t offset) static inline void mailbox_sw_regs_write(size_t offset, const void *src, size_t bytes) { - int regs_write_err __unused = memcpy_s((void *)(MAILBOX_SW_REG_BASE + offset), - MAILBOX_SW_REG_SIZE - offset, src, bytes); + uint32_t __sparse_cache *ptr_c; + uint32_t *ptr; - assert(!regs_write_err); - dcache_writeback_region((__sparse_force void __sparse_cache *)(MAILBOX_SW_REG_BASE + - offset), bytes); + ptr_c = (uint32_t __sparse_cache *)(MAILBOX_SW_REG_BASE + offset); + ptr = cache_to_uncache(ptr_c); + memcpy_s(ptr, MAILBOX_SW_REG_SIZE - offset, src, bytes); } #endif /* __ACE_LIB_MAILBOX_H__ */ diff --git a/src/platform/intel/cavs/include/cavs/lib/mailbox.h b/src/platform/intel/cavs/include/cavs/lib/mailbox.h index 367164f01d78..063ccfcf6f3e 100644 --- a/src/platform/intel/cavs/include/cavs/lib/mailbox.h +++ b/src/platform/intel/cavs/include/cavs/lib/mailbox.h @@ -108,12 +108,12 @@ static inline uint64_t mailbox_sw_reg_read64(size_t offset) static inline void mailbox_sw_regs_write(size_t offset, const void *src, size_t bytes) { - int regs_write_err __unused = memcpy_s((void *)(MAILBOX_SW_REG_BASE + offset), - MAILBOX_SW_REG_SIZE - offset, src, bytes); + uint32_t __sparse_cache *ptr_c; + uint32_t *ptr; - assert(!regs_write_err); - dcache_writeback_region((__sparse_force void __sparse_cache *)(MAILBOX_SW_REG_BASE + - offset), bytes); + ptr_c = (uint32_t __sparse_cache *)(MAILBOX_SW_REG_BASE + offset); + ptr = cache_to_uncache(ptr_c); + memcpy_s(ptr, MAILBOX_SW_REG_SIZE - offset, src, bytes); } #endif /* __CAVS_LIB_MAILBOX_H__ */