drm/nouveau/kms/nv50-: use NVIDIA's headers for core head_olut_set()
[linux-2.6-microblaze.git] / drivers / acpi / device_pm.c
index 5832bc1..94d91c6 100644 (file)
@@ -186,7 +186,7 @@ int acpi_device_set_power(struct acpi_device *device, int state)
                 * possibly drop references to the power resources in use.
                 */
                state = ACPI_STATE_D3_HOT;
-               /* If _PR3 is not available, use D3hot as the target state. */
+               /* If D3cold is not supported, use D3hot as the target state. */
                if (!device->power.states[ACPI_STATE_D3_COLD].flags.valid)
                        target_state = state;
        } else if (!device->power.states[state].flags.valid) {
@@ -1084,7 +1084,7 @@ int acpi_subsys_suspend_late(struct device *dev)
 {
        int ret;
 
-       if (dev_pm_smart_suspend_and_suspended(dev))
+       if (dev_pm_skip_suspend(dev))
                return 0;
 
        ret = pm_generic_suspend_late(dev);
@@ -1100,10 +1100,8 @@ int acpi_subsys_suspend_noirq(struct device *dev)
 {
        int ret;
 
-       if (dev_pm_smart_suspend_and_suspended(dev)) {
-               dev->power.may_skip_resume = true;
+       if (dev_pm_skip_suspend(dev))
                return 0;
-       }
 
        ret = pm_generic_suspend_noirq(dev);
        if (ret)
@@ -1116,8 +1114,8 @@ int acpi_subsys_suspend_noirq(struct device *dev)
         * acpi_subsys_complete() to take care of fixing up the device's state
         * anyway, if need be.
         */
-       dev->power.may_skip_resume = device_may_wakeup(dev) ||
-                                       !device_can_wakeup(dev);
+       if (device_can_wakeup(dev) && !device_may_wakeup(dev))
+               dev->power.may_skip_resume = false;
 
        return 0;
 }
@@ -1129,17 +1127,9 @@ EXPORT_SYMBOL_GPL(acpi_subsys_suspend_noirq);
  */
 static int acpi_subsys_resume_noirq(struct device *dev)
 {
-       if (dev_pm_may_skip_resume(dev))
+       if (dev_pm_skip_resume(dev))
                return 0;
 
-       /*
-        * Devices with DPM_FLAG_SMART_SUSPEND may be left in runtime suspend
-        * during system suspend, so update their runtime PM status to "active"
-        * as they will be put into D0 going forward.
-        */
-       if (dev_pm_smart_suspend_and_suspended(dev))
-               pm_runtime_set_active(dev);
-
        return pm_generic_resume_noirq(dev);
 }
 
@@ -1153,7 +1143,12 @@ static int acpi_subsys_resume_noirq(struct device *dev)
  */
 static int acpi_subsys_resume_early(struct device *dev)
 {
-       int ret = acpi_dev_resume(dev);
+       int ret;
+
+       if (dev_pm_skip_resume(dev))
+               return 0;
+
+       ret = acpi_dev_resume(dev);
        return ret ? ret : pm_generic_resume_early(dev);
 }
 
@@ -1218,7 +1213,7 @@ static int acpi_subsys_poweroff_late(struct device *dev)
 {
        int ret;
 
-       if (dev_pm_smart_suspend_and_suspended(dev))
+       if (dev_pm_skip_suspend(dev))
                return 0;
 
        ret = pm_generic_poweroff_late(dev);
@@ -1234,7 +1229,7 @@ static int acpi_subsys_poweroff_late(struct device *dev)
  */
 static int acpi_subsys_poweroff_noirq(struct device *dev)
 {
-       if (dev_pm_smart_suspend_and_suspended(dev))
+       if (dev_pm_skip_suspend(dev))
                return 0;
 
        return pm_generic_poweroff_noirq(dev);