Commit 802e5d02 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Include CRTC info in infoframe mismatch prints



Most crtc state mismatches include the CRTC id+name in the
prints. Also include it in the infoframe mismatches.

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240215164055.30585-3-ville.syrjala@linux.intel.com


Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 736355f9
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -4798,23 +4798,27 @@ intel_compare_buffer(const u8 *a, const u8 *b, size_t len)
}

static void
pipe_config_infoframe_mismatch(struct drm_i915_private *dev_priv,
			       bool fastset, const char *name,
pipe_config_infoframe_mismatch(bool fastset, const struct intel_crtc *crtc,
			       const char *name,
			       const union hdmi_infoframe *a,
			       const union hdmi_infoframe *b)
{
	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);

	if (fastset) {
		if (!drm_debug_enabled(DRM_UT_KMS))
			return;

		drm_dbg_kms(&dev_priv->drm,
			    "fastset requirement not met in %s infoframe\n", name);
			    "[CRTC:%d:%s] fastset requirement not met in %s infoframe\n",
			    crtc->base.base.id, crtc->base.name, 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");
		hdmi_infoframe_log(KERN_DEBUG, dev_priv->drm.dev, b);
	} else {
		drm_err(&dev_priv->drm, "mismatch in %s infoframe\n", name);
		drm_err(&dev_priv->drm, "[CRTC:%d:%s] mismatch in %s infoframe\n",
			crtc->base.base.id, crtc->base.name, name);
		drm_err(&dev_priv->drm, "expected:\n");
		hdmi_infoframe_log(KERN_ERR, dev_priv->drm.dev, a);
		drm_err(&dev_priv->drm, "found:\n");
@@ -5082,7 +5086,7 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
#define PIPE_CONF_CHECK_INFOFRAME(name) do { \
	if (!intel_compare_infoframe(&current_config->infoframes.name, \
				     &pipe_config->infoframes.name)) { \
		pipe_config_infoframe_mismatch(dev_priv, fastset, __stringify(name), \
		pipe_config_infoframe_mismatch(fastset, crtc, __stringify(name), \
					       &current_config->infoframes.name, \
					       &pipe_config->infoframes.name); \
		ret = false; \