[PATCH v15 0/9] Implement CMRR Support
Kandpal, Suraj
suraj.kandpal at intel.com
Tue Jun 11 04:34:02 UTC 2024
> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf Of Mitul
> Golani
> Sent: Monday, June 10, 2024 8:18 AM
> To: intel-gfx at lists.freedesktop.org
> Cc: Nautiyal, Ankit K <ankit.k.nautiyal at intel.com>
> Subject: [PATCH v15 0/9] Implement CMRR Support
>
> CMRR is a display feature that uses adaptive sync framework to vary Vtotal
> slightly to match the content rate exactly without frame drops. This feature is a
> variation of VRR where it varies Vtotal slightly (between additional 0 and 1
> Vtotal scanlines) to match content rate exactly without frame drops using the
> adaptive sync framework.
>
> enable this feature by programing new registers for CMRR enable, CMRR_M,
> CMRR_N, vmin=vmax=flipline.The CMRR_M/CMRR_N ratio represents the
> fractional part in (actual refresh rate/target refresh rate) * origVTotal.
>
> --v6:
> - CMRR handling in co-existatnce of LRR and DRRS
> - Correct vtotal paramas accuracy and add 2 digit precision.
>
> --v7:
> - Rebased patches in-accordance to AS SDP merge.
> - Add neccessary gaurd to prevent crtc_state mismatch during
> intel_vrr_get_config.
>
> -v8:
> - Add support for AS SDP for CMRR.
> - update palce holder for CMRR register(Jani).
> - Make CMRR as subset of FAVT, as per comments in patch#3.
>
> -v9:
> - Add CMRR register definitions to separate intel_vrr_reg.h.
> - Remove cmrr_enabling/disabling, use vrr.enable instead.
> - Update AS SDP pack function to accomodate target_rr_divider.
> - Remove duplicated lines to compute vrr_vsync params.
> - Set cmrr.enable with a separate patch at last.
>
> -v10:
> - Separate VRR related register definitions.
> - Add dependency header intel_display_reg_defs.h.
> - Rename file name to intel_vrr_regs.h instead of reg.h.
> - Revert removed line.
> - Since vrr.enable and cmrr.enable are not mutually exclusive, handle
> accordingly.
> - is_edp is not required inside is_cmrr_frac_required function.
> - Add video_mode_required flag for future enhancement.
> - Correct cmrr_m/cmrr_n calculation.
> - target_rr_divider is bools so handle accordingly.
>
> -v11:
> - Move VRR related register and bits to separate file intel_vrr_regs.h.
> - Correct file header macro to intel_vrr_regs.h.
> - Remove adding CMRR flag to vrr_ctl register during set_transcoder_timing.
> - Replace vrr.enable flag to cmrr.enable where added mistakenly.
> - Move cmrr computation patch to last and set other other required
> params before computing cmrr.enable.
>
> -v12:
> - Add patch to fix check patch issues for VRR related registers in i915_reg.h
> then move them to intel_vrr_regs.h with separate patch.
>
> -v13:
> - Reverted unrelated patches while rebase.
>
> -v14:
> - Fix all indentations for VRR related registes in Patch#1
>
> -v15:
> - Rebase.
>
Thanks for the patches and reviews everyone
Pushed-to drm-intel-next
> Mitul Golani (9):
> gpu/drm/i915: Update indentation for VRR registers and bits
> drm/i915: Separate VRR related register definitions
> drm/i915: Define and compute Transcoder CMRR registers
> drm/i915: Update trans_vrr_ctl flag when cmrr is computed
> drm/dp: Add refresh rate divider to struct representing AS SDP
> drm/i915/display: Add support for pack and unpack
> drm/i915/display: Compute Adaptive sync SDP params
> drm/i915/display: Compute vrr vsync params
> drm/i915: Compute CMRR and calculate vtotal
>
> drivers/gpu/drm/i915/display/intel_display.c | 24 +++-
> .../drm/i915/display/intel_display_device.h | 1 +
> .../drm/i915/display/intel_display_types.h | 6 +
> drivers/gpu/drm/i915/display/intel_dp.c | 18 ++-
> drivers/gpu/drm/i915/display/intel_vrr.c | 128 ++++++++++++++++--
> drivers/gpu/drm/i915/display/intel_vrr_regs.h | 127 +++++++++++++++++
> drivers/gpu/drm/i915/i915_reg.h | 100 --------------
> include/drm/display/drm_dp_helper.h | 1 +
> 8 files changed, 286 insertions(+), 119 deletions(-) create mode 100644
> drivers/gpu/drm/i915/display/intel_vrr_regs.h
>
> --
> 2.25.1
More information about the Intel-gfx
mailing list