Merge branch 'prcm_scm_misc_fixes_3.2' of git://git.pwsan.com/linux-2.6 into fixes
[cascardo/linux.git] / kernel / power / suspend.c
index b6b71ad..fdd4263 100644 (file)
@@ -104,7 +104,10 @@ static int suspend_prepare(void)
                goto Finish;
 
        error = suspend_freeze_processes();
-       if (!error)
+       if (error) {
+               suspend_stats.failed_freeze++;
+               dpm_save_failed_step(SUSPEND_FREEZE);
+       } else
                return 0;
 
        suspend_thaw_processes();
@@ -315,8 +318,16 @@ int enter_state(suspend_state_t state)
  */
 int pm_suspend(suspend_state_t state)
 {
-       if (state > PM_SUSPEND_ON && state <= PM_SUSPEND_MAX)
-               return enter_state(state);
+       int ret;
+       if (state > PM_SUSPEND_ON && state < PM_SUSPEND_MAX) {
+               ret = enter_state(state);
+               if (ret) {
+                       suspend_stats.fail++;
+                       dpm_save_failed_errno(ret);
+               } else
+                       suspend_stats.success++;
+               return ret;
+       }
        return -EINVAL;
 }
 EXPORT_SYMBOL(pm_suspend);