All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout
@ 2021-10-13 12:59 Ville Syrjala
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup() Ville Syrjala
                   ` (9 more replies)
  0 siblings, 10 replies; 20+ messages in thread
From: Ville Syrjala @ 2021-10-13 12:59 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

A few igts use a 60Hz hardcoded override mode currently. If the 
panel's fixed_mode dosn't happen to match that i915 will now reject
the mode. So let's adjust the override modes to match the refresh
rate the panel needs. We just pick the refresh rate of the first
reported mode, which sould be the panel's preferred mode. So this
will work just fine even if the panel/driver report and accept
multiple refresh rates.

Ville Syrjälä (7):
  lib: Introduce igt_memdup()
  tests/i915/kms_frontbuffer_tracking: Get rid of the funny mode_copy
  lib/kms: Have igt_std_1024_mode_get() return a copy of the mode
  lib/kms: Have igt_std_1024_mode_get() return a mode with specific
    refresh
  lib/kms: Introduce igt_output_preferred_vrefresh()
  tests/i915/kms_frontbuffer_tracking: Use preferred modes's vrefresh
  tests/kms_concurrent: Use preferred modes's vrefresh

 lib/igt_aux.c                         |  11 +++
 lib/igt_aux.h                         |   2 +
 lib/igt_kms.c                         |  28 +++++--
 lib/igt_kms.h                         |   3 +-
 tests/i915/kms_frontbuffer_tracking.c | 113 +++++++++++++-------------
 tests/kms_concurrent.c                |  25 +++---
 6 files changed, 103 insertions(+), 79 deletions(-)

-- 
2.32.0

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup()
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
@ 2021-10-13 12:59 ` Ville Syrjala
  2021-10-18  4:19   ` Modem, Bhanuprakash
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 2/7] tests/i915/kms_frontbuffer_tracking: Get rid of the funny mode_copy Ville Syrjala
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-10-13 12:59 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Provide a helper to do the malloc()+memcpy() in one swift blow.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_aux.c | 11 +++++++++++
 lib/igt_aux.h |  2 ++
 2 files changed, 13 insertions(+)

diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index 1217f5e88094..2445e483e210 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -1527,3 +1527,14 @@ uint64_t vfs_file_max(void)
 	}
 	return max;
 }
+
+void *igt_memdup(const void *ptr, size_t len)
+{
+	void *dup;
+
+	dup = malloc(len);
+	if (dup)
+		memcpy(dup, ptr, len);
+
+	return dup;
+}
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index 30b175d70d8b..a3c477abcd86 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -324,4 +324,6 @@ void igt_lsof(const char *dpath);
 
 uint64_t vfs_file_max(void);
 
+void *igt_memdup(const void *ptr, size_t len);
+
 #endif /* IGT_AUX_H */
-- 
2.32.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t 2/7] tests/i915/kms_frontbuffer_tracking: Get rid of the funny mode_copy
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup() Ville Syrjala
@ 2021-10-13 12:59 ` Ville Syrjala
  2021-10-18  4:34   ` Modem, Bhanuprakash
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 3/7] lib/kms: Have igt_std_1024_mode_get() return a copy of the mode Ville Syrjala
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-10-13 12:59 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

For some reason we make a copy of the mode into 'mode_copy', and
then point the 'mode' pointer at that copy. Get rid of the pointer
and just use the struct directly.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/i915/kms_frontbuffer_tracking.c | 69 +++++++++++++--------------
 1 file changed, 33 insertions(+), 36 deletions(-)

diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index 4ae5286661bb..d8f08c147861 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -264,7 +264,7 @@ struct {
 struct modeset_params {
 	enum pipe pipe;
 	igt_output_t *output;
-	drmModeModeInfo mode_copy, *mode;
+	drmModeModeInfo mode;
 
 	struct fb_region primary;
 	struct fb_region cursor;
@@ -357,8 +357,7 @@ static void init_mode_params(struct modeset_params *params,
 
 	params->pipe = pipe;
 	params->output = output;
-	params->mode_copy = *mode;
-	params->mode = &params->mode_copy;
+	params->mode = *mode;
 
 	params->primary.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_PRIMARY);
 	params->primary.fb = NULL;
@@ -617,12 +616,12 @@ static void create_shared_fb(enum pixel_format format, enum tiling_type tiling)
 	int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w, big_h;
 	struct screen_fbs *s = &fbs[format];
 
-	prim_w = prim_mode_params.mode->hdisplay;
-	prim_h = prim_mode_params.mode->vdisplay;
+	prim_w = prim_mode_params.mode.hdisplay;
+	prim_h = prim_mode_params.mode.vdisplay;
 
 	if (scnd_mode_params.output) {
-		scnd_w = scnd_mode_params.mode->hdisplay;
-		scnd_h = scnd_mode_params.mode->vdisplay;
+		scnd_w = scnd_mode_params.mode.hdisplay;
+		scnd_h = scnd_mode_params.mode.vdisplay;
 	} else {
 		scnd_w = 0;
 		scnd_h = 0;
@@ -670,8 +669,8 @@ static void create_fbs(enum pixel_format format, enum tiling_type tiling)
 
 	s->initialized = true;
 
-	create_fb(format, prim_mode_params.mode->hdisplay,
-		  prim_mode_params.mode->vdisplay, tiling, PLANE_PRI,
+	create_fb(format, prim_mode_params.mode.hdisplay,
+		  prim_mode_params.mode.vdisplay, tiling, PLANE_PRI,
 		  &s->prim_pri);
 	create_fb(format, prim_mode_params.cursor.w,
 		  prim_mode_params.cursor.h, DRM_FORMAT_MOD_LINEAR,
@@ -687,8 +686,8 @@ static void create_fbs(enum pixel_format format, enum tiling_type tiling)
 	if (!scnd_mode_params.output)
 		return;
 
-	create_fb(format, scnd_mode_params.mode->hdisplay,
-		  scnd_mode_params.mode->vdisplay, tiling, PLANE_PRI,
+	create_fb(format, scnd_mode_params.mode.hdisplay,
+		  scnd_mode_params.mode.vdisplay, tiling, PLANE_PRI,
 		  &s->scnd_pri);
 	create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h,
 		  DRM_FORMAT_MOD_LINEAR, PLANE_CUR, &s->scnd_cur);
@@ -700,16 +699,16 @@ static void __set_prim_plane_for_params(struct modeset_params *params)
 {
 	igt_plane_set_fb(params->primary.plane, params->primary.fb);
 	igt_plane_set_position(params->primary.plane, 0, 0);
-	igt_plane_set_size(params->primary.plane, params->mode->hdisplay, params->mode->vdisplay);
+	igt_plane_set_size(params->primary.plane, params->mode.hdisplay, params->mode.vdisplay);
 	igt_fb_set_position(params->primary.fb, params->primary.plane,
 			    params->primary.x, params->primary.y);
 	igt_fb_set_size(params->primary.fb, params->primary.plane,
-			params->mode->hdisplay, params->mode->vdisplay);
+			params->mode.hdisplay, params->mode.vdisplay);
 }
 
 static void __set_mode_for_params(struct modeset_params *params)
 {
-	igt_output_override_mode(params->output, params->mode);
+	igt_output_override_mode(params->output, &params->mode);
 	igt_output_set_pipe(params->output, params->pipe);
 
 	__set_prim_plane_for_params(params);
@@ -1212,14 +1211,14 @@ static void init_blue_crc(enum pixel_format format, enum tiling_type tiling)
 	if (blue_crcs[format].initialized)
 		return;
 
-	create_fb(format, prim_mode_params.mode->hdisplay,
-		  prim_mode_params.mode->vdisplay, tiling, PLANE_PRI,
+	create_fb(format, prim_mode_params.mode.hdisplay,
+		  prim_mode_params.mode.vdisplay, tiling, PLANE_PRI,
 		  &blue);
 
 	fill_fb(&blue, COLOR_PRIM_BG);
 
 	igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe);
-	igt_output_override_mode(prim_mode_params.output, prim_mode_params.mode);
+	igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode);
 	igt_plane_set_fb(prim_mode_params.primary.plane, &blue);
 	igt_display_commit(&drm.display);
 
@@ -1252,8 +1251,8 @@ static void init_crcs(enum pixel_format format, enum tiling_type tiling,
 				       sizeof(*(pattern->crcs[format])));
 
 	for (r = 0; r < pattern->n_rects; r++)
-		create_fb(format, prim_mode_params.mode->hdisplay,
-			  prim_mode_params.mode->vdisplay, tiling,
+		create_fb(format, prim_mode_params.mode.hdisplay,
+			  prim_mode_params.mode.vdisplay, tiling,
 			  PLANE_PRI, &tmp_fbs[r]);
 
 	for (r = 0; r < pattern->n_rects; r++)
@@ -1271,7 +1270,7 @@ static void init_crcs(enum pixel_format format, enum tiling_type tiling,
 	}
 
 	igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe);
-	igt_output_override_mode(prim_mode_params.output, prim_mode_params.mode);
+	igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode);
 	for (r = 0; r < pattern->n_rects; r++) {
 		igt_plane_set_fb(prim_mode_params.primary.plane, &tmp_fbs[r]);
 		igt_display_commit(&drm.display);
@@ -1705,15 +1704,13 @@ static void update_modeset_cached_params(void)
 	found = igt_override_all_active_output_modes_to_fit_bw(&drm.display);
 	igt_require_f(found, "No valid mode combo found.\n");
 
-	prim_mode_params.mode_copy = *igt_output_get_mode(prim_mode_params.output);
-	prim_mode_params.mode = &prim_mode_params.mode_copy;
-	prim_mode_params.primary.w = prim_mode_params.mode->hdisplay;
-	prim_mode_params.primary.h = prim_mode_params.mode->vdisplay;
+	prim_mode_params.mode = *igt_output_get_mode(prim_mode_params.output);
+	prim_mode_params.primary.w = prim_mode_params.mode.hdisplay;
+	prim_mode_params.primary.h = prim_mode_params.mode.vdisplay;
 
-	scnd_mode_params.mode_copy = *igt_output_get_mode(scnd_mode_params.output);
-	scnd_mode_params.mode = &scnd_mode_params.mode_copy;
-	scnd_mode_params.primary.w = scnd_mode_params.mode->hdisplay;
-	scnd_mode_params.primary.h = scnd_mode_params.mode->vdisplay;
+	scnd_mode_params.mode = *igt_output_get_mode(scnd_mode_params.output);
+	scnd_mode_params.primary.w = scnd_mode_params.mode.hdisplay;
+	scnd_mode_params.primary.h = scnd_mode_params.mode.vdisplay;
 
 	fill_fb_region(&prim_mode_params.primary, COLOR_PRIM_BG);
 	fill_fb_region(&scnd_mode_params.primary, COLOR_SCND_BG);
@@ -2689,7 +2686,7 @@ static void scaledprimary_subtest(const struct test_mode *t)
 	igt_plane_set_fb(reg->plane, &new_fb);
 	igt_fb_set_position(&new_fb, reg->plane, reg->x, reg->y);
 	igt_fb_set_size(&new_fb, reg->plane, reg->w, reg->h);
-	igt_plane_set_size(reg->plane, params->mode->hdisplay, params->mode->vdisplay);
+	igt_plane_set_size(reg->plane, params->mode.hdisplay, params->mode.vdisplay);
 	igt_display_commit2(&drm.display, COMMIT_UNIVERSAL);
 	do_assertions(DONT_ASSERT_CRC);
 
@@ -2701,11 +2698,11 @@ static void scaledprimary_subtest(const struct test_mode *t)
 	/* Destination doesn't fill the entire CRTC, no scaling. */
 	igt_fb_set_size(&new_fb, reg->plane, reg->w / 2, reg->h / 2);
 	igt_plane_set_position(reg->plane,
-			       params->mode->hdisplay / 4,
-			       params->mode->vdisplay / 4);
+			       params->mode.hdisplay / 4,
+			       params->mode.vdisplay / 4);
 	igt_plane_set_size(reg->plane,
-			   params->mode->hdisplay / 2,
-			   params->mode->vdisplay / 2);
+			   params->mode.hdisplay / 2,
+			   params->mode.vdisplay / 2);
 	igt_display_commit2(&drm.display, COMMIT_UNIVERSAL);
 	do_assertions(DONT_ASSERT_CRC);
 
@@ -2731,7 +2728,7 @@ static void scaledprimary_subtest(const struct test_mode *t)
 	/* Back to the good and old blue fb. */
 	igt_plane_set_fb(reg->plane, old_fb);
 	igt_plane_set_position(params->primary.plane, 0, 0);
-	igt_plane_set_size(reg->plane, params->mode->hdisplay, params->mode->vdisplay);
+	igt_plane_set_size(reg->plane, params->mode.hdisplay, params->mode.vdisplay);
 	igt_fb_set_position(reg->fb, reg->plane, reg->x, reg->y);
 	igt_fb_set_size(reg->fb, reg->plane, reg->w, reg->h);
 	igt_display_commit2(&drm.display, COMMIT_UNIVERSAL);
@@ -2868,14 +2865,14 @@ static void farfromfence_subtest(const struct test_mode *t)
 	prepare_subtest(t, pattern);
 	target = pick_target(t, params);
 
-	create_fb(t->format, params->mode->hdisplay, max_height, t->tiling,
+	create_fb(t->format, params->mode.hdisplay, max_height, t->tiling,
 		  t->plane, &tall_fb);
 
 	fill_fb(&tall_fb, COLOR_PRIM_BG);
 
 	params->primary.fb = &tall_fb;
 	params->primary.x = 0;
-	params->primary.y = max_height - params->mode->vdisplay;
+	params->primary.y = max_height - params->mode.vdisplay;
 	set_mode_for_params(params);
 	do_assertions(assertions);
 
-- 
2.32.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t 3/7] lib/kms: Have igt_std_1024_mode_get() return a copy of the mode
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup() Ville Syrjala
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 2/7] tests/i915/kms_frontbuffer_tracking: Get rid of the funny mode_copy Ville Syrjala
@ 2021-10-13 12:59 ` Ville Syrjala
  2021-10-18  4:56   ` Modem, Bhanuprakash
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 4/7] lib/kms: Have igt_std_1024_mode_get() return a mode with specific refresh Ville Syrjala
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-10-13 12:59 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

We want to provide override modes with different refresh rates.
Start by making igt_std_1024_mode_get() return a copy rather
than a pointer to the static const mode directly. And sprinkle
the necessary free() calls, and some igt_memdups() into parallel
codepaths, so we are consistnetly allocating and freeing everything.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c                         |  4 +--
 lib/igt_kms.h                         |  2 +-
 tests/i915/kms_frontbuffer_tracking.c | 44 +++++++++++++--------------
 tests/kms_concurrent.c                | 25 ++++++---------
 4 files changed, 35 insertions(+), 40 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 6b0639f628b9..f833785b89eb 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -2478,7 +2478,7 @@ igt_output_t *igt_output_from_connector(igt_display_t *display,
 	return found;
 }
 
-const drmModeModeInfo *igt_std_1024_mode_get(void)
+drmModeModeInfo *igt_std_1024_mode_get(void)
 {
 	static const drmModeModeInfo std_1024_mode = {
 		.clock = 65000,
@@ -2498,7 +2498,7 @@ const drmModeModeInfo *igt_std_1024_mode_get(void)
 		.name = "Custom 1024x768",
 	};
 
-	return &std_1024_mode;
+	return igt_memdup(&std_1024_mode, sizeof(std_1024_mode));
 }
 
 /*
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index b6cbf937166f..50b81f015e3b 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -470,7 +470,7 @@ igt_plane_t *igt_output_get_plane_type_index(igt_output_t *output,
 igt_output_t *igt_output_from_connector(igt_display_t *display,
     drmModeConnector *connector);
 void igt_output_refresh(igt_output_t *output);
-const drmModeModeInfo *igt_std_1024_mode_get(void);
+drmModeModeInfo *igt_std_1024_mode_get(void);
 void igt_output_set_writeback_fb(igt_output_t *output, struct igt_fb *fb);
 void igt_modeset_disable_all_outputs(igt_display_t *display);
 
diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index d8f08c147861..007bbdeb2b1b 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -306,51 +306,49 @@ struct {
 	.stop = true,
 };
 
-static const drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output)
+static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output)
 {
 	drmModeConnector *c = output->config.connector;
 	const drmModeModeInfo *smallest = NULL;
 	int i;
 
+	if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
+		return igt_std_1024_mode_get();
+
 	for (i = 0; i < c->count_modes; i++) {
-		drmModeModeInfo *mode = &c->modes[i];
+		const drmModeModeInfo *mode = &c->modes[i];
 
-		if (!smallest)
-			smallest = mode;
-
-		if (mode->hdisplay * mode->vdisplay <
+		if (!smallest ||
+		    mode->hdisplay * mode->vdisplay <
 		    smallest->hdisplay * smallest->vdisplay)
 			smallest = mode;
 	}
 
-	if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
-		smallest = igt_std_1024_mode_get();
-
-	return smallest;
+	if (smallest)
+		return igt_memdup(smallest, sizeof(*smallest));
+	else
+		return igt_std_1024_mode_get();
 }
 
-static const drmModeModeInfo *connector_get_mode(igt_output_t *output)
+static drmModeModeInfo *connector_get_mode(igt_output_t *output)
 {
-	const drmModeModeInfo *mode = NULL;
-
-	if (opt.small_modes)
-		mode = get_connector_smallest_mode(output);
-	else
-		mode = &output->config.default_mode;
-
-	 /* On HSW the CRC WA is so awful that it makes you think everything is
+	/* On HSW the CRC WA is so awful that it makes you think everything is
 	  * bugged. */
 	if (IS_HASWELL(intel_get_drm_devid(drm.fd)) &&
 	    output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
-		mode = igt_std_1024_mode_get();
+		return igt_std_1024_mode_get();
 
-	return mode;
+	if (opt.small_modes)
+		return get_connector_smallest_mode(output);
+	else
+		return igt_memdup(&output->config.default_mode,
+				  sizeof(output->config.default_mode));
 }
 
 static void init_mode_params(struct modeset_params *params,
 			     igt_output_t *output, enum pipe pipe)
 {
-	const drmModeModeInfo *mode;
+	drmModeModeInfo *mode;
 
 	igt_output_override_mode(output, NULL);
 	mode = connector_get_mode(output);
@@ -380,6 +378,8 @@ static void init_mode_params(struct modeset_params *params,
 	params->sprite.y = 0;
 	params->sprite.w = 64;
 	params->sprite.h = 64;
+
+	free(mode);
 }
 
 static bool find_connector(bool edp_only, bool pipe_a,
diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index dece615a0183..82ef0adc5e32 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -223,44 +223,38 @@ test_plane_position_with_output(data_t *data, enum pipe pipe, int max_planes,
 	}
 }
 
-static const drmModeModeInfo *
+static drmModeModeInfo *
 get_lowres_mode(data_t *data, const drmModeModeInfo *mode_default,
 		igt_output_t *output)
 {
-	const drmModeModeInfo *mode = igt_std_1024_mode_get();
 	drmModeConnector *connector = output->config.connector;
 	int limit = mode_default->vdisplay - SIZE_PLANE;
-	bool found;
 
 	if (!connector)
-		return mode;
+		return igt_std_1024_mode_get();
 
-	found = false;
 	for (int i = 0; i < connector->count_modes; i++) {
-		mode = &connector->modes[i];
+		const drmModeModeInfo *mode = &connector->modes[i];
 
-		if (mode->vdisplay < limit) {
-			found = true;
-			break;
-		}
+		if (mode->vdisplay < limit)
+			return igt_memdup(mode, sizeof(*mode));
 	}
 
-	if (!found)
-		mode = igt_std_1024_mode_get();
-
-	return mode;
+	return igt_std_1024_mode_get();
 }
 
 static void
 test_resolution_with_output(data_t *data, enum pipe pipe, int max_planes, igt_output_t *output)
 {
-	const drmModeModeInfo *mode_hi, *mode_lo;
 	int iterations = opt.iterations < 1 ? max_planes : opt.iterations;
 	bool loop_forever = opt.iterations == LOOP_FOREVER ? true : false;
 	int i;
 
 	i = 0;
 	while (i < iterations || loop_forever) {
+		const drmModeModeInfo *mode_hi;
+		drmModeModeInfo *mode_lo;
+
 		igt_output_set_pipe(output, pipe);
 
 		mode_hi = igt_output_get_mode(output);
@@ -268,6 +262,7 @@ test_resolution_with_output(data_t *data, enum pipe pipe, int max_planes, igt_ou
 
 		/* switch to lower resolution */
 		igt_output_override_mode(output, mode_lo);
+		free(mode_lo);
 		if (is_amdgpu_device(data->drm_fd))
 			igt_output_set_pipe(output, PIPE_NONE);
 		igt_display_commit2(&data->display, COMMIT_ATOMIC);
-- 
2.32.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t 4/7] lib/kms: Have igt_std_1024_mode_get() return a mode with specific refresh
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
                   ` (2 preceding siblings ...)
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 3/7] lib/kms: Have igt_std_1024_mode_get() return a copy of the mode Ville Syrjala
@ 2021-10-13 12:59 ` Ville Syrjala
  2021-10-18  4:59   ` Modem, Bhanuprakash
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 5/7] lib/kms: Introduce igt_output_preferred_vrefresh() Ville Syrjala
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-10-13 12:59 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Pass the desired refresh rate to igt_std_1024_mode_get(), and have it
return a mode that will have said refresh rate.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c                         | 8 ++++----
 lib/igt_kms.h                         | 2 +-
 tests/i915/kms_frontbuffer_tracking.c | 6 +++---
 tests/kms_concurrent.c                | 4 ++--
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index f833785b89eb..b6669257f08c 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -2478,10 +2478,10 @@ igt_output_t *igt_output_from_connector(igt_display_t *display,
 	return found;
 }
 
