summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2023-09-01 16:04:34 +0300
committerVille Syrjälä <ville.syrjala@linux.intel.com>2023-09-20 22:29:43 +0300
commitb4ac591b8e1be78c4eaf089e75034760c0be942c (patch)
tree0e620b61d1380d8949fdb90b950b3af21a494398
parent825edc8bc72f3266534a04e9a4447b12332fac82 (diff)
drm/i915: Optimize out redundant M/N updates
Don't perform a seamless M/N update if the values aren't actually changing. This avoids doing extra shenanigans during vblank evasion needlessly. Cc: Manasi Navare <navaremanasi@chromium.org> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-7-ville.syrjala@linux.intel.com Reviewed-by: Manasi Navare <navaremanasi@chromium.org>
-rw-r--r--drivers/gpu/drm/i915/display/intel_display.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 22ed72c7d6bf..d3c41bf49263 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5557,7 +5557,9 @@ static void intel_crtc_check_fastset(const struct intel_crtc_state *old_crtc_sta
else
new_crtc_state->uapi.mode_changed = false;
- if (intel_crtc_needs_modeset(new_crtc_state))
+ if (intel_crtc_needs_modeset(new_crtc_state) ||
+ intel_compare_link_m_n(&old_crtc_state->dp_m_n,
+ &new_crtc_state->dp_m_n))
new_crtc_state->update_m_n = false;
if (!intel_crtc_needs_modeset(new_crtc_state))