Skip to content

Commit

Permalink
[ARM] pxa: skip registers saving/restoring if entering standby mode
Browse files Browse the repository at this point in the history
registers are retained during standby mode, thus it's not necessary
to save/restore and checksum

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
eric miao authored and Russell King committed Jan 26, 2008
1 parent dd01b2f commit 512f03f
Showing 1 changed file with 18 additions and 15 deletions.
33 changes: 18 additions & 15 deletions arch/arm/mach-pxa/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,34 +38,37 @@ int pxa_pm_enter(suspend_state_t state)
iwmmxt_task_disable(NULL);
#endif

pxa_cpu_pm_fns->save(sleep_save);
/* skip registers saving for standby */
if (state != PM_SUSPEND_STANDBY) {
pxa_cpu_pm_fns->save(sleep_save);
/* before sleeping, calculate and save a checksum */
for (i = 0; i < pxa_cpu_pm_fns->save_size - 1; i++)
sleep_save_checksum += sleep_save[i];
}

/* Clear sleep reset status */
RCSR = RCSR_SMR;

/* before sleeping, calculate and save a checksum */
for (i = 0; i < pxa_cpu_pm_fns->save_size - 1; i++)
sleep_save_checksum += sleep_save[i];

/* *** go zzz *** */
pxa_cpu_pm_fns->enter(state);
cpu_init();

/* after sleeping, validate the checksum */
for (i = 0; i < pxa_cpu_pm_fns->save_size - 1; i++)
checksum += sleep_save[i];
if (state != PM_SUSPEND_STANDBY) {
/* after sleeping, validate the checksum */
for (i = 0; i < pxa_cpu_pm_fns->save_size - 1; i++)
checksum += sleep_save[i];

/* if invalid, display message and wait for a hardware reset */
if (checksum != sleep_save_checksum) {
/* if invalid, display message and wait for a hardware reset */
if (checksum != sleep_save_checksum) {
#ifdef CONFIG_ARCH_LUBBOCK
LUB_HEXLED = 0xbadbadc5;
LUB_HEXLED = 0xbadbadc5;
#endif
while (1)
pxa_cpu_pm_fns->enter(state);
while (1)
pxa_cpu_pm_fns->enter(state);
}
pxa_cpu_pm_fns->restore(sleep_save);
}

pxa_cpu_pm_fns->restore(sleep_save);

pr_debug("*** made it back from resume\n");

return 0;
Expand Down

0 comments on commit 512f03f

Please sign in to comment.