|
@@ -63,7 +63,7 @@ static int async_error;
|
|
|
*/
|
|
|
void device_pm_init(struct device *dev)
|
|
|
{
|
|
|
- dev->power.status = DPM_ON;
|
|
|
+ dev->power.in_suspend = false;
|
|
|
init_completion(&dev->power.completion);
|
|
|
complete_all(&dev->power.completion);
|
|
|
dev->power.wakeup = NULL;
|
|
@@ -98,7 +98,7 @@ void device_pm_add(struct device *dev)
|
|
|
kobject_name(&dev->kobj));
|
|
|
mutex_lock(&dpm_list_mtx);
|
|
|
if (dev->parent) {
|
|
|
- if (dev->parent->power.status >= DPM_SUSPENDING)
|
|
|
+ if (dev->parent->power.in_suspend)
|
|
|
dev_warn(dev, "parent %s should not be sleeping\n",
|
|
|
dev_name(dev->parent));
|
|
|
} else if (transition_started) {
|
|
@@ -488,7 +488,6 @@ void dpm_resume_noirq(pm_message_t state)
|
|
|
int error;
|
|
|
|
|
|
get_device(dev);
|
|
|
- dev->power.status = DPM_OFF;
|
|
|
list_move_tail(&dev->power.entry, &dpm_suspended_list);
|
|
|
mutex_unlock(&dpm_list_mtx);
|
|
|
|
|
@@ -541,7 +540,7 @@ static int device_resume(struct device *dev, pm_message_t state, bool async)
|
|
|
dpm_wait(dev->parent, async);
|
|
|
device_lock(dev);
|
|
|
|
|
|
- dev->power.status = DPM_RESUMING;
|
|
|
+ dev->power.in_suspend = false;
|
|
|
|
|
|
if (dev->bus) {
|
|
|
if (dev->bus->pm) {
|
|
@@ -690,7 +689,7 @@ static void dpm_complete(pm_message_t state)
|
|
|
struct device *dev = to_device(dpm_prepared_list.prev);
|
|
|
|
|
|
get_device(dev);
|
|
|
- dev->power.status = DPM_ON;
|
|
|
+ dev->power.in_suspend = false;
|
|
|
list_move(&dev->power.entry, &list);
|
|
|
mutex_unlock(&dpm_list_mtx);
|
|
|
|
|
@@ -806,7 +805,6 @@ int dpm_suspend_noirq(pm_message_t state)
|
|
|
put_device(dev);
|
|
|
break;
|
|
|
}
|
|
|
- dev->power.status = DPM_OFF_IRQ;
|
|
|
if (!list_empty(&dev->power.entry))
|
|
|
list_move(&dev->power.entry, &dpm_noirq_list);
|
|
|
put_device(dev);
|
|
@@ -894,9 +892,6 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (!error)
|
|
|
- dev->power.status = DPM_OFF;
|
|
|
-
|
|
|
End:
|
|
|
device_unlock(dev);
|
|
|
complete_all(&dev->power.completion);
|
|
@@ -1030,7 +1025,6 @@ static int dpm_prepare(pm_message_t state)
|
|
|
struct device *dev = to_device(dpm_list.next);
|
|
|
|
|
|
get_device(dev);
|
|
|
- dev->power.status = DPM_PREPARING;
|
|
|
mutex_unlock(&dpm_list_mtx);
|
|
|
|
|
|
pm_runtime_get_noresume(dev);
|
|
@@ -1046,7 +1040,6 @@ static int dpm_prepare(pm_message_t state)
|
|
|
|
|
|
mutex_lock(&dpm_list_mtx);
|
|
|
if (error) {
|
|
|
- dev->power.status = DPM_ON;
|
|
|
if (error == -EAGAIN) {
|
|
|
put_device(dev);
|
|
|
error = 0;
|
|
@@ -1058,7 +1051,7 @@ static int dpm_prepare(pm_message_t state)
|
|
|
put_device(dev);
|
|
|
break;
|
|
|
}
|
|
|
- dev->power.status = DPM_SUSPENDING;
|
|
|
+ dev->power.in_suspend = true;
|
|
|
if (!list_empty(&dev->power.entry))
|
|
|
list_move_tail(&dev->power.entry, &dpm_prepared_list);
|
|
|
put_device(dev);
|