On Fri, May 29, 2026 at 02:04:05PM +0300, Jani Nikula wrote:
> The calls to intel_display_driver_pm_resume() are preceded with similar
> calls. Move the calls inside intel_display_driver_pm_resume().
> 
> In i915 the calls are interspersed among other things, so this is a
> functional change. Fingers crossed.
> 
> There's a slight functional change in that
> intel_display_driver_pm_resume() returns early for
> !HAS_DISPLAY(). Assume this is what we want, and there are no cases
> where display engine is present but all pipes have been fused off.
> 
> Signed-off-by: Jani Nikula <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_display_driver.c | 6 ++++++
>  drivers/gpu/drm/i915/i915_driver.c                  | 8 --------
>  drivers/gpu/drm/xe/display/xe_display.c             | 7 -------
>  3 files changed, 6 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c 
> b/drivers/gpu/drm/i915/display/intel_display_driver.c
> index 1525ff7a1dc2..84807a9bff2b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_driver.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
> @@ -831,6 +831,12 @@ void intel_display_driver_pm_resume(struct intel_display 
> *display)
>       if (!HAS_DISPLAY(display))
>               return;
>  
> +     intel_dmc_resume(display);
> +
> +     drm_mode_config_reset(display->drm);
> +
> +     intel_display_driver_init_hw(display);
> +
>       intel_display_driver_resume_access(display);
>  
>       intel_hpd_init(display);
> diff --git a/drivers/gpu/drm/i915/i915_driver.c 
> b/drivers/gpu/drm/i915/i915_driver.c
> index 7d0f98cbf5d9..6b9e1b268a89 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -57,7 +57,6 @@
>  #include "display/intel_display_device.h"
>  #include "display/intel_display_driver.h"
>  #include "display/intel_display_power.h"
> -#include "display/intel_dmc.h"
>  #include "display/intel_dp.h"
>  #include "display/intel_dpt.h"
>  #include "display/intel_dram.h"
> @@ -1233,8 +1232,6 @@ static int i915_drm_resume(struct drm_device *dev)
>       /* Must be called after GGTT is resumed. */
>       intel_dpt_resume(display);
>  
> -     intel_dmc_resume(display);
> -
>       i9xx_display_sr_restore(display);
>  
>       intel_gmbus_reset(display);
> @@ -1255,13 +1252,8 @@ static int i915_drm_resume(struct drm_device *dev)
>        */
>       intel_irq_resume(dev_priv);
>  
> -     if (intel_display_device_present(display))
> -             drm_mode_config_reset(dev);
> -
>       i915_gem_resume(dev_priv);
>  
> -     intel_display_driver_init_hw(display);
> -
>       intel_clock_gating_init(&dev_priv->drm);

Apparently intel_display_driver_init_hw() is the
init_clock_gating() for icl+, and it looks like we still 
haven't finished the actual init_clock_gating() display
vs. gt split. Would have been nice to move all the display
clock gating stuff in one go to the same place. But so far
it looks like a clean split between icl+ vs. pre-icl (ie.
no platforms that do both) so seems safe enough to move
just one of them I guess.

Can't immediately think of any weird dependencies here so
Reviewed-by: Ville Syrjälä <[email protected]>

>  
>       intel_display_driver_pm_resume(display);
> diff --git a/drivers/gpu/drm/xe/display/xe_display.c 
> b/drivers/gpu/drm/xe/display/xe_display.c
> index 73891b36341b..b153bf9c83d8 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -301,13 +301,6 @@ void xe_display_pm_resume(struct xe_device *xe)
>       if (!xe->info.probe_display)
>               return;
>  
> -     intel_dmc_resume(display);
> -
> -     if (intel_display_device_present(display))
> -             drm_mode_config_reset(&xe->drm);
> -
> -     intel_display_driver_init_hw(display);
> -
>       intel_display_driver_pm_resume(display);
>  }
>  
> -- 
> 2.47.3

-- 
Ville Syrjälä
Intel

Reply via email to