summaryrefslogtreecommitdiff
path: root/arch/powerpc/platforms
diff options
context:
space:
mode:
authorWang Dongsheng <dongsheng.wang@freescale.com>2014-04-25 05:28:18 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-04-29 14:11:25 (GMT)
commitacf2570649581aa9b12a1afcb73215c439ab33c8 (patch)
tree538b6977aa5b63d5d9046d3e90929f3f08eefe9f /arch/powerpc/platforms
parent22642f20535811b5bf40a3f3323fd4e5719a162d (diff)
downloadlinux-fsl-qoriq-acf2570649581aa9b12a1afcb73215c439ab33c8.tar.xz
fsl/pm: add api to get suspend state which is STANDBY or MEM
Add set_pm_suspend_state & pm_suspend_state functions to set/get suspend state. When system going to sleep or deep sleep, devices can get the system suspend state(STANDBY/MEM) through pm_suspend_state function and to handle different situations. Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com> Change-Id: Ibd369079f6f0777854d88d7e1af21f455eaf909e Reviewed-on: http://git.am.freescale.net:8181/11530 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Yang Li <LeoLi@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r--arch/powerpc/platforms/85xx/qoriq_pm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/85xx/qoriq_pm.c b/arch/powerpc/platforms/85xx/qoriq_pm.c
index 4578a63..9f656e9 100644
--- a/arch/powerpc/platforms/85xx/qoriq_pm.c
+++ b/arch/powerpc/platforms/85xx/qoriq_pm.c
@@ -79,12 +79,15 @@ static int qoriq_suspend_enter(suspend_state_t state)
static int qoriq_suspend_valid(suspend_state_t state)
{
+ set_pm_suspend_state(state);
+
if (state == PM_SUSPEND_STANDBY && (sleep_modes & FSL_SLEEP))
return 1;
if (state == PM_SUSPEND_MEM && (sleep_modes & FSL_DEEP_SLEEP))
return 1;
+ set_pm_suspend_state(PM_SUSPEND_ON);
return 0;
}
@@ -100,6 +103,7 @@ static int qoriq_suspend_begin(suspend_state_t state)
static void qoriq_suspend_end(void)
{
+ set_pm_suspend_state(PM_SUSPEND_ON);
fsl_dp_iounmap();
}
@@ -128,6 +132,7 @@ static int __init qoriq_suspend_init(void)
}
suspend_set_ops(&qoriq_suspend_ops);
+ set_pm_suspend_state(PM_SUSPEND_ON);
return 0;
}