1
0

PM: runtime: Mark last busy stamp in pm_runtime_put_sync_autosuspend()

Set device's last busy timestamp to current time in
pm_runtime_put_sync_autosuspend().

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patch.msgid.link/20250616061212.2286741-4-sakari.ailus@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Sakari Ailus
2025-06-16 09:12:09 +03:00
committed by Rafael J. Wysocki
parent b3db492e83
commit e24e0630b5
2 changed files with 9 additions and 5 deletions

View File

@@ -428,7 +428,8 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h:
pm_runtime_suspend(dev) and return its result pm_runtime_suspend(dev) and return its result
`int pm_runtime_put_sync_autosuspend(struct device *dev);` `int pm_runtime_put_sync_autosuspend(struct device *dev);`
- decrement the device's usage counter; if the result is 0 then run - set the power.last_busy field to the current time and decrement the
device's usage counter; if the result is 0 then run
pm_runtime_autosuspend(dev) and return its result pm_runtime_autosuspend(dev) and return its result
`void pm_runtime_enable(struct device *dev);` `void pm_runtime_enable(struct device *dev);`

View File

@@ -651,12 +651,14 @@ static inline int pm_runtime_put_sync_suspend(struct device *dev)
} }
/** /**
* pm_runtime_put_sync_autosuspend - Drop device usage counter and autosuspend if 0. * pm_runtime_put_sync_autosuspend - Update the last access time of a device,
* drop device usage counter and autosuspend if 0.
* @dev: Target device. * @dev: Target device.
* *
* Decrement the runtime PM usage counter of @dev and if it turns out to be * Update the last access time of @dev, decrement the runtime PM usage counter
* equal to 0, set up autosuspend of @dev or suspend it synchronously (depending * of @dev and if it turns out to be equal to 0, set up autosuspend of @dev or
* on whether or not autosuspend has been enabled for it). * suspend it synchronously (depending on whether or not autosuspend has been
* enabled for it).
* *
* The runtime PM usage counter of @dev remains decremented in all cases, even * The runtime PM usage counter of @dev remains decremented in all cases, even
* if it returns an error code. * if it returns an error code.
@@ -676,6 +678,7 @@ static inline int pm_runtime_put_sync_suspend(struct device *dev)
*/ */
static inline int pm_runtime_put_sync_autosuspend(struct device *dev) static inline int pm_runtime_put_sync_autosuspend(struct device *dev)
{ {
pm_runtime_mark_last_busy(dev);
return __pm_runtime_suspend(dev, RPM_GET_PUT | RPM_AUTO); return __pm_runtime_suspend(dev, RPM_GET_PUT | RPM_AUTO);
} }