mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
drm/xe/display: Extract xe_display_pm_runtime_suspend_late()
The current behavior for the runtime suspend case is that
xe_display_pm_suspend_late() is only called when D3cold is allowed.
Let's incorporate that behavior into a function specific to runtime PM
and call it xe_display_pm_runtime_suspend_late().
With that, we keep stuff a bit more self-contained and allow having a
place for adding more "late display runtime suspend"-related logic that
isn't dependent on the "D3cold allowed" state.
v2:
- Fix typo in that caused xe_display_pm_runtime_suspend_late() to call
itself instead of xe_display_pm_suspend_late().
- Add the empty version of xe_display_pm_runtime_suspend_late() for
the !CONFIG_DRM_XE_DISPLAY case.
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241129164010.29887-3-gustavo.sousa@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
committed by
Rodrigo Vivi
parent
f71212f5cb
commit
a72f1bbf0c
@@ -402,6 +402,15 @@ void xe_display_pm_suspend_late(struct xe_device *xe)
|
||||
intel_display_power_suspend_late(xe, s2idle);
|
||||
}
|
||||
|
||||
void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
|
||||
{
|
||||
if (!xe->info.probe_display)
|
||||
return;
|
||||
|
||||
if (xe->d3cold.allowed)
|
||||
xe_display_pm_suspend_late(xe);
|
||||
}
|
||||
|
||||
void xe_display_pm_shutdown_late(struct xe_device *xe)
|
||||
{
|
||||
if (!xe->info.probe_display)
|
||||
|
||||
@@ -41,6 +41,7 @@ void xe_display_pm_shutdown_late(struct xe_device *xe);
|
||||
void xe_display_pm_resume_early(struct xe_device *xe);
|
||||
void xe_display_pm_resume(struct xe_device *xe);
|
||||
void xe_display_pm_runtime_suspend(struct xe_device *xe);
|
||||
void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
|
||||
void xe_display_pm_runtime_resume(struct xe_device *xe);
|
||||
|
||||
#else
|
||||
@@ -74,6 +75,7 @@ static inline void xe_display_pm_shutdown_late(struct xe_device *xe) {}
|
||||
static inline void xe_display_pm_resume_early(struct xe_device *xe) {}
|
||||
static inline void xe_display_pm_resume(struct xe_device *xe) {}
|
||||
static inline void xe_display_pm_runtime_suspend(struct xe_device *xe) {}
|
||||
static inline void xe_display_pm_runtime_suspend_late(struct xe_device *xe) {}
|
||||
static inline void xe_display_pm_runtime_resume(struct xe_device *xe) {}
|
||||
|
||||
#endif /* CONFIG_DRM_XE_DISPLAY */
|
||||
|
||||
@@ -414,8 +414,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
|
||||
|
||||
xe_irq_suspend(xe);
|
||||
|
||||
if (xe->d3cold.allowed)
|
||||
xe_display_pm_suspend_late(xe);
|
||||
xe_display_pm_runtime_suspend_late(xe);
|
||||
|
||||
out:
|
||||
if (err)
|
||||
xe_display_pm_runtime_resume(xe);
|
||||
|
||||
Reference in New Issue
Block a user