Even though the VRR timing generator (TG) is primarily used for variable refresh rates, it can be used for fixed refresh rates as well. For a fixed refresh rate the Flip Line and Vmax must be equal (TRANS_VRR_FLIPLINE = TRANS_VRR_VMAX). Beyond that, there are some dependencies between the VRR timings and the legacy timing generator registgers. This series is an attempt to use VRR TG for fixed refresh rate. For platforms MTL+, always go with VRR timing generator for both fixed and variable refresh rate cases. There are still few cases that need plumbing like having PSR/PSR2 with VRR timing generator. Rev2: -Added support from MTL+ and for HDMI too. -Changed VRR VSYNC programming which is required for HDMI. -Modified vrr compute config for bigjoiner case. (Still to be tested). Ankit Nautiyal (9): drm/i915/dp: fix the Adaptive sync Operation mode for SDP drm/i915/display: Get VRR compute config before get_transcoder_timing drm/i915/display: Add member fixed_rr to denote Fixed refresh rate with VRRTG drm/i915/dp: Set FAVT mode in DP SDP with fixed refresh rate drm/i915/vrr: Avoid sending PUSH when VRR TG is used with Fixed refresh rate drm/i915/vrr: Compute vrr vsync if platforms support it drm/i915/vrr: Handle joiner with vrr drm/i915/hdmi: Use VRR Timing generator for HDMI drm/i915/vrr: Use VRR timing generator whenever panel supports VRR drivers/gpu/drm/i915/display/intel_display.c | 10 +- .../drm/i915/display/intel_display_types.h | 2 +- drivers/gpu/drm/i915/display/intel_dp.c | 7 +- drivers/gpu/drm/i915/display/intel_hdmi.c | 3 + drivers/gpu/drm/i915/display/intel_vrr.c | 93 ++++++++++++------- 5 files changed, 73 insertions(+), 42 deletions(-) -- 2.40.1