[PATCH v10 10/11] drm/i915/alpm: Add intel_psr_need_alpm() to simplify alpm check

Hogander, Jouni jouni.hogander at intel.com
Wed Apr 23 10:35:01 UTC 2025


On Wed, 2025-04-23 at 14:53 +0530, Animesh Manna wrote:
> Simplify the alpm check which will be used multiple places like
> source configuration, sink enablement etc.

Reviewed-by: Jouni Högander <jouni.hogander at intel.com>
> 
> Signed-off-by: Animesh Manna <animesh.manna at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_alpm.c | 5 +++--
>  drivers/gpu/drm/i915/display/intel_psr.c  | 6 ++++++
>  drivers/gpu/drm/i915/display/intel_psr.h  | 1 +
>  3 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c
> b/drivers/gpu/drm/i915/display/intel_alpm.c
> index 24b666e6d8f9..c4b6da2e6ccf 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
> @@ -13,6 +13,7 @@
>  #include "intel_display_types.h"
>  #include "intel_dp.h"
>  #include "intel_dp_aux.h"
> +#include "intel_psr.h"
>  #include "intel_psr_regs.h"
>  
>  bool intel_alpm_aux_wake_supported(struct intel_dp *intel_dp)
> @@ -331,8 +332,8 @@ static void lnl_alpm_configure(struct intel_dp
> *intel_dp,
>  	enum port port = dp_to_dig_port(intel_dp)->base.port;
>  	u32 alpm_ctl;
>  
> -	if (DISPLAY_VER(display) < 20 ||
> -	    (!crtc_state->has_sel_update &&
> !intel_dp_is_edp(intel_dp)))
> +	if (DISPLAY_VER(display) < 20 ||
> (!intel_psr_needs_alpm(intel_dp, crtc_state) &&
> +					  !crtc_state->has_lobf))
>  		return;
>  
>  	mutex_lock(&intel_dp->alpm_parameters.lock);
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index 43ed166007eb..1c5ec3f0b066 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -3949,3 +3949,9 @@ void intel_psr_connector_debugfs_add(struct
> intel_connector *connector)
>  		debugfs_create_file("i915_psr_status", 0444, root,
>  				    connector,
> &i915_psr_status_fops);
>  }
> +
> +bool intel_psr_needs_alpm(struct intel_dp *intel_dp, const struct
> intel_crtc_state *crtc_state)
> +{
> +	return intel_dp_is_edp(intel_dp) && (crtc_state-
> >has_sel_update ||
> +					     crtc_state-
> >has_panel_replay);
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.h
> b/drivers/gpu/drm/i915/display/intel_psr.h
> index a43a374cff55..cabaec334640 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.h
> +++ b/drivers/gpu/drm/i915/display/intel_psr.h
> @@ -69,5 +69,6 @@ void intel_psr_trigger_frame_change_event(struct
> intel_dsb *dsb,
>  					  struct intel_crtc *crtc);
>  void intel_psr_connector_debugfs_add(struct intel_connector
> *connector);
>  void intel_psr_debugfs_register(struct intel_display *display);
> +bool intel_psr_needs_alpm(struct intel_dp *intel_dp, const struct
> intel_crtc_state *crtc_state);
>  
>  #endif /* __INTEL_PSR_H__ */



More information about the Intel-xe mailing list