ARM: at91: pm: move the setup of soc_pm.bu->suspended
Move the setup of soc_pm.bu->suspended in platform_suspend::begin function so that the PMC code in charge with clocks suspend/resume to differentiate b/w standard PM mode and backup mode. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20210415105010.569620-3-claudiu.beznea@microchip.com
This commit is contained in:
parent
f19dd1df9e
commit
fe4c09e568
|
@ -214,6 +214,8 @@ static int at91_sam9x60_config_pmc_ws(void __iomem *pmc, u32 mode, u32 polarity)
|
|||
*/
|
||||
static int at91_pm_begin(suspend_state_t state)
|
||||
{
|
||||
int ret;
|
||||
|
||||
switch (state) {
|
||||
case PM_SUSPEND_MEM:
|
||||
soc_pm.data.mode = soc_pm.data.suspend_mode;
|
||||
|
@ -227,7 +229,16 @@ static int at91_pm_begin(suspend_state_t state)
|
|||
soc_pm.data.mode = -1;
|
||||
}
|
||||
|
||||
return at91_pm_config_ws(soc_pm.data.mode, true);
|
||||
ret = at91_pm_config_ws(soc_pm.data.mode, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (soc_pm.data.mode == AT91_PM_BACKUP)
|
||||
soc_pm.bu->suspended = 1;
|
||||
else if (soc_pm.bu)
|
||||
soc_pm.bu->suspended = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -296,8 +307,6 @@ static int at91_suspend_finish(unsigned long val)
|
|||
static void at91_pm_suspend(suspend_state_t state)
|
||||
{
|
||||
if (soc_pm.data.mode == AT91_PM_BACKUP) {
|
||||
soc_pm.bu->suspended = 1;
|
||||
|
||||
cpu_suspend(0, at91_suspend_finish);
|
||||
|
||||
/* The SRAM is lost between suspend cycles */
|
||||
|
|
Loading…
Reference in New Issue