On Mon, Jun 15, 2026 at 03:40:46PM +0300, Jani Nikula wrote:
> 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.
> 
> Cc: Rodrigo Vivi <[email protected]>
> Suggested-by: Ville Syrjala <[email protected]>
> Signed-off-by: Jani Nikula <[email protected]>

Reviewed-by: Rodrigo Vivi <[email protected]>

> ---
>  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 67f416070fe0..a11186be9756 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_driver.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
> @@ -869,6 +869,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);
> +}
> +
>  void intel_display_driver_pm_runtime_suspend(struct intel_display *display)
>  {
>       intel_display_power_runtime_suspend(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 01aaa66e7cab..4d01168d37cf 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -659,7 +659,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))
> @@ -681,7 +681,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 a5768736dbbc..493e9e09b6c9 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -176,7 +176,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)
> @@ -186,7 +186,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);
>  }
>  
> @@ -331,7 +331,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);
>  
> @@ -364,7 +364,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)
> -- 
> 2.47.3
> 

Reply via email to