All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 1/3] drm: Extract __setplane_check()
Date: Thu, 28 Jun 2018 09:53:45 -0700	[thread overview]
Message-ID: <20180628165345.GA20915@intel.com> (raw)
In-Reply-To: <20180628135457.14647-1-ville.syrjala@linux.intel.com>

On Thu, Jun 28, 2018 at 04:54:55PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pull all the error checking out from __set_plane_internal() to a helper
> function. We'll have another user of this soon.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/drm_plane.c | 80 +++++++++++++++++++++++++++------------------
>  1 file changed, 49 insertions(+), 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index df0b4ebbedbf..5c97a0131484 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -583,6 +583,52 @@ int drm_plane_check_pixel_format(struct drm_plane *plane,
>  	return 0;
>  }
>  
> +static int __setplane_check(struct drm_plane *plane,
> +			    struct drm_crtc *crtc,
> +			    struct drm_framebuffer *fb,
> +			    int32_t crtc_x, int32_t crtc_y,
> +			    uint32_t crtc_w, uint32_t crtc_h,
> +			    uint32_t src_x, uint32_t src_y,
> +			    uint32_t src_w, uint32_t src_h)
> +{
> +	int ret;
> +
> +	/* Check whether this plane is usable on this CRTC */
> +	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
> +		DRM_DEBUG_KMS("Invalid crtc for plane\n");
> +		return -EINVAL;
> +	}
> +
> +	/* Check whether this plane supports the fb pixel format. */
> +	ret = drm_plane_check_pixel_format(plane, fb->format->format,
> +					   fb->modifier);
> +	if (ret) {
> +		struct drm_format_name_buf format_name;
> +
> +		DRM_DEBUG_KMS("Invalid pixel format %s, modifier 0x%llx\n",
> +			      drm_get_format_name(fb->format->format,
> +						  &format_name),
> +			      fb->modifier);
> +		return ret;
> +	}
> +
> +	/* Give drivers some help against integer overflows */
> +	if (crtc_w > INT_MAX ||
> +	    crtc_x > INT_MAX - (int32_t) crtc_w ||
> +	    crtc_h > INT_MAX ||
> +	    crtc_y > INT_MAX - (int32_t) crtc_h) {
> +		DRM_DEBUG_KMS("Invalid CRTC coordinates %ux%u+%d+%d\n",
> +			      crtc_w, crtc_h, crtc_x, crtc_y);
> +		return -ERANGE;
> +	}
> +
> +	ret = drm_framebuffer_check_src_coords(src_x, src_y, src_w, src_h, fb);
> +	if (ret)
> +		return ret;
> +
> +	return 0;
> +}
> +
>  /*
>   * __setplane_internal - setplane handler for internal callers
>   *
> @@ -616,37 +662,9 @@ static int __setplane_internal(struct drm_plane *plane,
>  		goto out;
>  	}
>  
> -	/* Check whether this plane is usable on this CRTC */
> -	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
> -		DRM_DEBUG_KMS("Invalid crtc for plane\n");
> -		ret = -EINVAL;
> -		goto out;
> -	}
> -
> -	/* Check whether this plane supports the fb pixel format. */
> -	ret = drm_plane_check_pixel_format(plane, fb->format->format,
> -					   fb->modifier);
> -	if (ret) {
> -		struct drm_format_name_buf format_name;
> -		DRM_DEBUG_KMS("Invalid pixel format %s, modifier 0x%llx\n",
> -			      drm_get_format_name(fb->format->format,
> -						  &format_name),
> -			      fb->modifier);
> -		goto out;
> -	}
> -
> -	/* Give drivers some help against integer overflows */
> -	if (crtc_w > INT_MAX ||
> -	    crtc_x > INT_MAX - (int32_t) crtc_w ||
> -	    crtc_h > INT_MAX ||
> -	    crtc_y > INT_MAX - (int32_t) crtc_h) {
> -		DRM_DEBUG_KMS("Invalid CRTC coordinates %ux%u+%d+%d\n",
> -			      crtc_w, crtc_h, crtc_x, crtc_y);
> -		ret = -ERANGE;
> -		goto out;
> -	}
> -
> -	ret = drm_framebuffer_check_src_coords(src_x, src_y, src_w, src_h, fb);
> +	ret = __setplane_check(plane, crtc, fb,
> +			       crtc_x, crtc_y, crtc_w, crtc_h,
> +			       src_x, src_y, src_w, src_h);
>  	if (ret)
>  		goto out;
>  
> -- 
> 2.16.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2018-06-28 16:53 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-28 13:54 [PATCH 1/3] drm: Extract __setplane_check() Ville Syrjala
2018-06-28 13:54 ` [PATCH 2/3] drm: Introduce __setplane_atomic() Ville Syrjala
2018-06-28 17:05   ` Daniel Vetter
2018-06-28 17:36     ` Ville Syrjälä
2018-06-28 18:16       ` Daniel Vetter
2018-07-05 18:59   ` [PATCH v2 " Ville Syrjala
2018-06-28 13:54 ` [PATCH 3/3] drm: Skip __drm_mode_set_config_internal() on atomic drivers Ville Syrjala
2018-07-05 19:00   ` [PATCH v2 " Ville Syrjala
2018-06-28 14:52 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm: Extract __setplane_check() Patchwork
2018-06-28 15:09 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-06-28 15:56   ` Ville Syrjälä
2018-06-28 16:53 ` Rodrigo Vivi [this message]
2018-07-05 23:06 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm: Extract __setplane_check() (rev3) Patchwork
2018-07-05 23:23 ` ✓ Fi.CI.BAT: success " Patchwork
2018-07-06 14:32 ` ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180628165345.GA20915@intel.com \
    --to=rodrigo.vivi@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.