From 3cad64a10e1a53aee4cad92d28e0f2f66be47d6e Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Wed, 1 Jul 2026 16:53:03 +0300 Subject: [PATCH] drm/{i915, xe}: add new intel_display_driver_runtime_pm_{enable, disable}() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add new high-level functions intel_display_driver_runtime_pm_enable() and intel_display_driver_runtime_pm_disable() to abstract the low-level functions intel_display_power_enable() and intel_display_power_disable(), respectively. The asymmetry in the "runtime pm enable/disable" and "pm runtime suspend/etc" naming is intentional, with the latter intended to be called from the PM hooks. Suggested-by: Ville Syrjala Reviewed-by: Rodrigo Vivi Reviewed-by: Ville Syrjälä Link: https://patch.msgid.link/c95cb644a35ede7d4d456fd1654ce0b42b6eea33.1782913901.git.jani.nikula@intel.com Signed-off-by: Jani Nikula --- drivers/gpu/drm/i915/display/intel_display_driver.c | 10 ++++++++++ drivers/gpu/drm/i915/display/intel_display_driver.h | 3 +++ drivers/gpu/drm/i915/i915_driver.c | 4 ++-- drivers/gpu/drm/xe/display/xe_display.c | 8 ++++---- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c index 5f6619b7584a..70d112fd4287 100644 --- a/drivers/gpu/drm/i915/display/intel_display_driver.c +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c @@ -888,6 +888,16 @@ void intel_display_driver_pm_resume(struct intel_display *display) intel_display_power_enable(display); } +void intel_display_driver_runtime_pm_enable(struct intel_display *display) +{ + intel_display_power_enable(display); +} + +void intel_display_driver_runtime_pm_disable(struct intel_display *display) +{ + intel_display_power_disable(display); +} + /* before irq suspend */ void intel_display_driver_pm_runtime_suspend(struct intel_display *display) { diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.h b/drivers/gpu/drm/i915/display/intel_display_driver.h index 1b494337d629..1ae2ad7e95f6 100644 --- a/drivers/gpu/drm/i915/display/intel_display_driver.h +++ b/drivers/gpu/drm/i915/display/intel_display_driver.h @@ -43,6 +43,9 @@ void intel_display_driver_suspend_access(struct intel_display *display); void intel_display_driver_resume_access(struct intel_display *display); bool intel_display_driver_check_access(struct intel_display *display); +void intel_display_driver_runtime_pm_enable(struct intel_display *display); +void intel_display_driver_runtime_pm_disable(struct intel_display *display); + void intel_display_driver_pm_runtime_suspend(struct intel_display *display); void intel_display_driver_pm_runtime_suspend_late(struct intel_display *display); void intel_display_driver_pm_runtime_resume_early(struct intel_display *display); diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c index 259b39e31547..ce6d20958320 100644 --- a/drivers/gpu/drm/i915/i915_driver.c +++ b/drivers/gpu/drm/i915/i915_driver.c @@ -638,7 +638,7 @@ static int i915_driver_register(struct drm_i915_private *dev_priv) intel_display_driver_register(display); - intel_display_power_enable(display); + intel_display_driver_runtime_pm_enable(display); intel_runtime_pm_enable(&dev_priv->runtime_pm); if (i915_switcheroo_register(dev_priv)) @@ -660,7 +660,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv) i915_switcheroo_unregister(dev_priv); intel_runtime_pm_disable(&dev_priv->runtime_pm); - intel_display_power_disable(display); + intel_display_driver_runtime_pm_disable(display); intel_display_driver_unregister(display); diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c index 92a4573db28a..e0376409d71c 100644 --- a/drivers/gpu/drm/xe/display/xe_display.c +++ b/drivers/gpu/drm/xe/display/xe_display.c @@ -158,7 +158,7 @@ void xe_display_register(struct xe_device *xe) return; intel_display_driver_register(display); - intel_display_power_enable(display); + intel_display_driver_runtime_pm_enable(display); } void xe_display_unregister(struct xe_device *xe) @@ -168,7 +168,7 @@ void xe_display_unregister(struct xe_device *xe) if (!xe->info.probe_display) return; - intel_display_power_disable(display); + intel_display_driver_runtime_pm_disable(display); intel_display_driver_unregister(display); } @@ -313,7 +313,7 @@ static void xe_display_enable_d3cold(struct xe_device *xe) * We do a lot of poking in a lot of registers, make sure they work * properly. */ - intel_display_power_disable(display); + intel_display_driver_runtime_pm_disable(display); intel_display_flush_cleanup_work(display); @@ -346,7 +346,7 @@ static void xe_display_disable_d3cold(struct xe_device *xe) intel_opregion_resume(display); - intel_display_power_enable(display); + intel_display_driver_runtime_pm_enable(display); } void xe_display_pm_runtime_suspend(struct xe_device *xe)