@@ -887,6 +887,20 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
887
887
return false;
888
888
}
889
889
890
+ /* Wa_16011303918:adl-p */
891
+ if (crtc_state -> vrr .enable &&
892
+ IS_ADLP_DISPLAY_STEP (dev_priv , STEP_A0 , STEP_B0 )) {
893
+ drm_dbg_kms (& dev_priv -> drm ,
894
+ "PSR2 not enabled, not compatible with HW stepping + VRR\n" );
895
+ return false;
896
+ }
897
+
898
+ if (!_compute_psr2_sdp_prior_scanline_indication (intel_dp , crtc_state )) {
899
+ drm_dbg_kms (& dev_priv -> drm ,
900
+ "PSR2 not enabled, PSR2 SDP indication do not fit in hblank\n" );
901
+ return false;
902
+ }
903
+
890
904
if (HAS_PSR2_SEL_FETCH (dev_priv )) {
891
905
if (!intel_psr2_sel_fetch_config_valid (intel_dp , crtc_state ) &&
892
906
!HAS_PSR_HW_TRACKING (dev_priv )) {
@@ -900,12 +914,12 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
900
914
if (!crtc_state -> enable_psr2_sel_fetch &&
901
915
IS_TGL_DISPLAY_STEP (dev_priv , STEP_A0 , STEP_C0 )) {
902
916
drm_dbg_kms (& dev_priv -> drm , "PSR2 HW tracking is not supported this Display stepping\n" );
903
- return false ;
917
+ goto unsupported ;
904
918
}
905
919
906
920
if (!psr2_granularity_check (intel_dp , crtc_state )) {
907
921
drm_dbg_kms (& dev_priv -> drm , "PSR2 not enabled, SU granularity not compatible\n" );
908
- return false ;
922
+ goto unsupported ;
909
923
}
910
924
911
925
if (!crtc_state -> enable_psr2_sel_fetch &&
@@ -914,25 +928,15 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
914
928
"PSR2 not enabled, resolution %dx%d > max supported %dx%d\n" ,
915
929
crtc_hdisplay , crtc_vdisplay ,
916
930
psr_max_h , psr_max_v );
917
- return false;
918
- }
919
-
920
- if (!_compute_psr2_sdp_prior_scanline_indication (intel_dp , crtc_state )) {
921
- drm_dbg_kms (& dev_priv -> drm ,
922
- "PSR2 not enabled, PSR2 SDP indication do not fit in hblank\n" );
923
- return false;
924
- }
925
-
926
- /* Wa_16011303918:adl-p */
927
- if (crtc_state -> vrr .enable &&
928
- IS_ADLP_DISPLAY_STEP (dev_priv , STEP_A0 , STEP_B0 )) {
929
- drm_dbg_kms (& dev_priv -> drm ,
930
- "PSR2 not enabled, not compatible with HW stepping + VRR\n" );
931
- return false;
931
+ goto unsupported ;
932
932
}
933
933
934
934
tgl_dc3co_exitline_compute_config (intel_dp , crtc_state );
935
935
return true;
936
+
937
+ unsupported :
938
+ crtc_state -> enable_psr2_sel_fetch = false;
939
+ return false;
936
940
}
937
941
938
942
void intel_psr_compute_config (struct intel_dp * intel_dp ,
0 commit comments