All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Kahola <mika.kahola@intel.com>
To: Robert Foss <robert.foss@collabora.com>,
	intel-gfx@lists.freedesktop.org,
	Tomeu Vizoso <tomeu.vizoso@collabora.com>,
	Maarten Lankhorst <maarten.lankhorst@intel.com>,
	Gustavo Padovan <gustavo.padovan@collabora.com>,
	Daniel Stone <daniels@collabora.com>,
	Petri Latvala <petri.latvala@intel.com>
Subject: Re: [PATCH i-g-t v2 02/33] lib/igt_kms: Avoid depencency on static plane count
Date: Wed, 25 Jan 2017 10:52:04 +0200	[thread overview]
Message-ID: <1485334324.9014.67.camel@intel.com> (raw)
In-Reply-To: <20170124233400.5053-3-robert.foss@collabora.com>

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

On Tue, 2017-01-24 at 18:33 -0500, Robert Foss wrote:
> Rework kmstest_crtc and kmstest_plane structs and their usage
> to not depend on a static plane count.
> 
> Signed-off-by: Robert Foss <robert.foss@collabora.com>
> ---
>  lib/igt_kms.c | 47 ++++++++++++++++++++++++++++++-----------------
>  lib/igt_kms.h |  4 ++--
>  2 files changed, 32 insertions(+), 19 deletions(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index e1abcf0d..922bba63 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -1227,7 +1227,7 @@ static void get_plane(char *str, int type,
> struct kmstest_plane *plane)
>  	int ret;
>  	char buf[256];
>  
> -	plane->plane = type;
> +	plane->type = type;
>  	ret = sscanf(str + 12, "%d%*c %*s %[^n]s",
>  		     &plane->id,
>  		     buf);
> @@ -1240,31 +1240,36 @@ static void get_plane(char *str, int type,
> struct kmstest_plane *plane)
>  	igt_assert_eq(ret, 2);
>  }
>  
> -static int parse_planes(FILE *fid, struct kmstest_plane *plane)
> +static int parse_planes(FILE *fid, struct kmstest_plane *planes)
>  {
>  	char tmp[256];
> -	int nplanes;
> +	int n_planes;
>  
> -	nplanes = 0;
> +	n_planes = 0;
>  	while (fgets(tmp, 256, fid) != NULL) {
> -		igt_assert_neq(nplanes, IGT_MAX_PLANES);
>  		if (strstr(tmp, "type=PRI") != NULL) {
> -			get_plane(tmp, DRM_PLANE_TYPE_PRIMARY,
> &plane[nplanes]);
> -			plane[nplanes].index = nplanes;
> -			nplanes++;
> +			if (planes) {
> +				get_plane(tmp,
> DRM_PLANE_TYPE_PRIMARY, &planes[n_planes]);
> +				planes[n_planes].index = n_planes;
> +			}
> +			n_planes++;
>  		} else if (strstr(tmp, "type=OVL") != NULL) {
> -			get_plane(tmp, DRM_PLANE_TYPE_OVERLAY,
> &plane[nplanes]);
> -			plane[nplanes].index = nplanes;
> -			nplanes++;
> +			if (planes) {
> +				get_plane(tmp,
> DRM_PLANE_TYPE_OVERLAY, &planes[n_planes]);
> +				planes[n_planes].index = n_planes;
> +			}
> +			n_planes++;
>  		} else if (strstr(tmp, "type=CUR") != NULL) {
> -			get_plane(tmp, DRM_PLANE_TYPE_CURSOR,
> &plane[nplanes]);
> -			plane[nplanes].index = nplanes;
> -			nplanes++;
> +			if (planes) {
> +				get_plane(tmp,
> DRM_PLANE_TYPE_CURSOR, &planes[n_planes]);
> +				planes[n_planes].index = n_planes;
> +			}
> +			n_planes++;
>  			break;
>  		}
>  	}
>  
> -	return nplanes;
> +	return n_planes;
>  }
>  
>  static void parse_crtc(char *info, struct kmstest_crtc *crtc)
> @@ -1304,7 +1309,12 @@ void kmstest_get_crtc(enum pipe pipe, struct
> kmstest_crtc *crtc)
>  			if (strstr(tmp, "active=yes") != NULL) {
>  				crtc->active = true;
>  				parse_crtc(tmp, crtc);
> -				crtc->nplanes = parse_planes(fid,
> crtc->plane);
> +
> +				crtc->nplanes = parse_planes(fid,
> NULL);
> +				crtc->plane = calloc(crtc->nplanes,
> sizeof(*crtc->plane));
> +				fseek(fid, 0, SEEK_END);
> +				fseek(fid, 0, SEEK_SET);
> +				parse_planes(fid, crtc->plane);
>  
>  				if (crtc->pipe != pipe)
>  					crtc = NULL;
> @@ -1330,7 +1340,10 @@ void igt_assert_plane_visible(enum pipe pipe,
> bool visibility)
>  	kmstest_get_crtc(pipe, &crtc);
>  
>  	visible = true;
> -	for (i = IGT_PLANE_2; i < crtc.nplanes; i++) {
> +	for (i = 0; i < crtc.nplanes; i++) {
> +		if (crtc.plane[i].type == DRM_PLANE_TYPE_PRIMARY)
> +			continue;
> +
>  		if (crtc.plane[i].pos_x > crtc.width) {
>  			visible = false;
>  			break;
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 198174c2..5eb49ab3 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -135,8 +135,8 @@ struct kmstest_connector_config {
>  
>  struct kmstest_plane {
>  	int id;
> -	int plane;
>  	int index;
> +	int type;
>  	int pos_x;
>  	int pos_y;
>  	int width;
> @@ -150,7 +150,7 @@ struct kmstest_crtc {
>  	int width;
>  	int height;
>  	int nplanes;
> -	struct kmstest_plane plane[IGT_MAX_PLANES];
> +	struct kmstest_plane *plane;
>  };
>  
>  /**
-- 
Mika Kahola - Intel OTC

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2017-01-25  8:53 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-24 23:33 [PATCH i-g-t v2 00/33] lib/igt_kms: Implement dynamic plane count support Robert Foss
2017-01-24 23:33 ` [PATCH i-g-t v2 01/33] lib/igt_kms: Add index property to kmstest_plane struct Robert Foss
2017-01-25  8:51   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 02/33] lib/igt_kms: Avoid depencency on static plane count Robert Foss
2017-01-25  8:52   ` Mika Kahola [this message]
2017-01-24 23:33 ` [PATCH i-g-t v2 03/33] lib/igt_kms: Rename kmstest properties nplanes and plane Robert Foss
2017-01-25  8:52   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 04/33] lib/igt_kms: Implement dynamic plane count support Robert Foss
2017-01-25 10:28   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 05/33] tests/kms_atomic_transition: Add support for dynamic number of planes Robert Foss
2017-01-25 11:22   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 06/33] tests/kms_busy: " Robert Foss
2017-01-25 11:23   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 07/33] tests/kms_chv_cursor_fail: " Robert Foss
2017-01-25 11:31   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 08/33] tests/kms_crtc_background_color: " Robert Foss
2017-01-25 11:32   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 09/33] tests/kms_cursor_crc: " Robert Foss
2017-01-25 11:33   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 10/33] tests/kms_cursor_legacy: " Robert Foss
2017-01-24 23:33 ` [PATCH i-g-t v2 11/33] tests/kms_fbc_crc: " Robert Foss
2017-01-25 12:22   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 12/33] tests/kms_fence_pin_leak: " Robert Foss
2017-01-25 12:25   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 13/33] tests/kms_flip_event_leak: " Robert Foss
2017-01-25 12:28   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 14/33] tests/kms_legacy_colorkey: " Robert Foss
2017-01-25 12:31   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 15/33] tests/kms_mmap_write_crc: " Robert Foss
2017-01-25 12:33   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 16/33] tests/kms_mmio_vs_cs_flip: " Robert Foss
2017-01-25 12:34   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 17/33] tests/kms_panel_fitting: " Robert Foss
2017-01-25 12:38   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 18/33] tests/kms_pipe_color: " Robert Foss
2017-01-25 12:41   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 19/33] tests/kms_plane: " Robert Foss
2017-01-25 12:48   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 20/33] tests/kms_plane_multiple: " Robert Foss
2017-01-26 10:47   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 21/33] tests/kms_plane_scaling: " Robert Foss
2017-01-26 10:52   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 22/33] tests/kms_properties: " Robert Foss
2017-01-26 10:57   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 23/33] tests/kms_psr_sink_crc: " Robert Foss
2017-01-26 11:00   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 24/33] tests/kms_pwrite_crc: " Robert Foss
2017-01-26 11:02   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 25/33] tests/kms_rmfb: " Robert Foss
2017-01-26 11:04   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 26/33] tests/kms_rotation_crc: " Robert Foss
2017-01-26 11:12   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 27/33] tests/kms_sink_crc_basic: " Robert Foss
2017-01-26 11:13   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 28/33] tests/kms_universal_plane: " Robert Foss
2017-01-26 11:15   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 29/33] tests/kms_vblank: " Robert Foss
2017-01-26 11:19   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 30/33] tests/prime_mmap_kms: " Robert Foss
2017-01-26 11:21   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 31/33] tests/kms_ccs: " Robert Foss
2017-01-26 11:26   ` Mika Kahola
2017-01-24 23:33 ` [PATCH i-g-t v2 32/33] tests/kms_plane_lowres: " Robert Foss
2017-01-26 11:30   ` Mika Kahola
2017-01-24 23:34 ` [PATCH i-g-t v2 33/33] lib/igt_kms: Remove code obsoleted by dyn n_planes implementation Robert Foss
2017-01-26 11:50   ` Mika Kahola

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=1485334324.9014.67.camel@intel.com \
    --to=mika.kahola@intel.com \
    --cc=daniels@collabora.com \
    --cc=gustavo.padovan@collabora.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=maarten.lankhorst@intel.com \
    --cc=petri.latvala@intel.com \
    --cc=robert.foss@collabora.com \
    --cc=tomeu.vizoso@collabora.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.