diff options
Diffstat (limited to 'arch/arm/mach-omap2/pm.c')
| -rw-r--r-- | arch/arm/mach-omap2/pm.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index 6bd5f3b9c7a..ed39eecef3a 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c @@ -274,6 +274,20 @@ void susp_again_post_decision(bool should_suspend) pr_err("Unable to post decision, didn't get lock"); } +void susp_again_clear_decision() +{ + int res; + //clear flags for next time + res = mutex_trylock(&susp_again_decision_mutex); + if(res) { + pr_info("susp again: clearing flag\n"); + accel_should_suspend = NO_DECISION; // Not true or false + mutex_unlock(&susp_again_decision_mutex); + } + + +} + //Return True if going back to sleep bool olio_suspend_again(void) { int res; @@ -298,23 +312,16 @@ bool olio_suspend_again(void) { #define MAX_WAIT_TIME_SUSP_AGAIN msecs_to_jiffies(15) res = wait_event_timeout(wq_susp_again, accel_should_suspend != NO_DECISION, MAX_WAIT_TIME_SUSP_AGAIN); if(!res) - pr_warn("Suspend again was not acknowledged by driver\n"); + pr_warn("susp again: warning! decision not posted by accel driver\n"); #ifdef SUSPEND_AGAIN_THAW_KTHREADS freeze_kernel_threads(); #endif if (accel_should_suspend != NO_DECISION) { - pr_info("Suspend again decision: %i", accel_should_suspend); + pr_info("susp again: decision: %i \n", accel_should_suspend); should_suspend = accel_should_suspend; } - //clear flags for next time - res = mutex_trylock(&susp_again_decision_mutex); - if(res) { - pr_info("susp again: clearing flag"); - accel_should_suspend = NO_DECISION; // Not true or false - mutex_unlock(&susp_again_decision_mutex); - } return should_suspend; } |