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:
committed by
Rafael J. Wysocki
parent
b3db492e83
commit
e24e0630b5
@@ -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);`
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user