-drmModeModeInfo *igt_std_1024_mode_get(void)
+drmModeModeInfo *igt_std_1024_mode_get(int vrefresh)
 {
-	static const drmModeModeInfo std_1024_mode = {
-		.clock = 65000,
+	const drmModeModeInfo std_1024_mode = {
+		.clock = 65000 * vrefresh / 60,
 		.hdisplay = 1024,
 		.hsync_start = 1048,
 		.hsync_end = 1184,
@@ -2492,7 +2492,7 @@ drmModeModeInfo *igt_std_1024_mode_get(void)
 		.vsync_end = 777,
 		.vtotal = 806,
 		.vscan = 0,
-		.vrefresh = 60,
+		.vrefresh = vrefresh,
 		.flags = 0xA,
 		.type = 0x40,
 		.name = "Custom 1024x768",
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 50b81f015e3b..7e3e67efea7a 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -470,7 +470,7 @@ igt_plane_t *igt_output_get_plane_type_index(igt_output_t *output,
 igt_output_t *igt_output_from_connector(igt_display_t *display,
     drmModeConnector *connector);
 void igt_output_refresh(igt_output_t *output);
-drmModeModeInfo *igt_std_1024_mode_get(void);
+drmModeModeInfo *igt_std_1024_mode_get(int vrefresh);
 void igt_output_set_writeback_fb(igt_output_t *output, struct igt_fb *fb);
 void igt_modeset_disable_all_outputs(igt_display_t *display);
 
diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index 007bbdeb2b1b..2a1ed5f52e37 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -313,7 +313,7 @@ static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output)
 	int i;
 
 	if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
-		return igt_std_1024_mode_get();
+		return igt_std_1024_mode_get(60);
 
 	for (i = 0; i < c->count_modes; i++) {
 		const drmModeModeInfo *mode = &c->modes[i];
@@ -327,7 +327,7 @@ static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output)
 	if (smallest)
 		return igt_memdup(smallest, sizeof(*smallest));
 	else
-		return igt_std_1024_mode_get();
+		return igt_std_1024_mode_get(60);
 }
 
 static drmModeModeInfo *connector_get_mode(igt_output_t *output)
@@ -336,7 +336,7 @@ static drmModeModeInfo *connector_get_mode(igt_output_t *output)
 	  * bugged. */
 	if (IS_HASWELL(intel_get_drm_devid(drm.fd)) &&
 	    output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
-		return igt_std_1024_mode_get();
+		return igt_std_1024_mode_get(60);
 
 	if (opt.small_modes)
 		return get_connector_smallest_mode(output);
diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index 82ef0adc5e32..085eaa0a630d 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -231,7 +231,7 @@ get_lowres_mode(data_t *data, const drmModeModeInfo *mode_default,
 	int limit = mode_default->vdisplay - SIZE_PLANE;
 
 	if (!connector)
-		return igt_std_1024_mode_get();
+		return igt_std_1024_mode_get(60);
 
 	for (int i = 0; i < connector->count_modes; i++) {
 		const drmModeModeInfo *mode = &connector->modes[i];
@@ -240,7 +240,7 @@ get_lowres_mode(data_t *data, const drmModeModeInfo *mode_default,
 			return igt_memdup(mode, sizeof(*mode));
 	}
 
-	return igt_std_1024_mode_get();
+	return igt_std_1024_mode_get(60);
 }
 
 static void
-- 
2.32.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t 5/7] lib/kms: Introduce igt_output_preferred_vrefresh()
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
                   ` (3 preceding siblings ...)
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 4/7] lib/kms: Have igt_std_1024_mode_get() return a mode with specific refresh Ville Syrjala
@ 2021-10-13 12:59 ` Ville Syrjala
  2021-10-18  5:00   ` Modem, Bhanuprakash
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 6/7] tests/i915/kms_frontbuffer_tracking: Use preferred modes's vrefresh Ville Syrjala
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-10-13 12:59 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Add a helper to query the output's preferred vertical
refresh rate.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 18 ++++++++++++++++++
 lib/igt_kms.h |  1 +
 2 files changed, 19 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index b6669257f08c..34a2aa00ea02 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -4035,6 +4035,24 @@ void igt_output_override_mode(igt_output_t *output, const drmModeModeInfo *mode)
 	}
 }
 
+/*
+ * igt_output_preferred_vrefresh:
+ * @output: Output whose preferred vrefresh is queried
+ *
+ * Return the vertical refresh rate of @output's preferred
+ * mode. If the output reports no modes return 60Hz as
+ * a fallback.
+ */
+int igt_output_preferred_vrefresh(igt_output_t *output)
+{
+	drmModeConnector *connector = output->config.connector;
+
+	if (connector->count_modes)
+		return connector->modes[0].vrefresh;
+	else
+		return 60;
+}
+
 /*
  * igt_output_set_pipe:
  * @output: Target output for which the pipe is being set to
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 7e3e67efea7a..e9ecd21e9824 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -461,6 +461,7 @@ void igt_display_require_output_on_pipe(igt_display_t *display, enum pipe pipe);
 const char *igt_output_name(igt_output_t *output);
 drmModeModeInfo *igt_output_get_mode(igt_output_t *output);
 void igt_output_override_mode(igt_output_t *output, const drmModeModeInfo *mode);
+int igt_output_preferred_vrefresh(igt_output_t *output);
 void igt_output_set_pipe(igt_output_t *output, enum pipe pipe);
 igt_plane_t *igt_output_get_plane(igt_output_t *output, int plane_idx);
 igt_plane_t *igt_output_get_plane_type(igt_output_t *output, int plane_type);
-- 
2.32.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t 6/7] tests/i915/kms_frontbuffer_tracking: Use preferred modes's vrefresh
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
                   ` (4 preceding siblings ...)
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 5/7] lib/kms: Introduce igt_output_preferred_vrefresh() Ville Syrjala
@ 2021-10-13 12:59 ` Ville Syrjala
  2021-10-18  5:02   ` Modem, Bhanuprakash
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 7/7] tests/kms_concurrent: " Ville Syrjala
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-10-13 12:59 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

i915 will reject custom modes that don't match the laptop
panel's fixed mode refresh rate. Thus we must generate
our override modes with a matching refresh rate.

https://gitlab.freedesktop.org/drm/intel/-/issues/4283
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/i915/kms_frontbuffer_tracking.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index 2a1ed5f52e37..d6a884926c48 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -313,7 +313,7 @@ static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output)
 	int i;
 
 	if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
