AS SDP for Panel Replay with AUX-less ALPM and the related
DP_FIXED_VTOTAL_AS_SDP_EN_IN_PR_ACTIVE setting are limited to eDP by
intel_psr_needs_alpm_aux_less(). DP Panel Replay can now use AUX-less
ALPM as well, so base these on the ALPM state instead.

has_alpm is decided only in the late compute config, after AS SDP has
been computed. Use alpm_state.aux_less_possible to decide whether AS
SDP is needed, and has_alpm for the link training DPCD setting, which
happens with the final state.

intel_psr_needs_alpm_aux_less() is now used only within intel_psr.c,
so make it static.

Cc: Jouni Högander <[email protected]>
Signed-off-by: Animesh Manna <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp.c               | 4 +++-
 drivers/gpu/drm/i915/display/intel_dp_link_training.c | 2 +-
 drivers/gpu/drm/i915/display/intel_psr.c              | 4 ++--
 drivers/gpu/drm/i915/display/intel_psr.h              | 2 --
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 43b17d2ed93f..02ea3f2b00ac 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -3274,7 +3274,9 @@ static bool intel_dp_needs_as_sdp(struct intel_dp 
*intel_dp,
        if (drm_dp_is_branch(intel_dp->dpcd))
                return false;
 
-       if (intel_psr_needs_alpm_aux_less(intel_dp, crtc_state) &&
+       /* has_alpm is not final yet, so check if AUX-less ALPM is possible */
+       if (crtc_state->has_panel_replay &&
+           crtc_state->alpm_state.aux_less_possible &&
            !intel_psr_pr_async_video_timing_supported(intel_dp))
                return true;
 
diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c 
b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
index 0dbc6174c402..c7a3cfd29e37 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
@@ -1124,7 +1124,7 @@ static bool
 intel_dp_pr_with_as_sdp_enabled(struct intel_dp *intel_dp,
                                const struct intel_crtc_state *crtc_state)
 {
-       return intel_psr_needs_alpm_aux_less(intel_dp, crtc_state) &&
+       return crtc_state->has_panel_replay && crtc_state->has_alpm &&
                (crtc_state->infoframes.enable &
                 intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC));
 }
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index 4c429a14b50e..0875de33f0da 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -4566,8 +4566,8 @@ static bool intel_psr_needs_alpm(struct intel_dp 
*intel_dp,
                                             crtc_state->has_panel_replay);
 }
 
-bool intel_psr_needs_alpm_aux_less(struct intel_dp *intel_dp,
-                                  const struct intel_crtc_state *crtc_state)
+static bool intel_psr_needs_alpm_aux_less(struct intel_dp *intel_dp,
+                                         const struct intel_crtc_state 
*crtc_state)
 {
        return intel_dp_is_edp(intel_dp) && 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 2557776a402b..8adb27c21408 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.h
+++ b/drivers/gpu/drm/i915/display/intel_psr.h
@@ -79,8 +79,6 @@ void intel_psr_trigger_frame_change_event(struct intel_dsb 
*dsb,
 int intel_psr_min_set_context_latency(const struct intel_crtc_state 
*crtc_state);
 void intel_psr_connector_debugfs_add(struct intel_connector *connector);
 void intel_psr_debugfs_register(struct intel_display *display);
-bool intel_psr_needs_alpm_aux_less(struct intel_dp *intel_dp,
-                                  const struct intel_crtc_state *crtc_state);
 bool intel_psr_wake_lines_fit_into_vblank(const struct intel_crtc_state 
*crtc_state,
                                          int wake_lines);
 void intel_psr_compute_config_late(struct intel_dp *intel_dp,
-- 
2.43.0

Reply via email to