From: Ville Syrjälä <ville.syrj...@linux.intel.com>

Don't perform a seamless M/N update if the values aren't actually
changing. This avoids doing extra shenanigans during vblank evasion
needlessly.

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 6196ef76390b..c20eaf0e7a91 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5525,7 +5525,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))
-- 
2.41.0

Reply via email to