There are monitors being sensitive to MSA and end up
blanking out when we override Vtotal, DP transcoder
uses TRANS_VTOTAL to derive MSA VTotal. Avoid overriding
crtc_vtotal to 1 on platform which supports VRR Timing
generator and always program VTOTAL from mode timing in
transcoder timing paths.

--v2:
- Remove write to crtc_state->hw.adjusted_mode.crtc_vtotal
during intel_vrr_get_config. (Ankit)

Bspec: 70001
Cc: Ankit Nautiyal <[email protected]>
Cc: Ville Syrjälä <[email protected]>
Cc: Suraj Kandpal <[email protected]>
Signed-off-by: Mitul Golani <[email protected]>
Reviewed-by: Suraj Kandpal <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display.c | 17 -----------------
 drivers/gpu/drm/i915/display/intel_vrr.c     | 10 ----------
 2 files changed, 27 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index e2e4b00a8fa9..eb54f20b1859 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2731,15 +2731,6 @@ static void intel_set_transcoder_timings(const struct 
intel_crtc_state *crtc_sta
                       HSYNC_START(adjusted_mode->crtc_hsync_start - 1) |
                       HSYNC_END(adjusted_mode->crtc_hsync_end - 1));
 
-       /*
-        * For platforms that always use VRR Timing Generator, the VTOTAL.Vtotal
-        * bits are not required. Since the support for these bits is going to
-        * be deprecated in upcoming platforms, avoid writing these bits for the
-        * platforms that do not use legacy Timing Generator.
-        */
-       if (intel_vrr_always_use_vrr_tg(display))
-               crtc_vtotal = 1;
-
        intel_de_write(display, TRANS_VTOTAL(display, cpu_transcoder),
                       VACTIVE(crtc_vdisplay - 1) |
                       VTOTAL(crtc_vtotal - 1));
@@ -2826,14 +2817,6 @@ static void intel_set_transcoder_timings_lrr(const 
struct intel_crtc_state *crtc
        intel_de_write(display, TRANS_VSYNC(display, cpu_transcoder),
                       VSYNC_START(adjusted_mode->crtc_vsync_start - 1) |
                       VSYNC_END(adjusted_mode->crtc_vsync_end - 1));
-       /*
-        * For platforms that always use VRR Timing Generator, the VTOTAL.Vtotal
-        * bits are not required. Since the support for these bits is going to
-        * be deprecated in upcoming platforms, avoid writing these bits for the
-        * platforms that do not use legacy Timing Generator.
-        */
-       if (intel_vrr_always_use_vrr_tg(display))
-               crtc_vtotal = 1;
 
        /*
         * The double buffer latch point for TRANS_VTOTAL
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c 
b/drivers/gpu/drm/i915/display/intel_vrr.c
index e03b5daac5be..bd90282b2ad2 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -1097,16 +1097,6 @@ void intel_vrr_get_config(struct intel_crtc_state 
*crtc_state)
                        crtc_state->vrr.vmin += 
intel_vrr_vmin_flipline_offset(display);
                }
 
-               /*
-                * For platforms that always use VRR Timing Generator, the 
VTOTAL.Vtotal
-                * bits are not filled. Since for these platforms TRAN_VMIN is 
always
-                * filled with crtc_vtotal, use TRAN_VRR_VMIN to get the vtotal 
for
-                * adjusted_mode.
-                */
-               if (intel_vrr_always_use_vrr_tg(display))
-                       crtc_state->hw.adjusted_mode.crtc_vtotal =
-                               intel_vrr_vmin_vtotal(crtc_state);
-
                if (HAS_AS_SDP(display)) {
                        trans_vrr_vsync =
                                intel_de_read(display,
-- 
2.48.1

Reply via email to