aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/power/runtime.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/power/runtime.c')
-rw-r--r--drivers/base/power/runtime.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
index a80dbf08a99c..977db40378b0 100644
--- a/drivers/base/power/runtime.c
+++ b/drivers/base/power/runtime.c
@@ -64,7 +64,7 @@ static int rpm_suspend(struct device *dev, int rpmflags);
64 * runtime_status field is updated, to account the time in the old state 64 * runtime_status field is updated, to account the time in the old state
65 * correctly. 65 * correctly.
66 */ 66 */
67void update_pm_runtime_accounting(struct device *dev) 67static void update_pm_runtime_accounting(struct device *dev)
68{ 68{
69 u64 now, last, delta; 69 u64 now, last, delta;
70 70
@@ -98,7 +98,7 @@ static void __update_runtime_status(struct device *dev, enum rpm_status status)
98 dev->power.runtime_status = status; 98 dev->power.runtime_status = status;
99} 99}
100 100
101u64 pm_runtime_suspended_time(struct device *dev) 101static u64 rpm_get_accounted_time(struct device *dev, bool suspended)
102{ 102{
103 u64 time; 103 u64 time;
104 unsigned long flags; 104 unsigned long flags;
@@ -106,12 +106,22 @@ u64 pm_runtime_suspended_time(struct device *dev)
106 spin_lock_irqsave(&dev->power.lock, flags); 106 spin_lock_irqsave(&dev->power.lock, flags);
107 107
108 update_pm_runtime_accounting(dev); 108 update_pm_runtime_accounting(dev);
109 time = dev->power.suspended_time; 109 time = suspended ? dev->power.suspended_time : dev->power.active_time;
110 110
111 spin_unlock_irqrestore(&dev->power.lock, flags); 111 spin_unlock_irqrestore(&dev->power.lock, flags);
112 112
113 return time; 113 return time;
114} 114}
115
116u64 pm_runtime_active_time(struct device *dev)
117{
118 return rpm_get_accounted_time(dev, false);
119}
120
121u64 pm_runtime_suspended_time(struct device *dev)
122{
123 return rpm_get_accounted_time(dev, true);
124}
115EXPORT_SYMBOL_GPL(pm_runtime_suspended_time); 125EXPORT_SYMBOL_GPL(pm_runtime_suspended_time);
116 126
117/** 127/**