summaryrefslogtreecommitdiff
path: root/plat/rockchip/common/plat_pm.c
diff options
context:
space:
mode:
authorCaesar Wang <wxt@rock-chips.com>2016-08-17 17:22:10 -0700
committerCaesar Wang <wxt@rock-chips.com>2016-08-25 12:29:43 +0800
commitbdb2763d64e41a2a18f7ec77b51a2e69ebb512e1 (patch)
tree67574b563057f7eeee1a18c097c5713902c856a9 /plat/rockchip/common/plat_pm.c
parentb3464232513bc9cb3572a0b42a7cf6dcde8ec255 (diff)
rockchip: handle some interrupt before enter power mode for rk3399
For the PMU design, we don't expect to get the interrupts before enter the power mode. Since that will cause the confusion for the state machine in the power mode. Change-Id: Id8dee79ae617a66271b5caf92caf35f520f45099
Diffstat (limited to 'plat/rockchip/common/plat_pm.c')
-rw-r--r--plat/rockchip/common/plat_pm.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/plat/rockchip/common/plat_pm.c b/plat/rockchip/common/plat_pm.c
index b6291bbf..7372fcff 100644
--- a/plat/rockchip/common/plat_pm.c
+++ b/plat/rockchip/common/plat_pm.c
@@ -311,6 +311,18 @@ static void __dead2 rockchip_system_poweroff(void)
rockchip_ops->system_off();
}
+static void
+__dead2 rockchip_pwr_domain_pwr_down_wfi(const psci_power_state_t *target_state)
+{
+ if ((RK_CORE_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE) &&
+ (rockchip_ops)) {
+ if (RK_SYSTEM_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE &&
+ rockchip_ops->sys_pwr_down_wfi)
+ rockchip_ops->sys_pwr_down_wfi(target_state);
+ }
+ psci_power_down_wfi();
+}
+
/*******************************************************************************
* Export the platform handlers via plat_rockchip_psci_pm_ops. The rockchip
* standard
@@ -323,6 +335,7 @@ const plat_psci_ops_t plat_rockchip_psci_pm_ops = {
.pwr_domain_suspend = rockchip_pwr_domain_suspend,
.pwr_domain_on_finish = rockchip_pwr_domain_on_finish,
.pwr_domain_suspend_finish = rockchip_pwr_domain_suspend_finish,
+ .pwr_domain_pwr_down_wfi = rockchip_pwr_domain_pwr_down_wfi,
.system_reset = rockchip_system_reset,
.system_off = rockchip_system_poweroff,
.validate_power_state = rockchip_validate_power_state,