From 5dbc8f39b0a61140ba9849dbb37d44d677143711 Mon Sep 17 00:00:00 2001 From: Flavio Ceolin Date: Sat, 20 Jan 2024 00:36:59 +0000 Subject: [PATCH] intel_adsp/cavs: power: Fix INTLEVEL value In pm_state_set we can't just call k_cpu_idle() because this will clear out PS.INTLEVEL. Use k_cpu_atomic_idle instead since Zephyr's expect interruptions to be locked after pm_state_set. Signed-off-by: Flavio Ceolin --- soc/xtensa/intel_adsp/cavs/power.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soc/xtensa/intel_adsp/cavs/power.c b/soc/xtensa/intel_adsp/cavs/power.c index 3ae758ced617a11..69947e80da90974 100644 --- a/soc/xtensa/intel_adsp/cavs/power.c +++ b/soc/xtensa/intel_adsp/cavs/power.c @@ -163,7 +163,7 @@ void pm_state_set(enum pm_state state, uint8_t substate_id) /* do power down - this function won't return */ power_down_cavs(true, uncache_to_cache(&hpsram_mask[0])); } else { - k_cpu_idle(); + k_cpu_atomic_idle(arch_irq_lock()); } } else { __ASSERT(false, "invalid argument - unsupported power state");