30 likes | 126 Views
DSP SUSPEND DESIGN. RK – 26/7/13 v1. Echo mem > / sys/power/state. Pm_suspend (). freeze_processes () freeze_kernel_threads (). Enter_state (). suspend_prepare (). DSP_POWER_PREPARE(). Suspend_notify. suspend_freeze_processes(). Complete_notify. suspend_devices_and_enter () .
E N D
DSP SUSPEND DESIGN RK – 26/7/13 v1
Echomem > /sys/power/state Pm_suspend() freeze_processes() freeze_kernel_threads() Enter_state() suspend_prepare() DSP_POWER_PREPARE() Suspend_notify suspend_freeze_processes() Complete_notify suspend_devices_and_enter() DSP_SUSPEND() suspend_finish() DSP_POWER_SUSPEND()
Functionality • DSP_POWER_PREPARE() – Prepare DSP for suspend • Notify/interrupt the suspend routine on DSP about system suspend request • We need an IPC such as SyslinkNotfiyto talk to our suspend routine on DSP • DSP_SUSPEND() – Put DSP to suspend • Freeze tasks/store context/disable clocks • Notify DSP_POWER_PREPARE() that suspend is completed using IPC/Syslink • DSP_POWER_SUSPEND() – Do house keeping for pwrdm off • Gate DSP iclk/fclk, put dspclkdm to sleep • DSP_POWER_COMPLETE() – (optional)