mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 05:02:12 +00:00
PM-runtime: Call pm_runtime_active|suspended_time() from sysfs
Avoid the open-coding of the accounted time acquisition in runtime_active|suspend_time_show() and make them call pm_runtime_active|suspended_time() instead. Note that this change also indirectly avoids holding dev->power.lock around the do_div() computation and the sprintf() call which is an additional improvement. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
fdc56c0732
commit
0996584b30
@ -64,7 +64,7 @@ static int rpm_suspend(struct device *dev, int rpmflags);
|
||||
* runtime_status field is updated, to account the time in the old state
|
||||
* correctly.
|
||||
*/
|
||||
void update_pm_runtime_accounting(struct device *dev)
|
||||
static void update_pm_runtime_accounting(struct device *dev)
|
||||
{
|
||||
u64 now, last, delta;
|
||||
|
||||
|
@ -125,13 +125,9 @@ static ssize_t runtime_active_time_show(struct device *dev,
|
||||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
int ret;
|
||||
u64 tmp;
|
||||
spin_lock_irq(&dev->power.lock);
|
||||
update_pm_runtime_accounting(dev);
|
||||
tmp = dev->power.active_time;
|
||||
u64 tmp = pm_runtime_active_time(dev);
|
||||
do_div(tmp, NSEC_PER_MSEC);
|
||||
ret = sprintf(buf, "%llu\n", tmp);
|
||||
spin_unlock_irq(&dev->power.lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -141,13 +137,9 @@ static ssize_t runtime_suspended_time_show(struct device *dev,
|
||||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
int ret;
|
||||
u64 tmp;
|
||||
spin_lock_irq(&dev->power.lock);
|
||||
update_pm_runtime_accounting(dev);
|
||||
tmp = dev->power.suspended_time;
|
||||
u64 tmp = pm_runtime_suspended_time(dev);
|
||||
do_div(tmp, NSEC_PER_MSEC);
|
||||
ret = sprintf(buf, "%llu\n", tmp);
|
||||
spin_unlock_irq(&dev->power.lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -643,7 +643,6 @@ struct dev_pm_info {
|
||||
struct dev_pm_qos *qos;
|
||||
};
|
||||
|
||||
extern void update_pm_runtime_accounting(struct device *dev);
|
||||
extern int dev_pm_get_subsys_data(struct device *dev);
|
||||
extern void dev_pm_put_subsys_data(struct device *dev);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user