-		return igt_std_1024_mode_get(60);
+		return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output));
 
 	for (i = 0; i < c->count_modes; i++) {
 		const drmModeModeInfo *mode = &c->modes[i];
@@ -336,7 +336,7 @@ static drmModeModeInfo *connector_get_mode(igt_output_t *output)
 	  * bugged. */
 	if (IS_HASWELL(intel_get_drm_devid(drm.fd)) &&
 	    output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
-		return igt_std_1024_mode_get(60);
+		return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output));
 
 	if (opt.small_modes)
 		return get_connector_smallest_mode(output);
-- 
2.32.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t 7/7] tests/kms_concurrent: Use preferred modes's vrefresh
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
                   ` (5 preceding siblings ...)
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 6/7] tests/i915/kms_frontbuffer_tracking: Use preferred modes's vrefresh Ville Syrjala
@ 2021-10-13 12:59 ` Ville Syrjala
  2021-10-18  5:03   ` Modem, Bhanuprakash
  2021-10-13 15:16 ` [igt-dev] ✗ Fi.CI.BAT: failure for kms: Fix i915 fixed_mode vrefresh fallout Patchwork
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-10-13 12:59 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

i915 will reject custom modes that don't match the laptop
panel's fixed mode refresh rate. Thus we must generate
our override modes with a matching refresh rate.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4284
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_concurrent.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index 085eaa0a630d..1b8f4b04356b 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -240,7 +240,7 @@ get_lowres_mode(data_t *data, const drmModeModeInfo *mode_default,
 			return igt_memdup(mode, sizeof(*mode));
 	}
 
-	return igt_std_1024_mode_get(60);
+	return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output));
 }
 
 static void
-- 
2.32.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] ✗ Fi.CI.BAT: failure for kms: Fix i915 fixed_mode vrefresh fallout
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
                   ` (6 preceding siblings ...)
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 7/7] tests/kms_concurrent: " Ville Syrjala
@ 2021-10-13 15:16 ` Patchwork
  2021-10-14  8:35 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Fix i915 fixed_mode vrefresh fallout (rev2) Patchwork
  2021-10-14  9:34 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  9 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2021-10-13 15:16 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 4371 bytes --]

== Series Details ==

