Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 267075
b: refs/heads/master
c: 857b36c
h: refs/heads/master
i:
  267073: a6ddf24
  267071: bc4d8db
v: v3
  • Loading branch information
Ming Lei authored and Rafael J. Wysocki committed Oct 16, 2011
1 parent d61ef4d commit 85bcac4
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 47d8f0bac0fda4c15a030f92cd6da6c6bed87459
refs/heads/master: 857b36c7b038ac56a882ee914df93e5985443074
25 changes: 13 additions & 12 deletions trunk/drivers/base/power/runtime.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,11 +291,11 @@ static int rpm_callback(int (*cb)(struct device *), struct device *dev)
* another suspend has been started earlier, either return immediately
* or wait for it to finish, depending on the RPM_NOWAIT and RPM_ASYNC
* flags. If the RPM_ASYNC flag is set then queue a suspend request;
* otherwise run the ->runtime_suspend() callback directly. If a deferred
* resume was requested while the callback was running then carry it out;
* otherwise send an idle notification for its parent (if the suspend
* succeeded and both ignore_children of parent->power and irq_safe of
* dev->power are not set).
* otherwise run the ->runtime_suspend() callback directly. When
* ->runtime_suspend succeeded, if a deferred resume was requested while
* the callback was running then carry it out, otherwise send an idle
* notification for its parent (if the suspend succeeded and both
* ignore_children of parent->power and irq_safe of dev->power are not set).
*
* This function must be called under dev->power.lock with interrupts disabled.
*/
Expand Down Expand Up @@ -420,15 +420,16 @@ static int rpm_suspend(struct device *dev, int rpmflags)
dev->power.runtime_error = 0;
else
pm_runtime_cancel_pending(dev);
} else {
wake_up_all(&dev->power.wait_queue);
goto out;
}
no_callback:
__update_runtime_status(dev, RPM_SUSPENDED);
pm_runtime_deactivate_timer(dev);
__update_runtime_status(dev, RPM_SUSPENDED);
pm_runtime_deactivate_timer(dev);

if (dev->parent) {
parent = dev->parent;
atomic_add_unless(&parent->power.child_count, -1, 0);
}
if (dev->parent) {
parent = dev->parent;
atomic_add_unless(&parent->power.child_count, -1, 0);
}
wake_up_all(&dev->power.wait_queue);

Expand Down

0 comments on commit 85bcac4

Please sign in to comment.