Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 512f03fd authored by eric miao's avatar eric miao Committed by Russell King
Browse files

[ARM] pxa: skip registers saving/restoring if entering standby mode



registers are retained during standby mode, thus it's not necessary
to save/restore and checksum

Signed-off-by: default avatareric miao <eric.miao@marvell.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent dd01b2fc
Loading
Loading
Loading
Loading
+18 −15
Original line number Diff line number Diff line
@@ -38,19 +38,22 @@ int pxa_pm_enter(suspend_state_t state)
		iwmmxt_task_disable(NULL);
#endif

	/* skip registers saving for standby */
	if (state != PM_SUSPEND_STANDBY) {
		pxa_cpu_pm_fns->save(sleep_save);

	/* 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];
	}

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

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

	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];
@@ -63,8 +66,8 @@ int pxa_pm_enter(suspend_state_t state)
			while (1)
				pxa_cpu_pm_fns->enter(state);
		}

		pxa_cpu_pm_fns->restore(sleep_save);
	}

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