Commit 18c1fe53 authored by Sakari Ailus's avatar Sakari Ailus Committed by Rafael J. Wysocki
Browse files

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



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

Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patch.msgid.link/20250616061212.2286741-6-sakari.ailus@linux.intel.com


Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 08071e64
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -354,9 +354,9 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h:
      success or error code if the request has not been queued up

  `int pm_request_autosuspend(struct device *dev);`
    - schedule the execution of the subsystem-level suspend callback for the
      device when the autosuspend delay has expired; if the delay has already
      expired then the work item is queued up immediately
    - Call pm_runtime_mark_last_busy() and schedule the execution of the
      subsystem-level suspend callback for the device when the autosuspend delay
      expires

  `int pm_schedule_suspend(struct device *dev, unsigned int delay);`
    - schedule the execution of the subsystem-level suspend callback for the
+5 −3
Original line number Diff line number Diff line
@@ -448,11 +448,12 @@ static inline int pm_request_resume(struct device *dev)
}

/**
 * pm_request_autosuspend - Queue up autosuspend of a device.
 * pm_request_autosuspend - Update the last access time and queue up autosuspend
 * of a device.
 * @dev: Target device.
 *
 * Queue up a work item to run an equivalent pm_runtime_autosuspend() for @dev
 * asynchronously.
 * Update the last access time of a device and queue up a work item to run an
 * equivalent pm_runtime_autosuspend() for @dev asynchronously.
 *
 * Return:
 * * 0: Success.
@@ -467,6 +468,7 @@ static inline int pm_request_resume(struct device *dev)
 */
static inline int pm_request_autosuspend(struct device *dev)
{
	pm_runtime_mark_last_busy(dev);
	return __pm_runtime_suspend(dev, RPM_ASYNC | RPM_AUTO);
}