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
next prev parent 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.