tracing: Have preempt(irqs)off trace preempt disabled functions
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / kernel / power / main.c
index d77663bfedeb071370f584f2bf1e42cd8332e5a4..312c1b2c725ddf4165a373c609f307679118a951 100644 (file)
@@ -293,12 +293,12 @@ static ssize_t state_show(struct kobject *kobj, struct kobj_attribute *attr,
 {
        char *s = buf;
 #ifdef CONFIG_SUSPEND
-       int i;
+       suspend_state_t i;
+
+       for (i = PM_SUSPEND_MIN; i < PM_SUSPEND_MAX; i++)
+               if (pm_states[i].state)
+                       s += sprintf(s,"%s ", pm_states[i].label);
 
-       for (i = 0; i < PM_SUSPEND_MAX; i++) {
-               if (pm_states[i] && valid_state(i))
-                       s += sprintf(s,"%s ", pm_states[i]);
-       }
 #endif
 #ifdef CONFIG_HIBERNATION
        s += sprintf(s, "%s\n", "disk");
@@ -314,7 +314,7 @@ static suspend_state_t decode_state(const char *buf, size_t n)
 {
 #ifdef CONFIG_SUSPEND
        suspend_state_t state = PM_SUSPEND_MIN;
-       const char * const *s;
+       struct pm_sleep_state *s;
 #endif
        char *p;
        int len;
@@ -328,8 +328,9 @@ static suspend_state_t decode_state(const char *buf, size_t n)
 
 #ifdef CONFIG_SUSPEND
        for (s = &pm_states[state]; state < PM_SUSPEND_MAX; s++, state++)
-               if (*s && len == strlen(*s) && !strncmp(buf, *s, len))
-                       return state;
+               if (s->state && len == strlen(s->label)
+                   && !strncmp(buf, s->label, len))
+                       return s->state;
 #endif
 
        return PM_SUSPEND_ON;
@@ -445,8 +446,8 @@ static ssize_t autosleep_show(struct kobject *kobj,
 
 #ifdef CONFIG_SUSPEND
        if (state < PM_SUSPEND_MAX)
-               return sprintf(buf, "%s\n", valid_state(state) ?
-                                               pm_states[state] : "error");
+               return sprintf(buf, "%s\n", pm_states[state].state ?
+                                       pm_states[state].label : "error");
 #endif
 #ifdef CONFIG_HIBERNATION
        return sprintf(buf, "disk\n");