From: Johannes Berg Change /sys/power/state to not advertise any valid states (except for disk if SOFTWARE_SUSPEND is enabled) when no pm_ops have been set so userspace can easily discover what states should be available. Signed-off-by: Johannes Berg Cc: "Randy.Dunlap" Cc: Rafael J. Wysocki Cc: Pavel Macheck Cc: Greg KH Signed-off-by: Andrew Morton --- kernel/power/main.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN kernel/power/main.c~power-management-no-valid-states-w-o-pm_ops-docs kernel/power/main.c --- a/kernel/power/main.c~power-management-no-valid-states-w-o-pm_ops-docs +++ a/kernel/power/main.c @@ -167,7 +167,10 @@ static inline int valid_state(suspend_st if (state == PM_SUSPEND_DISK) return 1; - if (pm_ops && pm_ops->valid && !pm_ops->valid(state)) + /* all other states need lowlevel support and need to be + * valid to the lowlevel implementation, no valid callback + * implies that all are valid. */ + if (!pm_ops || (pm_ops->valid && !pm_ops->valid(state))) return 0; return 1; } _