From akpm@linux-foundation.org Fri Feb 16 01:38:41 2007 From: Johannes Berg Date: Fri, 16 Feb 2007 01:38:29 -0800 Subject: power management: no valid states w/o pm_ops To: greg@kroah.com Cc: akpm@linux-foundation.org, johannes@sipsolutions.net, pavel@ucw.cz, rdunlap@xenotime.net, rjw@sisk.pl Message-ID: <200702160938.l1G9cT7h026353@shell0.pdx.osdl.net> 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 Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman --- kernel/power/main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) --- gregkh-2.6.orig/kernel/power/main.c +++ gregkh-2.6/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; }