Re: [PATCH v2] drm/atomic: Check old_plane_state->crtc in drm_atomic_helper_async_check()

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

 



On Tue, 24 Jul 2018 15:32:15 +0200
Boris Brezillon <boris.brezillon@xxxxxxxxxxx> wrote:

> Async plane update is supposed to work only when updating the FB or FB
> position of an already enabled plane. That does not apply to requests
> where the plane was previously disabled or assigned to a different
> CTRC.
> 
> Check old_plane_state->crtc value to make sure async plane update is
> allowed.
> 
> Fixes: fef9df8b5945 ("drm/atomic: initial support for asynchronous plane update")
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxx>
> Reviewed-by: Eric Anholt <eric@xxxxxxxxxx>

Applied to drm-misc-fixes.

> ---
> Changes in v2:
> - Cc stable
> - Add Eric's R-b
> ---
>  drivers/gpu/drm/drm_atomic_helper.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 866a2cc72ef6..f7ccfebd3ca8 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -1555,7 +1555,8 @@ int drm_atomic_helper_async_check(struct drm_device *dev,
>  	if (n_planes != 1)
>  		return -EINVAL;
>  
> -	if (!new_plane_state->crtc)
> +	if (!new_plane_state->crtc ||
> +	    old_plane_state->crtc != new_plane_state->crtc)
>  		return -EINVAL;
>  
>  	funcs = plane->helper_private;




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux