PM: Restore Tick timer context to support Device OFF mode
authorSuman Anna <s-anna@ti.com>
Thu, 7 Jun 2012 22:53:52 +0000 (17:53 -0500)
committerSuman Anna <s-anna@ti.com>
Wed, 18 Jul 2012 02:32:55 +0000 (21:32 -0500)
commit237d4b546098c675f2128b9312e318952a3541d7
treeaf6c70d492a77a23ffbee2266c238e7a4f10c49d
parent0cded2282c329c40cc21ebf7d8826e58b416c13a
PM: Restore Tick timer context to support Device OFF mode

During OFF mode suspend, the states of most IP blocks in the SOC
are lost when the IP is powered off. Without software action to
restore the lost state, the modules will be left in their reset
states and will not be able to resume where they left off.

The GPTimer driver code on the host-side was saving and restoring
the context previously. This may not be guaranteed always, and so
it is better to save and restore the context on the BIOS-side.

This is done in conjunction with a new SMP/BIOS API to reprogram
the timer registers to their configured settings upon a resume
from hibernation or system suspend. The API is not yet available
in SYS/BIOS, and requires the host-side to preserve the context.

The IpcPower module retrieves and stores the BIOS Tick timer
handle (for using with new API) by checking against known BIOS
timer tick functions. Provision has also been added for
publishing a tick function (if different from standard-ones)
through an exported global variable. The image would abort if
no timer handle can be retrieved.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
src/ti/pm/IpcPower.c
src/ti/pm/IpcPowerDsp.c