Re: [PATCH] drm: Set the plane's crtc before calling disable_plane.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon,  3 Mar 2014 13:38:36 -0800
Stéphane Marchesin <marcheu@xxxxxxxxxxxx> wrote:

> Some drivers like exynos need the crtc to be able to disable the plane,
> so set it before calling disable_plane.
> 
> Signed-off-by: Stéphane Marchesin <marcheu@xxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/drm_crtc.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 3b7d32d..0943316 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -1947,10 +1947,21 @@ int drm_mode_setplane(struct drm_device *dev, void *data,
>  	}
>  	plane = obj_to_plane(obj);
>  
> +	obj = drm_mode_object_find(dev, plane_req->crtc_id,
> +				   DRM_MODE_OBJECT_CRTC);
> +	if (!obj) {
> +		DRM_DEBUG_KMS("Unknown crtc ID %d\n",
> +			      plane_req->crtc_id);
> +		ret = -ENOENT;
> +		goto out;
> +	}
> +	crtc = obj_to_crtc(obj);
> +
>  	/* No fb means shut it down */
>  	if (!plane_req->fb_id) {
>  		drm_modeset_lock_all(dev);
>  		old_fb = plane->fb;
> +		plane->crtc = crtc;
>  		plane->funcs->disable_plane(plane);
>  		plane->crtc = NULL;
>  		plane->fb = NULL;
> @@ -1958,16 +1969,6 @@ int drm_mode_setplane(struct drm_device *dev, void *data,
>  		goto out;
>  	}
>  
> -	obj = drm_mode_object_find(dev, plane_req->crtc_id,
> -				   DRM_MODE_OBJECT_CRTC);
> -	if (!obj) {
> -		DRM_DEBUG_KMS("Unknown crtc ID %d\n",
> -			      plane_req->crtc_id);
> -		ret = -ENOENT;
> -		goto out;
> -	}
> -	crtc = obj_to_crtc(obj);
> -
>  	fb = drm_framebuffer_lookup(dev, plane_req->fb_id);
>  	if (!fb) {
>  		DRM_DEBUG_KMS("Unknown framebuffer ID %d\n",

I'm pretty sure this is ok since we don't have much userspace using
this that might fail to pass in a crtc when shutting down a plane...

Reviewed-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>

-- 
Jesse Barnes, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux