power management: implement pm_ops.valid for everybody
[firefly-linux-kernel-4.4.55.git] / drivers / acpi / sleep / main.c
index 37a0930fc0a6ac538fbb2407e3ebb6f71a203753..f8c63410bcbf55eb285e88f2d156ec95634d390f 100644 (file)
@@ -168,9 +168,18 @@ int acpi_suspend(u32 acpi_state)
 
 static int acpi_pm_state_valid(suspend_state_t pm_state)
 {
-       u32 acpi_state = acpi_suspend_states[pm_state];
+       u32 acpi_state;
+
+       switch (pm_state) {
+       case PM_SUSPEND_ON:
+       case PM_SUSPEND_STANDBY:
+       case PM_SUSPEND_MEM:
+               acpi_state = acpi_suspend_states[pm_state];
 
-       return sleep_states[acpi_state];
+               return sleep_states[acpi_state];
+       default:
+               return 0;
+       }
 }
 
 static struct pm_ops acpi_pm_ops = {