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.hogan...@intel.com>
> 
> Signed-off-by: Animesh Manna <animesh.ma...@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__ */

Reply via email to