Re: [PATCH v2] drm/imx: ipuv3-plane: Access old u/vbo properly in ->atomic_check for YU12/YV12

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

 



Am Dienstag, den 18.10.2016, 16:44 +0800 schrieb Liu Ying:
> Before accessing the u/v offset(aka, u/vbo for IPUv3) of the old plane state's
> relevant fb, we should make sure the fb is in YU12 or YV12 pixel format(which
> are the two YUV pixel formats we support only), otherwise, we are likely to
> trigger BUG_ON() in drm_plane_state_to_u/vbo() since the fb's pixel format is
> probably not YU12 or YV12.
> 
> Link: https://bugs.freedesktop.org/show_bug.cgi?id=98150
> Fixes: c6c1f9bc798b ("drm/imx: Add active plane reconfiguration support")
> Cc: stable@xxxxxxxxxxxxxxx # 4.8
> Signed-off-by: Liu Ying <gnuiyl@xxxxxxxxx>
> ---
> v1->v2:
> * Correct the condition under which we may access old u/vbo - old->pixel_format
>   is not necessarily the same to fb->pixel_format, instead, it could be YU12
>   or YV12.  This may cover the case in which we switch fb pixel format
>   bewteen YU12 and YV12.

Applied, thank you.

regards
Philipp

>  drivers/gpu/drm/imx/ipuv3-plane.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3-plane.c
> index e33110e..08d0fd5 100644
> --- a/drivers/gpu/drm/imx/ipuv3-plane.c
> +++ b/drivers/gpu/drm/imx/ipuv3-plane.c
> @@ -359,7 +359,9 @@ static int ipu_plane_atomic_check(struct drm_plane *plane,
>  		if ((ubo > 0xfffff8) || (vbo > 0xfffff8))
>  			return -EINVAL;
>  
> -		if (old_fb) {
> +		if (old_fb &&
> +		    (old_fb->pixel_format == DRM_FORMAT_YUV420 ||
> +		     old_fb->pixel_format == DRM_FORMAT_YVU420)) {
>  			old_ubo = drm_plane_state_to_ubo(old_state);
>  			old_vbo = drm_plane_state_to_vbo(old_state);
>  			if (ubo != old_ubo || vbo != old_vbo)

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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