summaryrefslogtreecommitdiff
path: root/chip/ish
diff options
context:
space:
mode:
Diffstat (limited to 'chip/ish')
-rw-r--r--chip/ish/aontaskfw/ish_aontask.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/chip/ish/aontaskfw/ish_aontask.c b/chip/ish/aontaskfw/ish_aontask.c
index ab9d02abbf..ab3749477f 100644
--- a/chip/ish/aontaskfw/ish_aontask.c
+++ b/chip/ish/aontaskfw/ish_aontask.c
@@ -670,6 +670,9 @@ static void handle_d0i2(void)
clear_vnnred_aoncg();
+ if (IS_ENABLED(CONFIG_ISH_NEW_PM) && (PMU_RST_PREP & PMU_RST_PREP_AVAIL))
+ handle_reset(ISH_PM_STATE_RESET_PREP);
+
/* set main SRAM intto normal mode */
PMU_LDO_CTRL = PMU_LDO_ENABLE_BIT;
@@ -725,6 +728,9 @@ static void handle_d0i3(void)
clear_vnnred_aoncg();
+ if (IS_ENABLED(CONFIG_ISH_NEW_PM) && (PMU_RST_PREP & PMU_RST_PREP_AVAIL))
+ handle_reset(ISH_PM_STATE_RESET_PREP);
+
/* power on main SRAM */
sram_power(1);
@@ -801,7 +807,8 @@ static void handle_reset(enum ish_pm_state pm_state)
* Sx for long time.
*
*/
- if (IPC_ISH_RMP2 & DMA_ENABLED_MASK) {
+ if (IS_ENABLED(CONFIG_ISH_NEW_PM) ||
+ (IPC_ISH_RMP2 & DMA_ENABLED_MASK)) {
/* clear ISH2HOST doorbell register */
*IPC_ISH2HOST_DOORBELL_ADDR = 0;