Commit 6b9bd7c3 authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915/display: add i915 parameter to I915_STATE_WARN()



Add i915 parameter to I915_STATE_WARN() and use device based logging.

Done using cocci + hand edited where there was no i915 local variable
ready.

v2: avoid null deref in verify_connector_state()

Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230512181658.1735594-1-jani.nikula@intel.com
parent b8e6185b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ static void assert_dp_port(struct intel_dp *intel_dp, bool state)
	struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
	bool cur_state = intel_de_read(dev_priv, intel_dp->output_reg) & DP_PORT_EN;

	I915_STATE_WARN(cur_state != state,
	I915_STATE_WARN(dev_priv, cur_state != state,
			"[ENCODER:%d:%s] state assertion failure (expected %s, current %s)\n",
			dig_port->base.base.base.id, dig_port->base.base.name,
			str_on_off(state), str_on_off(cur_state));
@@ -180,7 +180,7 @@ static void assert_edp_pll(struct drm_i915_private *dev_priv, bool state)
{
	bool cur_state = intel_de_read(dev_priv, DP_A) & DP_PLL_ENABLE;

	I915_STATE_WARN(cur_state != state,
	I915_STATE_WARN(dev_priv, cur_state != state,
			"eDP PLL state assertion failure (expected %s, current %s)\n",
			str_on_off(state), str_on_off(cur_state));
}
+3 −1
Original line number Diff line number Diff line
@@ -35,7 +35,9 @@

static void assert_vblank_disabled(struct drm_crtc *crtc)
{
	if (I915_STATE_WARN(drm_crtc_vblank_get(crtc) == 0,
	struct drm_i915_private *i915 = to_i915(crtc->dev);

	if (I915_STATE_WARN(i915, drm_crtc_vblank_get(crtc) == 0,
			    "[CRTC:%d:%s] vblank assertion failure (expected off, current on)\n",
			    crtc->base.id, crtc->name))
		drm_crtc_vblank_put(crtc);
+5 −5
Original line number Diff line number Diff line
@@ -2945,18 +2945,18 @@ void intel_c10pll_state_verify(struct intel_atomic_state *state,
	for (i = 0; i < ARRAY_SIZE(mpllb_sw_state->pll); i++) {
		u8 expected = mpllb_sw_state->pll[i];

		I915_STATE_WARN(mpllb_hw_state.pll[i] != expected,
		I915_STATE_WARN(i915, mpllb_hw_state.pll[i] != expected,
				"[CRTC:%d:%s] mismatch in C10MPLLB: Register[%d] (expected 0x%02x, found 0x%02x)",
				crtc->base.base.id, crtc->base.name,
				i, expected, mpllb_hw_state.pll[i]);
				crtc->base.base.id, crtc->base.name, i,
				expected, mpllb_hw_state.pll[i]);
	}

	I915_STATE_WARN(mpllb_hw_state.tx != mpllb_sw_state->tx,
	I915_STATE_WARN(i915, mpllb_hw_state.tx != mpllb_sw_state->tx,
			"[CRTC:%d:%s] mismatch in C10MPLLB: Register TX0 (expected 0x%02x, found 0x%02x)",
			crtc->base.base.id, crtc->base.name,
			mpllb_sw_state->tx, mpllb_hw_state.tx);

	I915_STATE_WARN(mpllb_hw_state.cmn != mpllb_sw_state->cmn,
	I915_STATE_WARN(i915, mpllb_hw_state.cmn != mpllb_sw_state->cmn,
			"[CRTC:%d:%s] mismatch in C10MPLLB: Register CMN0 (expected 0x%02x, found 0x%02x)",
			crtc->base.base.id, crtc->base.name,
			mpllb_sw_state->cmn, mpllb_hw_state.cmn);
+5 −4
Original line number Diff line number Diff line
@@ -322,20 +322,21 @@ void assert_transcoder(struct drm_i915_private *dev_priv,
		cur_state = false;
	}

	I915_STATE_WARN(cur_state != state,
	I915_STATE_WARN(dev_priv, cur_state != state,
			"transcoder %s assertion failure (expected %s, current %s)\n",
			transcoder_name(cpu_transcoder),
			str_on_off(state), str_on_off(cur_state));
			transcoder_name(cpu_transcoder), str_on_off(state),
			str_on_off(cur_state));
}

static void assert_plane(struct intel_plane *plane, bool state)
{
	struct drm_i915_private *i915 = to_i915(plane->base.dev);
	enum pipe pipe;
	bool cur_state;

	cur_state = plane->get_hw_state(plane, &pipe);

	I915_STATE_WARN(cur_state != state,
	I915_STATE_WARN(i915, cur_state != state,
			"%s assertion failure (expected %s, current %s)\n",
			plane->base.name, str_on_off(state),
			str_on_off(cur_state));
+4 −3
Original line number Diff line number Diff line
@@ -545,11 +545,12 @@ void assert_transcoder(struct drm_i915_private *dev_priv,
 * verbose_state_checks module param, to enable distros and users to tailor
 * their preferred amount of i915 abrt spam.
 */
#define I915_STATE_WARN(condition, format...) ({			\
#define I915_STATE_WARN(__i915, condition, format...) ({		\
	struct drm_device *drm = &(__i915)->drm;			\
	int __ret_warn_on = !!(condition);				\
	if (unlikely(__ret_warn_on))					\
		if (!WARN(i915_modparams.verbose_state_checks, format))	\
			DRM_ERROR(format);				\
		if (!drm_WARN(drm, i915_modparams.verbose_state_checks, format)) \
			drm_err(drm, format);				\
	unlikely(__ret_warn_on);					\
})

Loading