[PATCH] modetest: consider supported formats before selecting a DRM plane

Fabien DESSENNE fabien.dessenne at st.com
Fri Apr 4 00:18:47 PDT 2014


Can anyone review this patch ?
Thanks for your time.
Fabien

> -----Original Message-----
> From: Fabien DESSENNE [mailto:fabien.dessenne at st.com]
> Sent: vendredi 28 mars 2014 11:16
> To: dri-devel at lists.freedesktop.org
> Cc: Benjamin Gaignard; Vincent Abriou; Fabien DESSENNE
> Subject: [PATCH] modetest: consider supported formats before selecting a
> DRM plane
> 
> This fixes an issue where the DRM planes do not support the same pixel
> formats.
> The current implementation selects a DRM plane without checking whether
> the pixel format is supported or not. As a consequence modetest may try to
> set up a plane not supporting the user request-format, which fails.
> Modetest has to check the supported formats accross the plane list before
> selecting a candidate.
> 
> Signed-off-by: Fabien Dessenne <fabien.dessenne at st.com>
> ---
>  tests/modetest/modetest.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c index
> 4761c60..866ea82 100644
> --- a/tests/modetest/modetest.c
> +++ b/tests/modetest/modetest.c
> @@ -951,7 +951,7 @@ static int set_plane(struct device *dev, struct
> plane_arg *p)
>  	int crtc_x, crtc_y, crtc_w, crtc_h;
>  	struct crtc *crtc = NULL;
>  	unsigned int pipe;
> -	unsigned int i;
> +	unsigned int i, j;
> 
>  	/* Find an unused plane which can be connected to our CRTC. Find
> the
>  	 * CRTC index first, then iterate over available planes.
> @@ -974,8 +974,11 @@ static int set_plane(struct device *dev, struct
> plane_arg *p)
>  		if (!ovr)
>  			continue;
> 
> -		if ((ovr->possible_crtcs & (1 << pipe)) && !ovr->crtc_id)
> -			plane_id = ovr->plane_id;
> +		if ((ovr->possible_crtcs & (1 << pipe)) && !ovr->crtc_id) {
> +			for (j = 0; j < ovr->count_formats; j++)
> +				if (!strncmp(p->format_str, (char *) &ovr-
> >formats[j], 4))
> +					plane_id = ovr->plane_id;
> +		}
>  	}
> 
>  	if (!plane_id) {
> --
> 1.9.0



More information about the dri-devel mailing list