> > The "fastset mismatch" debug logging has been slightly confusing, leading > people to believe some error happened. Change it to the more informative > "fastset requirement not met", and add a final message about this leading to > full modeset. > LGTM. Reviewed-by: Suraj Kandpal <suraj.kandpal@xxxxxxxxx> > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_display.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c > b/drivers/gpu/drm/i915/display/intel_display.c > index 4b70b389e0cb..8afbaf8d1196 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -4857,7 +4857,7 @@ pipe_config_infoframe_mismatch(struct > drm_i915_private *dev_priv, > return; > > drm_dbg_kms(&dev_priv->drm, > - "fastset mismatch in %s infoframe\n", name); > + "fastset requirement not met in %s infoframe\n", > name); > drm_dbg_kms(&dev_priv->drm, "expected:\n"); > hdmi_infoframe_log(KERN_DEBUG, dev_priv->drm.dev, a); > drm_dbg_kms(&dev_priv->drm, "found:\n"); @@ -4882,7 > +4882,7 @@ pipe_config_dp_vsc_sdp_mismatch(struct drm_i915_private > *dev_priv, > return; > > drm_dbg_kms(&dev_priv->drm, > - "fastset mismatch in %s dp sdp\n", name); > + "fastset requirement not met in %s dp sdp\n", > name); > drm_dbg_kms(&dev_priv->drm, "expected:\n"); > drm_dp_vsc_sdp_log(KERN_DEBUG, dev_priv->drm.dev, a); > drm_dbg_kms(&dev_priv->drm, "found:\n"); @@ -4923,7 > +4923,7 @@ pipe_config_buffer_mismatch(struct drm_i915_private > *dev_priv, > len = memcmp_diff_len(a, b, len); > > drm_dbg_kms(&dev_priv->drm, > - "fastset mismatch in %s buffer\n", name); > + "fastset requirement not met in %s buffer\n", > name); > print_hex_dump(KERN_DEBUG, "expected: ", > DUMP_PREFIX_NONE, > 16, 0, a, len, false); > print_hex_dump(KERN_DEBUG, "found: ", > DUMP_PREFIX_NONE, @@ -4954,7 +4954,7 @@ pipe_config_mismatch(bool > fastset, const struct intel_crtc *crtc, > > if (fastset) > drm_dbg_kms(&i915->drm, > - "[CRTC:%d:%s] fastset mismatch in %s %pV\n", > + "[CRTC:%d:%s] fastset requirement not met in %s > %pV\n", > crtc->base.base.id, crtc->base.name, name, &vaf); > else > drm_err(&i915->drm, "[CRTC:%d:%s] mismatch in %s > %pV\n", @@ -5542,8 +5542,13 @@ static int intel_modeset_checks(struct > intel_atomic_state *state) static void intel_crtc_check_fastset(const struct > intel_crtc_state *old_crtc_state, > struct intel_crtc_state *new_crtc_state) { > - if (!intel_pipe_config_compare(old_crtc_state, new_crtc_state, true)) > + struct drm_i915_private *i915 = > +to_i915(old_crtc_state->uapi.crtc->dev); > + > + if (!intel_pipe_config_compare(old_crtc_state, new_crtc_state, true)) > { > + drm_dbg_kms(&i915->drm, "fastset requirement not met, > forcing full > +modeset\n"); > + > return; > + } > > new_crtc_state->uapi.mode_changed = false; > if (!intel_crtc_needs_modeset(new_crtc_state)) > -- > 2.39.2