[PATCH v2 3/9] drm/i915/display/sdvo: Prefer drm_WARN* over WARN*

Jani Nikula jani.nikula at linux.intel.com
Fri May 8 06:48:57 UTC 2020


On Mon, 04 May 2020, Pankaj Bharadiya <pankaj.laxminarayan.bharadiya at intel.com> wrote:
> struct drm_device specific drm_WARN* macros include device information
> in the backtrace, so we know what device the warnings originate from.
>
> Prefer drm_WARN* over WARN* calls.
>
> changes since v1:
> - Added dev_priv local variable and used it in drm_WARN* calls (Jani)

In the earlier patches you're adding i915 local variable, here it's
dev_priv. We're gradually transitioning from dev_priv to i915, so I'm
not thrilled about adding new dev_priv.

BR,
Jani.



>
> Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_sdvo.c | 21 ++++++++++++++-------
>  1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
> index bc6c26818e15..773523dcd107 100644
> --- a/drivers/gpu/drm/i915/display/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
> @@ -411,6 +411,7 @@ static const char *sdvo_cmd_name(u8 cmd)
>  static void intel_sdvo_debug_write(struct intel_sdvo *intel_sdvo, u8 cmd,
>  				   const void *args, int args_len)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(intel_sdvo->base.base.dev);
>  	const char *cmd_name;
>  	int i, pos = 0;
>  	char buffer[64];
> @@ -431,7 +432,7 @@ static void intel_sdvo_debug_write(struct intel_sdvo *intel_sdvo, u8 cmd,
>  	else
>  		BUF_PRINT("(%02X)", cmd);
>  
> -	WARN_ON(pos >= sizeof(buffer) - 1);
> +	drm_WARN_ON(&dev_priv->drm, pos >= sizeof(buffer) - 1);
>  #undef BUF_PRINT
>  
>  	DRM_DEBUG_KMS("%s: W: %02X %s\n", SDVO_NAME(intel_sdvo), cmd, buffer);
> @@ -533,6 +534,7 @@ static bool intel_sdvo_write_cmd(struct intel_sdvo *intel_sdvo, u8 cmd,
>  static bool intel_sdvo_read_response(struct intel_sdvo *intel_sdvo,
>  				     void *response, int response_len)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(intel_sdvo->base.base.dev);
>  	const char *cmd_status;
>  	u8 retry = 15; /* 5 quick checks, followed by 10 long checks */
>  	u8 status;
> @@ -597,7 +599,7 @@ static bool intel_sdvo_read_response(struct intel_sdvo *intel_sdvo,
>  		BUF_PRINT(" %02X", ((u8 *)response)[i]);
>  	}
>  
> -	WARN_ON(pos >= sizeof(buffer) - 1);
> +	drm_WARN_ON(&dev_priv->drm, pos >= sizeof(buffer) - 1);
>  #undef BUF_PRINT
>  
>  	DRM_DEBUG_KMS("%s: R: %s\n", SDVO_NAME(intel_sdvo), buffer);
> @@ -1081,6 +1083,7 @@ static bool intel_sdvo_compute_avi_infoframe(struct intel_sdvo *intel_sdvo,
>  					     struct intel_crtc_state *crtc_state,
>  					     struct drm_connector_state *conn_state)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(intel_sdvo->base.base.dev);
>  	struct hdmi_avi_infoframe *frame = &crtc_state->infoframes.avi.avi;
>  	const struct drm_display_mode *adjusted_mode =
>  		&crtc_state->hw.adjusted_mode;
> @@ -1106,7 +1109,7 @@ static bool intel_sdvo_compute_avi_infoframe(struct intel_sdvo *intel_sdvo,
>  					   HDMI_QUANTIZATION_RANGE_FULL);
>  
>  	ret = hdmi_avi_infoframe_check(frame);
> -	if (WARN_ON(ret))
> +	if (drm_WARN_ON(&dev_priv->drm, ret))
>  		return false;
>  
>  	return true;
> @@ -1115,6 +1118,7 @@ static bool intel_sdvo_compute_avi_infoframe(struct intel_sdvo *intel_sdvo,
>  static bool intel_sdvo_set_avi_infoframe(struct intel_sdvo *intel_sdvo,
>  					 const struct intel_crtc_state *crtc_state)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(intel_sdvo->base.base.dev);
>  	u8 sdvo_data[HDMI_INFOFRAME_SIZE(AVI)];
>  	const union hdmi_infoframe *frame = &crtc_state->infoframes.avi;
>  	ssize_t len;
> @@ -1123,11 +1127,12 @@ static bool intel_sdvo_set_avi_infoframe(struct intel_sdvo *intel_sdvo,
>  	     intel_hdmi_infoframe_enable(HDMI_INFOFRAME_TYPE_AVI)) == 0)
>  		return true;
>  
> -	if (WARN_ON(frame->any.type != HDMI_INFOFRAME_TYPE_AVI))
> +	if (drm_WARN_ON(&dev_priv->drm,
> +			frame->any.type != HDMI_INFOFRAME_TYPE_AVI))
>  		return false;
>  
>  	len = hdmi_infoframe_pack_only(frame, sdvo_data, sizeof(sdvo_data));
> -	if (WARN_ON(len < 0))
> +	if (drm_WARN_ON(&dev_priv->drm, len < 0))
>  		return false;
>  
>  	return intel_sdvo_write_infoframe(intel_sdvo, SDVO_HBUF_INDEX_AVI_IF,
> @@ -1237,6 +1242,7 @@ intel_sdvo_get_preferred_input_mode(struct intel_sdvo *intel_sdvo,
>  
>  static void i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(pipe_config->uapi.crtc->dev);
>  	unsigned dotclock = pipe_config->port_clock;
>  	struct dpll *clock = &pipe_config->dpll;
>  
> @@ -1257,7 +1263,8 @@ static void i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config)
>  		clock->m1 = 12;
>  		clock->m2 = 8;
>  	} else {
> -		WARN(1, "SDVO TV clock out of range: %i\n", dotclock);
> +		drm_WARN(&dev_priv->drm, 1,
> +			 "SDVO TV clock out of range: %i\n", dotclock);
>  	}
>  
>  	pipe_config->clock_set = true;
> @@ -2293,7 +2300,7 @@ intel_sdvo_connector_atomic_get_property(struct drm_connector *connector,
>  				return 0;
>  			}
>  
> -		WARN_ON(1);
> +		drm_WARN_ON(connector->dev, 1);
>  		*val = 0;
>  	} else if (property == intel_sdvo_connector->top ||
>  		   property == intel_sdvo_connector->bottom)

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the dri-devel mailing list