aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Vivi <[email protected]>2023-07-25 18:11:57 -0400
committerRodrigo Vivi <[email protected]>2023-12-21 11:39:15 -0500
commitbba2ec4144f5a7683d9a26cafffca6031361ee66 (patch)
tree9ba160fe18a2238809025e2ebc940265360e5687
parente07aa913161b0338708887a5e78bf57ffdfe67fa (diff)
drm/xe: Fix the runtime_idle call and d3cold.allowed decision.
According to Documentation/power/runtime_pm.txt: int pm_runtime_put(struct device *dev); - decrement the device's usage counter; if the result is 0 then run pm_request_idle(dev) and return its result int pm_runtime_put_autosuspend(struct device *dev); - decrement the device's usage counter; if the result is 0 then run pm_request_autosuspend(dev) and return its result We need to ensure that the idle function is called before suspending so we take the right d3cold.allowed decision and respect the values set on vram_d3cold_threshold sysfs. So we need pm_runtime_put() instead of pm_runtime_put_autosuspend(). Cc: Anshuman Gupta <[email protected]> Reviewed-by: Anshuman Gupta <[email protected]> Tested-by: Anshuman Gupta <[email protected]> Signed-off-by: Rodrigo Vivi <[email protected]>
-rw-r--r--drivers/gpu/drm/xe/xe_pm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 1c62900d29d8..310e413c91a4 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -133,7 +133,7 @@ static void xe_pm_runtime_init(struct xe_device *xe)
pm_runtime_set_active(dev);
pm_runtime_allow(dev);
pm_runtime_mark_last_busy(dev);
- pm_runtime_put_autosuspend(dev);
+ pm_runtime_put(dev);
}
void xe_pm_init(struct xe_device *xe)
@@ -289,7 +289,7 @@ int xe_pm_runtime_get(struct xe_device *xe)
int xe_pm_runtime_put(struct xe_device *xe)
{
pm_runtime_mark_last_busy(xe->drm.dev);
- return pm_runtime_put_autosuspend(xe->drm.dev);
+ return pm_runtime_put(xe->drm.dev);
}
int xe_pm_runtime_get_if_active(struct xe_device *xe)