Series: kms: Fix i915 fixed_mode vrefresh fallout
URL   : https://patchwork.freedesktop.org/series/95771/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10732 -> IGTPW_6315
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_6315 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_6315, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_6315:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_selftest@live@gem:
    - fi-pnv-d510:        [PASS][1] -> [DMESG-FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10732/fi-pnv-d510/igt@i915_selftest@live@gem.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/fi-pnv-d510/igt@i915_selftest@live@gem.html

  
Known issues
------------

  Here are the changes found in IGTPW_6315 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-tgl-1115g4:      [PASS][3] -> [FAIL][4] ([i915#1888])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10732/fi-tgl-1115g4/igt@gem_exec_suspend@basic-s0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/fi-tgl-1115g4/igt@gem_exec_suspend@basic-s0.html

  * igt@runner@aborted:
    - fi-pnv-d510:        NOTRUN -> [FAIL][5] ([fdo#109271] / [i915#2403])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/fi-pnv-d510/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@hangcheck:
    - {fi-hsw-gt1}:       [DMESG-WARN][6] ([i915#3303]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10732/fi-hsw-gt1/igt@i915_selftest@live@hangcheck.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/fi-hsw-gt1/igt@i915_selftest@live@hangcheck.html

  * igt@kms_chamelium@hdmi-crc-fast:
    - fi-kbl-7500u:       [FAIL][8] ([i915#1161]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10732/fi-kbl-7500u/igt@kms_chamelium@hdmi-crc-fast.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/fi-kbl-7500u/igt@kms_chamelium@hdmi-crc-fast.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          [DMESG-WARN][10] ([i915#4269]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10732/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
    - {fi-hsw-gt1}:       [FAIL][12] ([i915#4283]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10732/fi-hsw-gt1/igt@kms_frontbuffer_tracking@basic.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/fi-hsw-gt1/igt@kms_frontbuffer_tracking@basic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1161]: https://gitlab.freedesktop.org/drm/intel/issues/1161
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#2403]: https://gitlab.freedesktop.org/drm/intel/issues/2403
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [i915#4283]: https://gitlab.freedesktop.org/drm/intel/issues/4283


Participating hosts (41 -> 39)
------------------------------

  Missing    (2): fi-bsw-cyan fi-hsw-4200u 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_6243 -> IGTPW_6315

  CI-20190529: 20190529
  CI_DRM_10732: 3fdfa1de4774903b9cb4fb308102b5a2d762d829 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6315: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/index.html
  IGT_6243: 438788b5dbd23085745fdd3da5a237f3577945df @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6315/index.html

[-- Attachment #2: Type: text/html, Size: 5147 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for kms: Fix i915 fixed_mode vrefresh fallout (rev2)
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
                   ` (7 preceding siblings ...)
  2021-10-13 15:16 ` [igt-dev] ✗ Fi.CI.BAT: failure for kms: Fix i915 fixed_mode vrefresh fallout Patchwork
@ 2021-10-14  8:35 ` Patchwork
  2021-10-14  9:34 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  9 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2021-10-14  8:35 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 6609 bytes --]

== Series Details ==

Series: kms: Fix i915 fixed_mode vrefresh fallout (rev2)
URL   : https://patchwork.freedesktop.org/series/95771/
State : success

== Summary ==

CI Bug Log - changes from IGT_6245 -> IGTPW_6319
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/index.html

Known issues
------------

  Here are the changes found in IGTPW_6319 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@semaphore:
    - fi-icl-y:           NOTRUN -> [SKIP][1] ([fdo#109315]) +17 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-icl-y/igt@amdgpu/amd_basic@semaphore.html

  * igt@gem_huc_copy@huc-copy:
    - fi-icl-y:           NOTRUN -> [SKIP][2] ([i915#2190])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-icl-y/igt@gem_huc_copy@huc-copy.html

  * igt@kms_chamelium@dp-crc-fast:
    - fi-icl-y:           NOTRUN -> [SKIP][3] ([fdo#109284] / [fdo#111827]) +8 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-icl-y/igt@kms_chamelium@dp-crc-fast.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-bdw-samus:       NOTRUN -> [SKIP][4] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-bdw-samus/igt@kms_chamelium@hdmi-edid-read.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-icl-y:           NOTRUN -> [SKIP][5] ([fdo#109278]) +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-icl-y/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-icl-y:           NOTRUN -> [SKIP][6] ([fdo#109285])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-icl-y/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
    - fi-bdw-samus:       NOTRUN -> [SKIP][7] ([fdo#109271]) +29 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-bdw-samus/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html

  * igt@kms_psr@primary_mmap_gtt:
    - fi-icl-y:           NOTRUN -> [SKIP][8] ([fdo#110189]) +3 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-icl-y/igt@kms_psr@primary_mmap_gtt.html

  * igt@prime_vgem@basic-userptr:
    - fi-icl-y:           NOTRUN -> [SKIP][9] ([i915#3301])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-icl-y/igt@prime_vgem@basic-userptr.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@hangcheck:
    - {fi-jsl-1}:         [INCOMPLETE][10] ([i915#3057]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/fi-jsl-1/igt@i915_selftest@live@hangcheck.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-jsl-1/igt@i915_selftest@live@hangcheck.html
    - {fi-hsw-gt1}:       [DMESG-WARN][12] ([i915#3303]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/fi-hsw-gt1/igt@i915_selftest@live@hangcheck.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-hsw-gt1/igt@i915_selftest@live@hangcheck.html

  * igt@kms_flip@basic-flip-vs-modeset@c-dp1:
    - fi-cfl-8109u:       [FAIL][14] ([i915#4165]) -> [PASS][15] +1 similar issue
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/fi-cfl-8109u/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-cfl-8109u/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          [DMESG-WARN][16] ([i915#4269]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
    - {fi-hsw-gt1}:       [FAIL][18] ([i915#4283]) -> [PASS][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/fi-hsw-gt1/igt@kms_frontbuffer_tracking@basic.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-hsw-gt1/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b:
    - fi-cfl-8109u:       [DMESG-WARN][20] ([i915#295]) -> [PASS][21] +18 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295
  [i915#3057]: https://gitlab.freedesktop.org/drm/intel/issues/3057
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
  [i915#4165]: https://gitlab.freedesktop.org/drm/intel/issues/4165
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [i915#4283]: https://gitlab.freedesktop.org/drm/intel/issues/4283


Participating hosts (39 -> 36)
------------------------------

  Additional (2): fi-icl-y fi-bdw-samus 
  Missing    (5): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-kbl-r 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_6245 -> IGTPW_6319

  CI-20190529: 20190529
  CI_DRM_10732: 3fdfa1de4774903b9cb4fb308102b5a2d762d829 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6319: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/index.html
  IGT_6245: 477076d55a3cc53b8bfabae5af59114c8cd74827 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/index.html

[-- Attachment #2: Type: text/html, Size: 7639 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for kms: Fix i915 fixed_mode vrefresh fallout (rev2)
  2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
                   ` (8 preceding siblings ...)
  2021-10-14  8:35 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Fix i915 fixed_mode vrefresh fallout (rev2) Patchwork
@ 2021-10-14  9:34 ` Patchwork
  9 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2021-10-14  9:34 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 30266 bytes --]

== Series Details ==

Series: kms: Fix i915 fixed_mode vrefresh fallout (rev2)
URL   : https://patchwork.freedesktop.org/series/95771/
State : failure

== Summary ==

CI Bug Log - changes from IGT_6245_full -> IGTPW_6319_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_6319_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_6319_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_6319_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes:
    - shard-kbl:          [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-kbl3/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl3/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html

  
Known issues
------------

  Here are the changes found in IGTPW_6319_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][3] ([fdo#111827])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb8/igt@feature_discovery@chamelium.html
    - shard-iclb:         NOTRUN -> [SKIP][4] ([fdo#111827])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb4/igt@feature_discovery@chamelium.html

  * igt@feature_discovery@display-3x:
    - shard-tglb:         NOTRUN -> [SKIP][5] ([i915#1839])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb1/igt@feature_discovery@display-3x.html

  * igt@gem_create@create-massive:
    - shard-snb:          NOTRUN -> [DMESG-WARN][6] ([i915#3002])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-snb6/igt@gem_create@create-massive.html
    - shard-apl:          NOTRUN -> [DMESG-WARN][7] ([i915#3002])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl7/igt@gem_create@create-massive.html

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
    - shard-tglb:         [PASS][8] -> [INCOMPLETE][9] ([i915#456]) +1 similar issue
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-tglb1/igt@gem_ctx_isolation@preservation-s3@bcs0.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb7/igt@gem_ctx_isolation@preservation-s3@bcs0.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-apl:          NOTRUN -> [DMESG-WARN][10] ([i915#180])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl7/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_ctx_persistence@legacy-engines-hostile-preempt:
    - shard-snb:          NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#1099]) +3 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-snb7/igt@gem_ctx_persistence@legacy-engines-hostile-preempt.html

  * igt@gem_eio@unwedge-stress:
    - shard-snb:          NOTRUN -> [FAIL][12] ([i915#3354])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-snb5/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-kbl:          [PASS][13] -> [FAIL][14] ([i915#2846])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-kbl2/igt@gem_exec_fair@basic-deadline.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@gem_exec_fair@basic-deadline.html
    - shard-glk:          [PASS][15] -> [FAIL][16] ([i915#2846])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-glk2/igt@gem_exec_fair@basic-deadline.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk4/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-iclb:         [PASS][17] -> [FAIL][18] ([i915#2842])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-iclb6/igt@gem_exec_fair@basic-none-share@rcs0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb3/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-apl:          [PASS][19] -> [FAIL][20] ([i915#2842] / [i915#3468])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-apl8/igt@gem_exec_fair@basic-none@vecs0.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl1/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [PASS][21] -> [FAIL][22] ([i915#2842])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-tglb7/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-kbl:          [PASS][23] -> [FAIL][24] ([i915#2842]) +2 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-kbl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
    - shard-tglb:         NOTRUN -> [FAIL][25] ([i915#2842]) +2 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb3/igt@gem_exec_fair@basic-pace@bcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-iclb:         NOTRUN -> [FAIL][26] ([i915#2842]) +3 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb3/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_exec_params@secure-non-master:
    - shard-tglb:         NOTRUN -> [SKIP][27] ([fdo#112283])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb6/igt@gem_exec_params@secure-non-master.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [PASS][28] -> [SKIP][29] ([i915#2190])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-tglb2/igt@gem_huc_copy@huc-copy.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb7/igt@gem_huc_copy@huc-copy.html

  * igt@gem_pxp@reject-modify-context-protection-off-2:
    - shard-tglb:         NOTRUN -> [SKIP][30] ([i915#4270]) +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb2/igt@gem_pxp@reject-modify-context-protection-off-2.html

  * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
    - shard-kbl:          NOTRUN -> [SKIP][31] ([fdo#109271]) +96 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl6/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][32] ([i915#768])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb8/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-kbl:          NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#3323])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl6/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-iclb:         NOTRUN -> [SKIP][34] ([i915#3323])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb8/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-apl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3323])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl2/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-glk:          NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#3323])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk9/igt@gem_userptr_blits@dmabuf-sync.html
    - shard-tglb:         NOTRUN -> [SKIP][37] ([i915#3323])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb2/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@unsync-unmap:
    - shard-tglb:         NOTRUN -> [SKIP][38] ([i915#3297])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb2/igt@gem_userptr_blits@unsync-unmap.html

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-iclb:         NOTRUN -> [SKIP][39] ([fdo#109289])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb3/igt@gen7_exec_parse@oacontrol-tracking.html
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#109289])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb6/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
    - shard-kbl:          NOTRUN -> [SKIP][41] ([fdo#109271] / [i915#1937])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html

  * igt@i915_pm_rpm@modeset-non-lpsp:
    - shard-tglb:         NOTRUN -> [SKIP][42] ([fdo#111644] / [i915#1397] / [i915#2411])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb6/igt@i915_pm_rpm@modeset-non-lpsp.html

  * igt@i915_pm_sseu@full-enable:
    - shard-tglb:         NOTRUN -> [SKIP][43] ([fdo#109288])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb6/igt@i915_pm_sseu@full-enable.html

  * igt@i915_suspend@forcewake:
    - shard-kbl:          [PASS][44] -> [DMESG-WARN][45] ([i915#180])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-kbl3/igt@i915_suspend@forcewake.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@i915_suspend@forcewake.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][46] ([fdo#111614])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb8/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-32bpp-rotate-0:
    - shard-glk:          [PASS][47] -> [DMESG-WARN][48] ([i915#118]) +2 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-glk2/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk4/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-apl:          NOTRUN -> [SKIP][49] ([fdo#109271] / [i915#3777])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
    - shard-apl:          NOTRUN -> [SKIP][50] ([fdo#109271]) +204 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl8/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html
    - shard-iclb:         NOTRUN -> [SKIP][51] ([fdo#110723])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html
    - shard-tglb:         NOTRUN -> [SKIP][52] ([fdo#111615]) +2 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb7/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][53] ([i915#3689]) +3 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb2/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][54] ([fdo#109271] / [i915#3886]) +12 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl2/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - shard-iclb:         NOTRUN -> [SKIP][55] ([fdo#109278] / [i915#3886]) +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb7/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][56] ([fdo#109271] / [i915#3886]) +5 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl4/igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][57] ([fdo#109271] / [i915#3886]) +6 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk1/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_ccs:
    - shard-snb:          NOTRUN -> [SKIP][58] ([fdo#109271]) +354 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-snb2/igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_chamelium@dp-hpd-storm:
    - shard-iclb:         NOTRUN -> [SKIP][59] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb3/igt@kms_chamelium@dp-hpd-storm.html

  * igt@kms_chamelium@hdmi-mode-timings:
    - shard-snb:          NOTRUN -> [SKIP][60] ([fdo#109271] / [fdo#111827]) +13 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-snb2/igt@kms_chamelium@hdmi-mode-timings.html

  * igt@kms_chamelium@vga-hpd-after-suspend:
    - shard-tglb:         NOTRUN -> [SKIP][61] ([fdo#109284] / [fdo#111827]) +8 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb6/igt@kms_chamelium@vga-hpd-after-suspend.html

  * igt@kms_color_chamelium@pipe-a-ctm-blue-to-red:
    - shard-kbl:          NOTRUN -> [SKIP][62] ([fdo#109271] / [fdo#111827]) +10 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl7/igt@kms_color_chamelium@pipe-a-ctm-blue-to-red.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-5:
    - shard-glk:          NOTRUN -> [SKIP][63] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk4/igt@kms_color_chamelium@pipe-b-ctm-0-5.html

  * igt@kms_color_chamelium@pipe-c-ctm-0-25:
    - shard-apl:          NOTRUN -> [SKIP][64] ([fdo#109271] / [fdo#111827]) +17 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl7/igt@kms_color_chamelium@pipe-c-ctm-0-25.html

  * igt@kms_color_chamelium@pipe-d-ctm-blue-to-red:
    - shard-iclb:         NOTRUN -> [SKIP][65] ([fdo#109278] / [fdo#109284] / [fdo#111827])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb4/igt@kms_color_chamelium@pipe-d-ctm-blue-to-red.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-tglb:         NOTRUN -> [SKIP][66] ([fdo#111828]) +1 similar issue
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb7/igt@kms_content_protection@atomic-dpms.html
    - shard-kbl:          NOTRUN -> [TIMEOUT][67] ([i915#1319])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl6/igt@kms_content_protection@atomic-dpms.html
    - shard-iclb:         NOTRUN -> [SKIP][68] ([fdo#109300] / [fdo#111066])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb2/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@lic:
    - shard-apl:          NOTRUN -> [TIMEOUT][69] ([i915#1319]) +2 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl6/igt@kms_content_protection@lic.html

  * igt@kms_cursor_crc@pipe-a-cursor-32x32-onscreen:
    - shard-iclb:         NOTRUN -> [SKIP][70] ([fdo#109278]) +7 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb3/igt@kms_cursor_crc@pipe-a-cursor-32x32-onscreen.html
    - shard-tglb:         NOTRUN -> [SKIP][71] ([i915#3319]) +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb3/igt@kms_cursor_crc@pipe-a-cursor-32x32-onscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x170-random:
    - shard-tglb:         NOTRUN -> [SKIP][72] ([fdo#109279] / [i915#3359]) +2 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-512x170-random.html
    - shard-iclb:         NOTRUN -> [SKIP][73] ([fdo#109278] / [fdo#109279]) +1 similar issue
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb1/igt@kms_cursor_crc@pipe-a-cursor-512x170-random.html

  * igt@kms_cursor_crc@pipe-a-cursor-alpha-opaque:
    - shard-glk:          [PASS][74] -> [FAIL][75] ([i915#3444]) +1 similar issue
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-glk9/igt@kms_cursor_crc@pipe-a-cursor-alpha-opaque.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk8/igt@kms_cursor_crc@pipe-a-cursor-alpha-opaque.html

  * igt@kms_cursor_crc@pipe-a-cursor-size-change:
    - shard-snb:          [PASS][76] -> [FAIL][77] ([i915#4024])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-snb2/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-snb5/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
    - shard-iclb:         [PASS][78] -> [FAIL][79] ([i915#3444])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-iclb8/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb1/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
    - shard-apl:          [PASS][80] -> [FAIL][81] ([i915#3444])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-apl1/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl3/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
    - shard-kbl:          [PASS][82] -> [FAIL][83] ([i915#3444])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-kbl4/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
    - shard-tglb:         [PASS][84] -> [FAIL][85] ([i915#2124] / [i915#4024])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-tglb5/igt@kms_cursor_crc@pipe-a-cursor-size-change.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb8/igt@kms_cursor_crc@pipe-a-cursor-size-change.html

  * igt@kms_cursor_crc@pipe-d-cursor-32x10-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][86] ([i915#3359]) +2 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb1/igt@kms_cursor_crc@pipe-d-cursor-32x10-offscreen.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
    - shard-iclb:         NOTRUN -> [SKIP][87] ([fdo#109274] / [fdo#109278]) +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@pipe-d-single-bo:
    - shard-glk:          NOTRUN -> [SKIP][88] ([fdo#109271] / [i915#533])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk4/igt@kms_cursor_legacy@pipe-d-single-bo.html
    - shard-kbl:          NOTRUN -> [SKIP][89] ([fdo#109271] / [i915#533])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@kms_cursor_legacy@pipe-d-single-bo.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-tglb:         NOTRUN -> [SKIP][90] ([i915#4103])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb8/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dsc@basic-dsc-enable:
    - shard-iclb:         NOTRUN -> [SKIP][91] ([i915#3840])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb7/igt@kms_dsc@basic-dsc-enable.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-iclb:         NOTRUN -> [SKIP][92] ([fdo#109274]) +1 similar issue
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb2/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs:
    - shard-kbl:          NOTRUN -> [SKIP][93] ([fdo#109271] / [i915#2672])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs.html
    - shard-apl:          NOTRUN -> [SKIP][94] ([fdo#109271] / [i915#2672])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc:
    - shard-glk:          NOTRUN -> [SKIP][95] ([fdo#109271]) +79 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-iclb:         [PASS][96] -> [FAIL][97] ([i915#2546])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt:
    - shard-tglb:         NOTRUN -> [SKIP][98] ([fdo#111825]) +20 similar issues
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt:
    - shard-iclb:         NOTRUN -> [SKIP][99] ([fdo#109280]) +5 similar issues
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-kbl:          NOTRUN -> [FAIL][100] ([i915#1188])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl3/igt@kms_hdr@bpc-switch-suspend.html
    - shard-apl:          NOTRUN -> [FAIL][101] ([i915#1188])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl1/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-tglb:         NOTRUN -> [SKIP][102] ([i915#1187])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb8/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
    - shard-apl:          [PASS][103] -> [DMESG-WARN][104] ([i915#180]) +1 similar issue
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-apl7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl2/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d:
    - shard-apl:          NOTRUN -> [SKIP][105] ([fdo#109271] / [i915#533]) +1 similar issue
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html
    - shard-tglb:         [PASS][106] -> [INCOMPLETE][107] ([i915#4184] / [i915#456])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-tglb3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html

  * igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
    - shard-apl:          NOTRUN -> [FAIL][108] ([i915#265])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
    - shard-kbl:          NOTRUN -> [FAIL][109] ([fdo#108145] / [i915#265]) +1 similar issue
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl3/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
    - shard-apl:          NOTRUN -> [FAIL][110] ([fdo#108145] / [i915#265]) +2 similar issues
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl1/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2:
    - shard-tglb:         NOTRUN -> [SKIP][111] ([i915#2920]) +1 similar issue
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb6/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5:
    - shard-apl:          NOTRUN -> [SKIP][112] ([fdo#109271] / [i915#658]) +4 similar issues
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl8/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2:
    - shard-kbl:          NOTRUN -> [SKIP][113] ([fdo#109271] / [i915#658]) +1 similar issue
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html
    - shard-glk:          NOTRUN -> [SKIP][114] ([fdo#109271] / [i915#658])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk8/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html

  * igt@kms_psr@psr2_basic:
    - shard-tglb:         NOTRUN -> [FAIL][115] ([i915#132] / [i915#3467]) +1 similar issue
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb2/igt@kms_psr@psr2_basic.html
    - shard-iclb:         NOTRUN -> [SKIP][116] ([fdo#109441])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb4/igt@kms_psr@psr2_basic.html

  * igt@kms_psr@psr2_cursor_render:
    - shard-iclb:         [PASS][117] -> [SKIP][118] ([fdo#109441]) +1 similar issue
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb7/igt@kms_psr@psr2_cursor_render.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-kbl:          [PASS][119] -> [DMESG-WARN][120] ([i915#180] / [i915#295])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][121] ([i915#180])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-apl:          NOTRUN -> [SKIP][122] ([fdo#109271] / [i915#2437])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl1/igt@kms_writeback@writeback-pixel-formats.html

  * igt@nouveau_crc@pipe-b-source-rg:
    - shard-iclb:         NOTRUN -> [SKIP][123] ([i915#2530])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb7/igt@nouveau_crc@pipe-b-source-rg.html
    - shard-tglb:         NOTRUN -> [SKIP][124] ([i915#2530]) +1 similar issue
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb5/igt@nouveau_crc@pipe-b-source-rg.html

  * igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name:
    - shard-tglb:         NOTRUN -> [SKIP][125] ([fdo#109291]) +2 similar issues
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb2/igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name.html
    - shard-iclb:         NOTRUN -> [SKIP][126] ([fdo#109291]) +1 similar issue
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb2/igt@prime_nv_api@i915_nv_reimport_twice_check_flink_name.html

  * igt@prime_vgem@fence-read-hang:
    - shard-tglb:         NOTRUN -> [SKIP][127] ([fdo#109295])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb8/igt@prime_vgem@fence-read-hang.html
    - shard-iclb:         NOTRUN -> [SKIP][128] ([fdo#109295])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb1/igt@prime_vgem@fence-read-hang.html

  * igt@sysfs_clients@fair-3:
    - shard-tglb:         NOTRUN -> [SKIP][129] ([i915#2994]) +1 similar issue
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-tglb8/igt@sysfs_clients@fair-3.html

  * igt@sysfs_clients@fair-7:
    - shard-apl:          NOTRUN -> [SKIP][130] ([fdo#109271] / [i915#2994]) +4 similar issues
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-apl8/igt@sysfs_clients@fair-7.html

  * igt@sysfs_clients@sema-50:
    - shard-glk:          NOTRUN -> [SKIP][131] ([fdo#109271] / [i915#2994]) +2 similar issues
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-glk1/igt@sysfs_clients@sema-50.html

  * igt@sysfs_clients@split-10:
    - shard-iclb:         NOTRUN -> [SKIP][132] ([i915#2994])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb4/igt@sysfs_clients@split-10.html
    - shard-kbl:          NOTRUN -> [SKIP][133] ([fdo#109271] / [i915#2994])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-kbl1/igt@sysfs_clients@split-10.html

  
#### Possible fixes ####

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [FAIL][134] ([i915#2849]) -> [PASS][135]
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/shard-iclb7/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][136] ([fdo#109271]) -> [PASS][137]
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6245/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-ti

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6319/index.html

[-- Attachment #2: Type: text/html, Size: 33774 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup()
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup() Ville Syrjala
@ 2021-10-18  4:19   ` Modem, Bhanuprakash
  2021-10-18  7:19     ` Ville Syrjälä
  0 siblings, 1 reply; 20+ messages in thread
From: Modem, Bhanuprakash @ 2021-10-18  4:19 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Wednesday, October 13, 2021 6:30 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Provide a helper to do the malloc()+memcpy() in one swift blow.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  lib/igt_aux.c | 11 +++++++++++
>  lib/igt_aux.h |  2 ++
>  2 files changed, 13 insertions(+)
> 
> diff --git a/lib/igt_aux.c b/lib/igt_aux.c
> index 1217f5e88094..2445e483e210 100644
> --- a/lib/igt_aux.c
> +++ b/lib/igt_aux.c
> @@ -1527,3 +1527,14 @@ uint64_t vfs_file_max(void)
>  	}
>  	return max;
>  }
> +
> +void *igt_memdup(const void *ptr, size_t len)
> +{
> +	void *dup;
> +
> +	dup = malloc(len);
> +	if (dup)
> +		memcpy(dup, ptr, len);
> +
> +	return dup;

Don't we need to handle the malloc() failures?
If it is fine to return NULL (in case of malloc failure) from here,
I haven't seen that any caller (Other patches in this series) is handling
this NULL.

- Bhanu

> +}
> diff --git a/lib/igt_aux.h b/lib/igt_aux.h
> index 30b175d70d8b..a3c477abcd86 100644
> --- a/lib/igt_aux.h
> +++ b/lib/igt_aux.h
> @@ -324,4 +324,6 @@ void igt_lsof(const char *dpath);
> 
>  uint64_t vfs_file_max(void);
> 
> +void *igt_memdup(const void *ptr, size_t len);
> +
>  #endif /* IGT_AUX_H */
> --
> 2.32.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/7] tests/i915/kms_frontbuffer_tracking: Get rid of the funny mode_copy
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 2/7] tests/i915/kms_frontbuffer_tracking: Get rid of the funny mode_copy Ville Syrjala
@ 2021-10-18  4:34   ` Modem, Bhanuprakash
  0 siblings, 0 replies; 20+ messages in thread
From: Modem, Bhanuprakash @ 2021-10-18  4:34 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Wednesday, October 13, 2021 6:30 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 2/7] tests/i915/kms_frontbuffer_tracking: Get
> rid of the funny mode_copy
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> For some reason we make a copy of the mode into 'mode_copy', and
> then point the 'mode' pointer at that copy. Get rid of the pointer
> and just use the struct directly.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

LGTM
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>

- Bhanu

> ---
>  tests/i915/kms_frontbuffer_tracking.c | 69 +++++++++++++--------------
>  1 file changed, 33 insertions(+), 36 deletions(-)
> 
> diff --git a/tests/i915/kms_frontbuffer_tracking.c
> b/tests/i915/kms_frontbuffer_tracking.c
> index 4ae5286661bb..d8f08c147861 100644
> --- a/tests/i915/kms_frontbuffer_tracking.c
> +++ b/tests/i915/kms_frontbuffer_tracking.c
> @@ -264,7 +264,7 @@ struct {
>  struct modeset_params {
>  	enum pipe pipe;
>  	igt_output_t *output;
> -	drmModeModeInfo mode_copy, *mode;
> +	drmModeModeInfo mode;
> 
>  	struct fb_region primary;
>  	struct fb_region cursor;
> @@ -357,8 +357,7 @@ static void init_mode_params(struct modeset_params
> *params,
> 
>  	params->pipe = pipe;
>  	params->output = output;
> -	params->mode_copy = *mode;
> -	params->mode = &params->mode_copy;
> +	params->mode = *mode;
> 
>  	params->primary.plane =
> igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_PRIMARY);
>  	params->primary.fb = NULL;
> @@ -617,12 +616,12 @@ static void create_shared_fb(enum pixel_format format,
> enum tiling_type tiling)
>  	int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w, big_h;
>  	struct screen_fbs *s = &fbs[format];
> 
> -	prim_w = prim_mode_params.mode->hdisplay;
> -	prim_h = prim_mode_params.mode->vdisplay;
> +	prim_w = prim_mode_params.mode.hdisplay;
> +	prim_h = prim_mode_params.mode.vdisplay;
> 
>  	if (scnd_mode_params.output) {
> -		scnd_w = scnd_mode_params.mode->hdisplay;
> -		scnd_h = scnd_mode_params.mode->vdisplay;
> +		scnd_w = scnd_mode_params.mode.hdisplay;
> +		scnd_h = scnd_mode_params.mode.vdisplay;
>  	} else {
>  		scnd_w = 0;
>  		scnd_h = 0;
> @@ -670,8 +669,8 @@ static void create_fbs(enum pixel_format format, enum
> tiling_type tiling)
> 
>  	s->initialized = true;
> 
> -	create_fb(format, prim_mode_params.mode->hdisplay,
> -		  prim_mode_params.mode->vdisplay, tiling, PLANE_PRI,
> +	create_fb(format, prim_mode_params.mode.hdisplay,
> +		  prim_mode_params.mode.vdisplay, tiling, PLANE_PRI,
>  		  &s->prim_pri);
>  	create_fb(format, prim_mode_params.cursor.w,
>  		  prim_mode_params.cursor.h, DRM_FORMAT_MOD_LINEAR,
> @@ -687,8 +686,8 @@ static void create_fbs(enum pixel_format format, enum
> tiling_type tiling)
>  	if (!scnd_mode_params.output)
>  		return;
> 
> -	create_fb(format, scnd_mode_params.mode->hdisplay,
> -		  scnd_mode_params.mode->vdisplay, tiling, PLANE_PRI,
> +	create_fb(format, scnd_mode_params.mode.hdisplay,
> +		  scnd_mode_params.mode.vdisplay, tiling, PLANE_PRI,
>  		  &s->scnd_pri);
>  	create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h,
>  		  DRM_FORMAT_MOD_LINEAR, PLANE_CUR, &s->scnd_cur);
> @@ -700,16 +699,16 @@ static void __set_prim_plane_for_params(struct
> modeset_params *params)
>  {
>  	igt_plane_set_fb(params->primary.plane, params->primary.fb);
>  	igt_plane_set_position(params->primary.plane, 0, 0);
> -	igt_plane_set_size(params->primary.plane, params->mode->hdisplay,
> params->mode->vdisplay);
> +	igt_plane_set_size(params->primary.plane, params->mode.hdisplay, params-
> >mode.vdisplay);
>  	igt_fb_set_position(params->primary.fb, params->primary.plane,
>  			    params->primary.x, params->primary.y);
>  	igt_fb_set_size(params->primary.fb, params->primary.plane,
> -			params->mode->hdisplay, params->mode->vdisplay);
> +			params->mode.hdisplay, params->mode.vdisplay);
>  }
> 
>  static void __set_mode_for_params(struct modeset_params *params)
>  {
> -	igt_output_override_mode(params->output, params->mode);
> +	igt_output_override_mode(params->output, &params->mode);
>  	igt_output_set_pipe(params->output, params->pipe);
> 
>  	__set_prim_plane_for_params(params);
> @@ -1212,14 +1211,14 @@ static void init_blue_crc(enum pixel_format format,
> enum tiling_type tiling)
>  	if (blue_crcs[format].initialized)
>  		return;
> 
> -	create_fb(format, prim_mode_params.mode->hdisplay,
> -		  prim_mode_params.mode->vdisplay, tiling, PLANE_PRI,
> +	create_fb(format, prim_mode_params.mode.hdisplay,
> +		  prim_mode_params.mode.vdisplay, tiling, PLANE_PRI,
>  		  &blue);
> 
>  	fill_fb(&blue, COLOR_PRIM_BG);
> 
>  	igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe);
> -	igt_output_override_mode(prim_mode_params.output,
> prim_mode_params.mode);
> +	igt_output_override_mode(prim_mode_params.output,
> &prim_mode_params.mode);
>  	igt_plane_set_fb(prim_mode_params.primary.plane, &blue);
>  	igt_display_commit(&drm.display);
> 
> @@ -1252,8 +1251,8 @@ static void init_crcs(enum pixel_format format, enum
> tiling_type tiling,
>  				       sizeof(*(pattern->crcs[format])));
> 
>  	for (r = 0; r < pattern->n_rects; r++)
> -		create_fb(format, prim_mode_params.mode->hdisplay,
> -			  prim_mode_params.mode->vdisplay, tiling,
> +		create_fb(format, prim_mode_params.mode.hdisplay,
> +			  prim_mode_params.mode.vdisplay, tiling,
>  			  PLANE_PRI, &tmp_fbs[r]);
> 
>  	for (r = 0; r < pattern->n_rects; r++)
> @@ -1271,7 +1270,7 @@ static void init_crcs(enum pixel_format format, enum
> tiling_type tiling,
>  	}
> 
>  	igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe);
> -	igt_output_override_mode(prim_mode_params.output,
> prim_mode_params.mode);
> +	igt_output_override_mode(prim_mode_params.output,
> &prim_mode_params.mode);
>  	for (r = 0; r < pattern->n_rects; r++) {
>  		igt_plane_set_fb(prim_mode_params.primary.plane, &tmp_fbs[r]);
>  		igt_display_commit(&drm.display);
> @@ -1705,15 +1704,13 @@ static void update_modeset_cached_params(void)
>  	found = igt_override_all_active_output_modes_to_fit_bw(&drm.display);
>  	igt_require_f(found, "No valid mode combo found.\n");
> 
> -	prim_mode_params.mode_copy =
> *igt_output_get_mode(prim_mode_params.output);
> -	prim_mode_params.mode = &prim_mode_params.mode_copy;
> -	prim_mode_params.primary.w = prim_mode_params.mode->hdisplay;
> -	prim_mode_params.primary.h = prim_mode_params.mode->vdisplay;
> +	prim_mode_params.mode = *igt_output_get_mode(prim_mode_params.output);
> +	prim_mode_params.primary.w = prim_mode_params.mode.hdisplay;
> +	prim_mode_params.primary.h = prim_mode_params.mode.vdisplay;
> 
> -	scnd_mode_params.mode_copy =
> *igt_output_get_mode(scnd_mode_params.output);
> -	scnd_mode_params.mode = &scnd_mode_params.mode_copy;
> -	scnd_mode_params.primary.w = scnd_mode_params.mode->hdisplay;
> -	scnd_mode_params.primary.h = scnd_mode_params.mode->vdisplay;
> +	scnd_mode_params.mode = *igt_output_get_mode(scnd_mode_params.output);
> +	scnd_mode_params.primary.w = scnd_mode_params.mode.hdisplay;
> +	scnd_mode_params.primary.h = scnd_mode_params.mode.vdisplay;
> 
>  	fill_fb_region(&prim_mode_params.primary, COLOR_PRIM_BG);
>  	fill_fb_region(&scnd_mode_params.primary, COLOR_SCND_BG);
> @@ -2689,7 +2686,7 @@ static void scaledprimary_subtest(const struct test_mode
> *t)
>  	igt_plane_set_fb(reg->plane, &new_fb);
>  	igt_fb_set_position(&new_fb, reg->plane, reg->x, reg->y);
>  	igt_fb_set_size(&new_fb, reg->plane, reg->w, reg->h);
> -	igt_plane_set_size(reg->plane, params->mode->hdisplay, params->mode-
> >vdisplay);
> +	igt_plane_set_size(reg->plane, params->mode.hdisplay, params-
> >mode.vdisplay);
>  	igt_display_commit2(&drm.display, COMMIT_UNIVERSAL);
>  	do_assertions(DONT_ASSERT_CRC);
> 
> @@ -2701,11 +2698,11 @@ static void scaledprimary_subtest(const struct
> test_mode *t)
>  	/* Destination doesn't fill the entire CRTC, no scaling. */
>  	igt_fb_set_size(&new_fb, reg->plane, reg->w / 2, reg->h / 2);
>  	igt_plane_set_position(reg->plane,
> -			       params->mode->hdisplay / 4,
> -			       params->mode->vdisplay / 4);
> +			       params->mode.hdisplay / 4,
> +			       params->mode.vdisplay / 4);
>  	igt_plane_set_size(reg->plane,
> -			   params->mode->hdisplay / 2,
> -			   params->mode->vdisplay / 2);
> +			   params->mode.hdisplay / 2,
> +			   params->mode.vdisplay / 2);
>  	igt_display_commit2(&drm.display, COMMIT_UNIVERSAL);
>  	do_assertions(DONT_ASSERT_CRC);
> 
> @@ -2731,7 +2728,7 @@ static void scaledprimary_subtest(const struct test_mode
> *t)
>  	/* Back to the good and old blue fb. */
>  	igt_plane_set_fb(reg->plane, old_fb);
>  	igt_plane_set_position(params->primary.plane, 0, 0);
> -	igt_plane_set_size(reg->plane, params->mode->hdisplay, params->mode-
> >vdisplay);
> +	igt_plane_set_size(reg->plane, params->mode.hdisplay, params-
> >mode.vdisplay);
>  	igt_fb_set_position(reg->fb, reg->plane, reg->x, reg->y);
>  	igt_fb_set_size(reg->fb, reg->plane, reg->w, reg->h);
>  	igt_display_commit2(&drm.display, COMMIT_UNIVERSAL);
> @@ -2868,14 +2865,14 @@ static void farfromfence_subtest(const struct
> test_mode *t)
>  	prepare_subtest(t, pattern);
>  	target = pick_target(t, params);
> 
> -	create_fb(t->format, params->mode->hdisplay, max_height, t->tiling,
> +	create_fb(t->format, params->mode.hdisplay, max_height, t->tiling,
>  		  t->plane, &tall_fb);
> 
>  	fill_fb(&tall_fb, COLOR_PRIM_BG);
> 
>  	params->primary.fb = &tall_fb;
>  	params->primary.x = 0;
> -	params->primary.y = max_height - params->mode->vdisplay;
> +	params->primary.y = max_height - params->mode.vdisplay;
>  	set_mode_for_params(params);
>  	do_assertions(assertions);
> 
> --
> 2.32.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 3/7] lib/kms: Have igt_std_1024_mode_get() return a copy of the mode
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 3/7] lib/kms: Have igt_std_1024_mode_get() return a copy of the mode Ville Syrjala
@ 2021-10-18  4:56   ` Modem, Bhanuprakash
  0 siblings, 0 replies; 20+ messages in thread
From: Modem, Bhanuprakash @ 2021-10-18  4:56 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Wednesday, October 13, 2021 6:30 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 3/7] lib/kms: Have igt_std_1024_mode_get()
> return a copy of the mode
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We want to provide override modes with different refresh rates.
> Start by making igt_std_1024_mode_get() return a copy rather
> than a pointer to the static const mode directly. And sprinkle
> the necessary free() calls, and some igt_memdups() into parallel
> codepaths, so we are consistnetly allocating and freeing everything.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  lib/igt_kms.c                         |  4 +--
>  lib/igt_kms.h                         |  2 +-
>  tests/i915/kms_frontbuffer_tracking.c | 44 +++++++++++++--------------
>  tests/kms_concurrent.c                | 25 ++++++---------
>  4 files changed, 35 insertions(+), 40 deletions(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 6b0639f628b9..f833785b89eb 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -2478,7 +2478,7 @@ igt_output_t *igt_output_from_connector(igt_display_t
> *display,
>  	return found;
>  }
> 
> -const drmModeModeInfo *igt_std_1024_mode_get(void)
> +drmModeModeInfo *igt_std_1024_mode_get(void)
>  {
>  	static const drmModeModeInfo std_1024_mode = {
>  		.clock = 65000,
> @@ -2498,7 +2498,7 @@ const drmModeModeInfo *igt_std_1024_mode_get(void)
>  		.name = "Custom 1024x768",
>  	};
> 
> -	return &std_1024_mode;
> +	return igt_memdup(&std_1024_mode, sizeof(std_1024_mode));
>  }
> 
>  /*
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index b6cbf937166f..50b81f015e3b 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -470,7 +470,7 @@ igt_plane_t *igt_output_get_plane_type_index(igt_output_t
> *output,
>  igt_output_t *igt_output_from_connector(igt_display_t *display,
>      drmModeConnector *connector);
>  void igt_output_refresh(igt_output_t *output);
> -const drmModeModeInfo *igt_std_1024_mode_get(void);
> +drmModeModeInfo *igt_std_1024_mode_get(void);
>  void igt_output_set_writeback_fb(igt_output_t *output, struct igt_fb *fb);
>  void igt_modeset_disable_all_outputs(igt_display_t *display);
> 
> diff --git a/tests/i915/kms_frontbuffer_tracking.c
> b/tests/i915/kms_frontbuffer_tracking.c
> index d8f08c147861..007bbdeb2b1b 100644
> --- a/tests/i915/kms_frontbuffer_tracking.c
> +++ b/tests/i915/kms_frontbuffer_tracking.c
> @@ -306,51 +306,49 @@ struct {
>  	.stop = true,
>  };
> 
> -static const drmModeModeInfo *get_connector_smallest_mode(igt_output_t
> *output)
> +static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output)
>  {
>  	drmModeConnector *c = output->config.connector;
>  	const drmModeModeInfo *smallest = NULL;
>  	int i;
> 
> +	if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
> +		return igt_std_1024_mode_get();
> +
>  	for (i = 0; i < c->count_modes; i++) {
> -		drmModeModeInfo *mode = &c->modes[i];
> +		const drmModeModeInfo *mode = &c->modes[i];
> 
> -		if (!smallest)
> -			smallest = mode;
> -
> -		if (mode->hdisplay * mode->vdisplay <
> +		if (!smallest ||
> +		    mode->hdisplay * mode->vdisplay <
>  		    smallest->hdisplay * smallest->vdisplay)
>  			smallest = mode;
>  	}
> 
> -	if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
> -		smallest = igt_std_1024_mode_get();
> -
> -	return smallest;
> +	if (smallest)
> +		return igt_memdup(smallest, sizeof(*smallest));
 
By addressing the comments from patch 1/7 in this series, this patch is
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>

- Bhanu

> +	else
> +		return igt_std_1024_mode_get();
>  }
> 
> -static const drmModeModeInfo *connector_get_mode(igt_output_t *output)
> +static drmModeModeInfo *connector_get_mode(igt_output_t *output)
>  {
> -	const drmModeModeInfo *mode = NULL;
> -
> -	if (opt.small_modes)
> -		mode = get_connector_smallest_mode(output);
> -	else
> -		mode = &output->config.default_mode;
> -
> -	 /* On HSW the CRC WA is so awful that it makes you think everything is
> +	/* On HSW the CRC WA is so awful that it makes you think everything is
>  	  * bugged. */
>  	if (IS_HASWELL(intel_get_drm_devid(drm.fd)) &&
>  	    output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
> -		mode = igt_std_1024_mode_get();
> +		return igt_std_1024_mode_get();
> 
> -	return mode;
> +	if (opt.small_modes)
> +		return get_connector_smallest_mode(output);
> +	else
> +		return igt_memdup(&output->config.default_mode,
> +				  sizeof(output->config.default_mode));
>  }
> 
>  static void init_mode_params(struct modeset_params *params,
>  			     igt_output_t *output, enum pipe pipe)
>  {
> -	const drmModeModeInfo *mode;
> +	drmModeModeInfo *mode;
> 
>  	igt_output_override_mode(output, NULL);
>  	mode = connector_get_mode(output);
> @@ -380,6 +378,8 @@ static void init_mode_params(struct modeset_params
> *params,
>  	params->sprite.y = 0;
>  	params->sprite.w = 64;
>  	params->sprite.h = 64;
> +
> +	free(mode);
>  }
> 
>  static bool find_connector(bool edp_only, bool pipe_a,
> diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
> index dece615a0183..82ef0adc5e32 100644
> --- a/tests/kms_concurrent.c
> +++ b/tests/kms_concurrent.c
> @@ -223,44 +223,38 @@ test_plane_position_with_output(data_t *data, enum pipe
> pipe, int max_planes,
>  	}
>  }
> 
> -static const drmModeModeInfo *
> +static drmModeModeInfo *
>  get_lowres_mode(data_t *data, const drmModeModeInfo *mode_default,
>  		igt_output_t *output)
>  {
> -	const drmModeModeInfo *mode = igt_std_1024_mode_get();
>  	drmModeConnector *connector = output->config.connector;
>  	int limit = mode_default->vdisplay - SIZE_PLANE;
> -	bool found;
> 
>  	if (!connector)
> -		return mode;
> +		return igt_std_1024_mode_get();
> 
> -	found = false;
>  	for (int i = 0; i < connector->count_modes; i++) {
> -		mode = &connector->modes[i];
> +		const drmModeModeInfo *mode = &connector->modes[i];
> 
> -		if (mode->vdisplay < limit) {
> -			found = true;
> -			break;
> -		}
> +		if (mode->vdisplay < limit)
> +			return igt_memdup(mode, sizeof(*mode));
>  	}
> 
> -	if (!found)
> -		mode = igt_std_1024_mode_get();
> -
> -	return mode;
> +	return igt_std_1024_mode_get();
>  }
> 
>  static void
>  test_resolution_with_output(data_t *data, enum pipe pipe, int max_planes,
> igt_output_t *output)
>  {
> -	const drmModeModeInfo *mode_hi, *mode_lo;
>  	int iterations = opt.iterations < 1 ? max_planes : opt.iterations;
>  	bool loop_forever = opt.iterations == LOOP_FOREVER ? true : false;
>  	int i;
> 
>  	i = 0;
>  	while (i < iterations || loop_forever) {
> +		const drmModeModeInfo *mode_hi;
> +		drmModeModeInfo *mode_lo;
> +
>  		igt_output_set_pipe(output, pipe);
> 
>  		mode_hi = igt_output_get_mode(output);
> @@ -268,6 +262,7 @@ test_resolution_with_output(data_t *data, enum pipe pipe,
> int max_planes, igt_ou
> 
>  		/* switch to lower resolution */
>  		igt_output_override_mode(output, mode_lo);
> +		free(mode_lo);
>  		if (is_amdgpu_device(data->drm_fd))
>  			igt_output_set_pipe(output, PIPE_NONE);
>  		igt_display_commit2(&data->display, COMMIT_ATOMIC);
> --
> 2.32.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 4/7] lib/kms: Have igt_std_1024_mode_get() return a mode with specific refresh
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 4/7] lib/kms: Have igt_std_1024_mode_get() return a mode with specific refresh Ville Syrjala
@ 2021-10-18  4:59   ` Modem, Bhanuprakash
  0 siblings, 0 replies; 20+ messages in thread
From: Modem, Bhanuprakash @ 2021-10-18  4:59 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Wednesday, October 13, 2021 6:30 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 4/7] lib/kms: Have igt_std_1024_mode_get()
> return a mode with specific refresh
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pass the desired refresh rate to igt_std_1024_mode_get(), and have it
> return a mode that will have said refresh rate.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

LGTM
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>

- Bhanu

> ---
>  lib/igt_kms.c                         | 8 ++++----
>  lib/igt_kms.h                         | 2 +-
>  tests/i915/kms_frontbuffer_tracking.c | 6 +++---
>  tests/kms_concurrent.c                | 4 ++--
>  4 files changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index f833785b89eb..b6669257f08c 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -2478,10 +2478,10 @@ igt_output_t *igt_output_from_connector(igt_display_t
> *display,
>  	return found;
>  }
> 
> -drmModeModeInfo *igt_std_1024_mode_get(void)
> +drmModeModeInfo *igt_std_1024_mode_get(int vrefresh)
>  {
> -	static const drmModeModeInfo std_1024_mode = {
> -		.clock = 65000,
> +	const drmModeModeInfo std_1024_mode = {
> +		.clock = 65000 * vrefresh / 60,
>  		.hdisplay = 1024,
>  		.hsync_start = 1048,
>  		.hsync_end = 1184,
> @@ -2492,7 +2492,7 @@ drmModeModeInfo *igt_std_1024_mode_get(void)
>  		.vsync_end = 777,
>  		.vtotal = 806,
>  		.vscan = 0,
> -		.vrefresh = 60,
> +		.vrefresh = vrefresh,
>  		.flags = 0xA,
>  		.type = 0x40,
>  		.name = "Custom 1024x768",
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 50b81f015e3b..7e3e67efea7a 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -470,7 +470,7 @@ igt_plane_t *igt_output_get_plane_type_index(igt_output_t
> *output,
>  igt_output_t *igt_output_from_connector(igt_display_t *display,
>      drmModeConnector *connector);
>  void igt_output_refresh(igt_output_t *output);
> -drmModeModeInfo *igt_std_1024_mode_get(void);
> +drmModeModeInfo *igt_std_1024_mode_get(int vrefresh);
>  void igt_output_set_writeback_fb(igt_output_t *output, struct igt_fb *fb);
>  void igt_modeset_disable_all_outputs(igt_display_t *display);
> 
> diff --git a/tests/i915/kms_frontbuffer_tracking.c
> b/tests/i915/kms_frontbuffer_tracking.c
> index 007bbdeb2b1b..2a1ed5f52e37 100644
> --- a/tests/i915/kms_frontbuffer_tracking.c
> +++ b/tests/i915/kms_frontbuffer_tracking.c
> @@ -313,7 +313,7 @@ static drmModeModeInfo
> *get_connector_smallest_mode(igt_output_t *output)
>  	int i;
> 
>  	if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
> -		return igt_std_1024_mode_get();
> +		return igt_std_1024_mode_get(60);
> 
>  	for (i = 0; i < c->count_modes; i++) {
>  		const drmModeModeInfo *mode = &c->modes[i];
> @@ -327,7 +327,7 @@ static drmModeModeInfo
> *get_connector_smallest_mode(igt_output_t *output)
>  	if (smallest)
>  		return igt_memdup(smallest, sizeof(*smallest));
>  	else
> -		return igt_std_1024_mode_get();
> +		return igt_std_1024_mode_get(60);
>  }
> 
>  static drmModeModeInfo *connector_get_mode(igt_output_t *output)
> @@ -336,7 +336,7 @@ static drmModeModeInfo *connector_get_mode(igt_output_t
> *output)
>  	  * bugged. */
>  	if (IS_HASWELL(intel_get_drm_devid(drm.fd)) &&
>  	    output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
> -		return igt_std_1024_mode_get();
> +		return igt_std_1024_mode_get(60);
> 
>  	if (opt.small_modes)
>  		return get_connector_smallest_mode(output);
> diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
> index 82ef0adc5e32..085eaa0a630d 100644
> --- a/tests/kms_concurrent.c
> +++ b/tests/kms_concurrent.c
> @@ -231,7 +231,7 @@ get_lowres_mode(data_t *data, const drmModeModeInfo
> *mode_default,
>  	int limit = mode_default->vdisplay - SIZE_PLANE;
> 
>  	if (!connector)
> -		return igt_std_1024_mode_get();
> +		return igt_std_1024_mode_get(60);
> 
>  	for (int i = 0; i < connector->count_modes; i++) {
>  		const drmModeModeInfo *mode = &connector->modes[i];
> @@ -240,7 +240,7 @@ get_lowres_mode(data_t *data, const drmModeModeInfo
> *mode_default,
>  			return igt_memdup(mode, sizeof(*mode));
>  	}
> 
> -	return igt_std_1024_mode_get();
> +	return igt_std_1024_mode_get(60);
>  }
> 
>  static void
> --
> 2.32.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 5/7] lib/kms: Introduce igt_output_preferred_vrefresh()
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 5/7] lib/kms: Introduce igt_output_preferred_vrefresh() Ville Syrjala
@ 2021-10-18  5:00   ` Modem, Bhanuprakash
  0 siblings, 0 replies; 20+ messages in thread
From: Modem, Bhanuprakash @ 2021-10-18  5:00 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Wednesday, October 13, 2021 6:30 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 5/7] lib/kms: Introduce
> igt_output_preferred_vrefresh()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Add a helper to query the output's preferred vertical
> refresh rate.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

LGTM
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>

- Bhanu

> ---
>  lib/igt_kms.c | 18 ++++++++++++++++++
>  lib/igt_kms.h |  1 +
>  2 files changed, 19 insertions(+)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index b6669257f08c..34a2aa00ea02 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -4035,6 +4035,24 @@ void igt_output_override_mode(igt_output_t *output,
> const drmModeModeInfo *mode)
>  	}
>  }
> 
> +/*
> + * igt_output_preferred_vrefresh:
> + * @output: Output whose preferred vrefresh is queried
> + *
> + * Return the vertical refresh rate of @output's preferred
> + * mode. If the output reports no modes return 60Hz as
> + * a fallback.
> + */
> +int igt_output_preferred_vrefresh(igt_output_t *output)
> +{
> +	drmModeConnector *connector = output->config.connector;
> +
> +	if (connector->count_modes)
> +		return connector->modes[0].vrefresh;
> +	else
> +		return 60;
> +}
> +
>  /*
>   * igt_output_set_pipe:
>   * @output: Target output for which the pipe is being set to
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 7e3e67efea7a..e9ecd21e9824 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -461,6 +461,7 @@ void igt_display_require_output_on_pipe(igt_display_t
> *display, enum pipe pipe);
>  const char *igt_output_name(igt_output_t *output);
>  drmModeModeInfo *igt_output_get_mode(igt_output_t *output);
>  void igt_output_override_mode(igt_output_t *output, const drmModeModeInfo
> *mode);
> +int igt_output_preferred_vrefresh(igt_output_t *output);
>  void igt_output_set_pipe(igt_output_t *output, enum pipe pipe);
>  igt_plane_t *igt_output_get_plane(igt_output_t *output, int plane_idx);
>  igt_plane_t *igt_output_get_plane_type(igt_output_t *output, int plane_type);
> --
> 2.32.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 6/7] tests/i915/kms_frontbuffer_tracking: Use preferred modes's vrefresh
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 6/7] tests/i915/kms_frontbuffer_tracking: Use preferred modes's vrefresh Ville Syrjala
@ 2021-10-18  5:02   ` Modem, Bhanuprakash
  0 siblings, 0 replies; 20+ messages in thread
From: Modem, Bhanuprakash @ 2021-10-18  5:02 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Wednesday, October 13, 2021 6:30 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 6/7] tests/i915/kms_frontbuffer_tracking: Use
> preferred modes's vrefresh
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> i915 will reject custom modes that don't match the laptop
> panel's fixed mode refresh rate. Thus we must generate
> our override modes with a matching refresh rate.
> 
> https://gitlab.freedesktop.org/drm/intel/-/issues/4283
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

LGTM
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>

- Bhanu

> ---
>  tests/i915/kms_frontbuffer_tracking.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/i915/kms_frontbuffer_tracking.c
> b/tests/i915/kms_frontbuffer_tracking.c
> index 2a1ed5f52e37..d6a884926c48 100644
> --- a/tests/i915/kms_frontbuffer_tracking.c
> +++ b/tests/i915/kms_frontbuffer_tracking.c
> @@ -313,7 +313,7 @@ static drmModeModeInfo
> *get_connector_smallest_mode(igt_output_t *output)
>  	int i;
> 
>  	if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
> -		return igt_std_1024_mode_get(60);
> +		return
> igt_std_1024_mode_get(igt_output_preferred_vrefresh(output));
> 
>  	for (i = 0; i < c->count_modes; i++) {
>  		const drmModeModeInfo *mode = &c->modes[i];
> @@ -336,7 +336,7 @@ static drmModeModeInfo *connector_get_mode(igt_output_t
> *output)
>  	  * bugged. */
>  	if (IS_HASWELL(intel_get_drm_devid(drm.fd)) &&
>  	    output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
> -		return igt_std_1024_mode_get(60);
> +		return
> igt_std_1024_mode_get(igt_output_preferred_vrefresh(output));
> 
>  	if (opt.small_modes)
>  		return get_connector_smallest_mode(output);
> --
> 2.32.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 7/7] tests/kms_concurrent: Use preferred modes's vrefresh
  2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 7/7] tests/kms_concurrent: " Ville Syrjala
@ 2021-10-18  5:03   ` Modem, Bhanuprakash
  0 siblings, 0 replies; 20+ messages in thread
From: Modem, Bhanuprakash @ 2021-10-18  5:03 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Wednesday, October 13, 2021 6:30 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 7/7] tests/kms_concurrent: Use preferred
> modes's vrefresh
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> i915 will reject custom modes that don't match the laptop
> panel's fixed mode refresh rate. Thus we must generate
> our override modes with a matching refresh rate.
> 
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4284
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
 
LGTM
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>

- Bhanu

> ---
>  tests/kms_concurrent.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
> index 085eaa0a630d..1b8f4b04356b 100644
> --- a/tests/kms_concurrent.c
> +++ b/tests/kms_concurrent.c
> @@ -240,7 +240,7 @@ get_lowres_mode(data_t *data, const drmModeModeInfo
> *mode_default,
>  			return igt_memdup(mode, sizeof(*mode));
>  	}
> 
> -	return igt_std_1024_mode_get(60);
> +	return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output));
>  }
> 
>  static void
> --
> 2.32.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup()
  2021-10-18  4:19   ` Modem, Bhanuprakash
@ 2021-10-18  7:19     ` Ville Syrjälä
  2021-10-18 10:10       ` Modem, Bhanuprakash
  0 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjälä @ 2021-10-18  7:19 UTC (permalink / raw)
  To: Modem, Bhanuprakash; +Cc: igt-dev

On Mon, Oct 18, 2021 at 04:19:41AM +0000, Modem, Bhanuprakash wrote:
> > From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> > Syrjala
> > Sent: Wednesday, October 13, 2021 6:30 PM
> > To: igt-dev@lists.freedesktop.org
> > Subject: [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup()
> > 
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Provide a helper to do the malloc()+memcpy() in one swift blow.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  lib/igt_aux.c | 11 +++++++++++
> >  lib/igt_aux.h |  2 ++
> >  2 files changed, 13 insertions(+)
> > 
> > diff --git a/lib/igt_aux.c b/lib/igt_aux.c
> > index 1217f5e88094..2445e483e210 100644
> > --- a/lib/igt_aux.c
> > +++ b/lib/igt_aux.c
> > @@ -1527,3 +1527,14 @@ uint64_t vfs_file_max(void)
> >  	}
> >  	return max;
> >  }
> > +
> > +void *igt_memdup(const void *ptr, size_t len)
> > +{
> > +	void *dup;
> > +
> > +	dup = malloc(len);
> > +	if (dup)
> > +		memcpy(dup, ptr, len);
> > +
> > +	return dup;
> 
> Don't we need to handle the malloc() failures?

Returning NULL is the way we handle malloc failures.

> If it is fine to return NULL (in case of malloc failure) from here,
> I haven't seen that any caller (Other patches in this series) is handling
> this NULL.

In actual tests the normal way to handle malloc failures is by
exploding. Nothing special needed for that.

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup()
  2021-10-18  7:19     ` Ville Syrjälä
@ 2021-10-18 10:10       ` Modem, Bhanuprakash
  0 siblings, 0 replies; 20+ messages in thread
From: Modem, Bhanuprakash @ 2021-10-18 10:10 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Sent: Monday, October 18, 2021 12:50 PM
> To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Cc: igt-dev@lists.freedesktop.org
> Subject: Re: [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup()
> 
> On Mon, Oct 18, 2021 at 04:19:41AM +0000, Modem, Bhanuprakash wrote:
> > > From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Ville
> > > Syrjala
> > > Sent: Wednesday, October 13, 2021 6:30 PM
> > > To: igt-dev@lists.freedesktop.org
> > > Subject: [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup()
> > >
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > >
> > > Provide a helper to do the malloc()+memcpy() in one swift blow.
> > >
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  lib/igt_aux.c | 11 +++++++++++
> > >  lib/igt_aux.h |  2 ++
> > >  2 files changed, 13 insertions(+)
> > >
> > > diff --git a/lib/igt_aux.c b/lib/igt_aux.c
> > > index 1217f5e88094..2445e483e210 100644
> > > --- a/lib/igt_aux.c
> > > +++ b/lib/igt_aux.c
> > > @@ -1527,3 +1527,14 @@ uint64_t vfs_file_max(void)
> > >  	}
> > >  	return max;
> > >  }
> > > +
> > > +void *igt_memdup(const void *ptr, size_t len)
> > > +{
> > > +	void *dup;
> > > +
> > > +	dup = malloc(len);
> > > +	if (dup)
> > > +		memcpy(dup, ptr, len);
> > > +
> > > +	return dup;
> >
> > Don't we need to handle the malloc() failures?
> 
> Returning NULL is the way we handle malloc failures.
> 
> > If it is fine to return NULL (in case of malloc failure) from here,
> > I haven't seen that any caller (Other patches in this series) is handling
> > this NULL.
> 
> In actual tests the normal way to handle malloc failures is by
> exploding. Nothing special needed for that.

Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>

> 
> --
> Ville Syrjälä
> Intel

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2021-10-18 10:10 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-13 12:59 [igt-dev] [PATCH i-g-t 0/7] kms: Fix i915 fixed_mode vrefresh fallout Ville Syrjala
2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 1/7] lib: Introduce igt_memdup() Ville Syrjala
2021-10-18  4:19   ` Modem, Bhanuprakash
2021-10-18  7:19     ` Ville Syrjälä
2021-10-18 10:10       ` Modem, Bhanuprakash
2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 2/7] tests/i915/kms_frontbuffer_tracking: Get rid of the funny mode_copy Ville Syrjala
2021-10-18  4:34   ` Modem, Bhanuprakash
2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 3/7] lib/kms: Have igt_std_1024_mode_get() return a copy of the mode Ville Syrjala
2021-10-18  4:56   ` Modem, Bhanuprakash
2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 4/7] lib/kms: Have igt_std_1024_mode_get() return a mode with specific refresh Ville Syrjala
2021-10-18  4:59   ` Modem, Bhanuprakash
2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 5/7] lib/kms: Introduce igt_output_preferred_vrefresh() Ville Syrjala
2021-10-18  5:00   ` Modem, Bhanuprakash
2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 6/7] tests/i915/kms_frontbuffer_tracking: Use preferred modes's vrefresh Ville Syrjala
2021-10-18  5:02   ` Modem, Bhanuprakash
2021-10-13 12:59 ` [igt-dev] [PATCH i-g-t 7/7] tests/kms_concurrent: " Ville Syrjala
2021-10-18  5:03   ` Modem, Bhanuprakash
2021-10-13 15:16 ` [igt-dev] ✗ Fi.CI.BAT: failure for kms: Fix i915 fixed_mode vrefresh fallout Patchwork
2021-10-14  8:35 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Fix i915 fixed_mode vrefresh fallout (rev2) Patchwork
2021-10-14  9:34 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

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.