ARM: shmobile: Lager: Correct I2C bus for VDD MPU regulator
[deliverable/linux.git] / kernel / power / suspend.c
index 963e6d0f050bd8ac2c62a0fee2838118e2993943..4dd8822f732a2a23835fca1f8f9a991ca756c3dd 100644 (file)
@@ -177,7 +177,9 @@ static int suspend_prepare(suspend_state_t state)
        if (error)
                goto Finish;
 
+       trace_suspend_resume(TPS("freeze_processes"), 0, true);
        error = suspend_freeze_processes();
+       trace_suspend_resume(TPS("freeze_processes"), 0, false);
        if (!error)
                return 0;
 
@@ -240,7 +242,9 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
         * all the devices are suspended.
         */
        if (state == PM_SUSPEND_FREEZE) {
+               trace_suspend_resume(TPS("machine_suspend"), state, true);
                freeze_enter();
+               trace_suspend_resume(TPS("machine_suspend"), state, false);
                goto Platform_wake;
        }
 
@@ -256,7 +260,11 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
        if (!error) {
                *wakeup = pm_wakeup_pending();
                if (!(suspend_test(TEST_CORE) || *wakeup)) {
+                       trace_suspend_resume(TPS("machine_suspend"),
+                               state, true);
                        error = suspend_ops->enter(state);
+                       trace_suspend_resume(TPS("machine_suspend"),
+                               state, false);
                        events_check_enabled = false;
                }
                syscore_resume();
@@ -294,7 +302,6 @@ int suspend_devices_and_enter(suspend_state_t state)
        if (need_suspend_ops(state) && !suspend_ops)
                return -ENOSYS;
 
-       trace_machine_suspend(state);
        if (need_suspend_ops(state) && suspend_ops->begin) {
                error = suspend_ops->begin(state);
                if (error)
@@ -331,7 +338,6 @@ int suspend_devices_and_enter(suspend_state_t state)
        else if (state == PM_SUSPEND_FREEZE && freeze_ops->end)
                freeze_ops->end();
 
-       trace_machine_suspend(PWR_EVENT_EXIT);
        return error;
 
  Recover_platform:
@@ -365,6 +371,7 @@ static int enter_state(suspend_state_t state)
 {
        int error;
 
+       trace_suspend_resume(TPS("suspend_enter"), state, true);
        if (state == PM_SUSPEND_FREEZE) {
 #ifdef CONFIG_PM_DEBUG
                if (pm_test_level != TEST_NONE && pm_test_level <= TEST_CPUS) {
@@ -382,9 +389,11 @@ static int enter_state(suspend_state_t state)
        if (state == PM_SUSPEND_FREEZE)
                freeze_begin();
 
+       trace_suspend_resume(TPS("sync_filesystems"), 0, true);
        printk(KERN_INFO "PM: Syncing filesystems ... ");
        sys_sync();
        printk("done.\n");
+       trace_suspend_resume(TPS("sync_filesystems"), 0, false);
 
        pr_debug("PM: Preparing system for %s sleep\n", pm_states[state].label);
        error = suspend_prepare(state);
@@ -394,6 +403,7 @@ static int enter_state(suspend_state_t state)
        if (suspend_test(TEST_FREEZER))
                goto Finish;
 
+       trace_suspend_resume(TPS("suspend_enter"), state, false);
        pr_debug("PM: Entering %s sleep\n", pm_states[state].label);
        pm_restrict_gfp_mask();
        error = suspend_devices_and_enter(state);
This page took 0.024835 seconds and 5 git commands to generate.