All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set
@ 2020-04-03 13:03 Arkadiusz Hiler
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_dp_dsc: Explicitly enable mode before DSC checks Arkadiusz Hiler
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Arkadiusz Hiler @ 2020-04-03 13:03 UTC (permalink / raw)
  To: igt-dev

Subtest 'invalid' was depending on a "leftover" mode set by something
external (usually fbcon) in order to work.

Let's make the test more robust by setting the mode explicitly.

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_vblank.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
index a895ab80..edf8581e 100644
--- a/tests/kms_vblank.c
+++ b/tests/kms_vblank.c
@@ -472,9 +472,22 @@ static void invalid_subtest(data_t *data, int fd)
 {
 	union drm_wait_vblank vbl;
 	unsigned long valid_flags;
+	enum pipe pipe;
+	igt_output_t* output;
+	bool found = false;
 
 	igt_display_require_output_on_pipe(&data->display, 0);
 
+	/* we need to have a mode set, otherwise we will get EINVAL no matter what */
+	for_each_pipe_with_single_output(&data->display, pipe, output) {
+		data->pipe = pipe;
+		found = true;
+		break;
+	}
+
+	igt_require_f(found, "No outputs connected = no vblanks\n");
+	prepare_crtc(data, fd, output);
+
 	/* First check all is well with a simple query */
 	memset(&vbl, 0, sizeof(vbl));
 	vbl.request.type = DRM_VBLANK_RELATIVE;
@@ -508,6 +521,7 @@ static void invalid_subtest(data_t *data, int fd)
 	vbl.request.type |= _DRM_VBLANK_SECONDARY;
 	vbl.request.type |= _DRM_VBLANK_FLAGS_MASK;
 	igt_assert_eq(wait_vblank(fd, &vbl), -EINVAL);
+	cleanup_crtc(data, fd, output);
 }
 
 igt_main
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 2/6] tests/kms_dp_dsc: Explicitly enable mode before DSC checks
  2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
@ 2020-04-03 13:03 ` Arkadiusz Hiler
  2020-04-06  9:50   ` Imre Deak
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 3/6] lib/kms: Commit reasonable defaults on display init Arkadiusz Hiler
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 11+ messages in thread
From: Arkadiusz Hiler @ 2020-04-03 13:03 UTC (permalink / raw)
  To: igt-dev

The test was depending on a leftover mode set by something external
(usually fbcon) in order to work.

Let's create the FB once ahead of any testing, set a mode and check for
DSC support.

Few extra cleanups:
 * remove unused fields in data_t
 * properly free connector
 * don't recreate FB while iterating over pipes

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_dp_dsc.c | 73 +++++++++++++++++++++++++++++++++-------------
 1 file changed, 53 insertions(+), 20 deletions(-)

diff --git a/tests/kms_dp_dsc.c b/tests/kms_dp_dsc.c
index e2e3aaa0..7107fe59 100644
--- a/tests/kms_dp_dsc.c
+++ b/tests/kms_dp_dsc.c
@@ -52,15 +52,11 @@ enum dsc_test_type
 typedef struct {
 	int drm_fd;
 	int debugfs_fd;
-	uint32_t id;
 	igt_display_t display;
 	struct igt_fb fb_test_pattern;
 	igt_output_t *output;
-	int mode_valid;
 	drmModeModeInfo *mode;
 	drmModeConnector *connector;
-	drmModeEncoder *encoder;
-	int crtc;
 	enum pipe pipe;
 	char conn_name[128];
 } data_t;
@@ -168,7 +164,6 @@ static void test_cleanup(data_t *data)
 						    DRM_PLANE_TYPE_PRIMARY);
 		igt_plane_set_fb(primary, NULL);
 		igt_display_commit(&data->display);
-		igt_remove_fb(data->drm_fd, &data->fb_test_pattern);
 	}
 }
 
@@ -185,8 +180,6 @@ static void kms_dp_dsc_exit_handler(int sig)
 static void update_display(data_t *data, enum dsc_test_type test_type)
 {
 	igt_plane_t *primary;
-	data->mode = igt_output_get_mode(data->output);
-	data->connector = data->output->config.connector;
 
 	if (data->connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort &&
 	    data->pipe == PIPE_A) {
@@ -206,11 +199,6 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
 		force_dp_dsc_enable(data);
 
 		igt_output_set_pipe(data->output, data->pipe);
-		igt_create_pattern_fb(data->drm_fd, data->mode->hdisplay,
-				      data->mode->vdisplay,
-				      DRM_FORMAT_XRGB8888,
-				      LOCAL_DRM_FORMAT_MOD_NONE,
-				      &data->fb_test_pattern);
 		primary = igt_output_get_plane_type(data->output,
 						    DRM_PLANE_TYPE_PRIMARY);
 
@@ -236,16 +224,52 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
 	}
 }
 
-static void run_test(data_t *data, igt_output_t *output,
-		     enum dsc_test_type test_type)
+static void prepare_output(data_t *data, igt_output_t *output)
 {
+	igt_plane_t *primary;
 	enum pipe pipe;
+	bool found = false;
+	drmModeModeInfo *mode;
 
-	for_each_pipe(&data->display, pipe) {
+	igt_display_reset(&data->display);
 
+	for_each_pipe(&data->display, pipe) {
 		if (igt_pipe_connector_valid(pipe, output)) {
 			data->pipe = pipe;
 			data->output = output;
+			data->connector = data->output->config.connector;
+			found = true;
+			break;
+		}
+	}
+
+	igt_assert_f(found, "No valid pipe for connector %s\n", data->conn_name);
+
+	mode = igt_output_get_mode(data->output);
+
+	igt_output_set_pipe(data->output, data->pipe);
+	igt_create_pattern_fb(data->drm_fd, mode->hdisplay,
+			      mode->vdisplay,
+			      DRM_FORMAT_XRGB8888,
+			      LOCAL_DRM_FORMAT_MOD_NONE,
+			      &data->fb_test_pattern);
+
+	igt_output_set_pipe(data->output, data->pipe);
+	primary = igt_output_get_plane_type(data->output,
+					    DRM_PLANE_TYPE_PRIMARY);
+
+	igt_plane_set_fb(primary, &data->fb_test_pattern);
+	igt_display_commit(&data->display);
+}
+
+static void run_test(data_t *data, enum dsc_test_type test_type)
+{
+	enum pipe pipe;
+
+	for_each_pipe(&data->display, pipe) {
+
+		if (igt_pipe_connector_valid(pipe, data->output)) {
+			data->pipe = pipe;
 			update_display(data, test_type);
 			test_cleanup(data);
 		}
@@ -281,31 +305,40 @@ igt_main
 				if (connector->connection != DRM_MODE_CONNECTED ||
 				    connector->connector_type !=
 				    tests[test_cnt])
-					continue;
+					goto loop_cleanup;
+
 				output = igt_output_from_connector(&data.display, connector);
 				sprintf(data.conn_name, "%s-%d",
 					kmstest_connector_type_str(connector->connector_type),
 					connector->connector_type_id);
+
+				/* we need to have output enabled to do the DSC checks below */
+				prepare_output(&data, output);
+
 				if(!is_dp_dsc_supported(&data)) {
 					igt_debug("DSC not supported on connector %s \n",
 						  data.conn_name);
-					continue;
+					goto loop_cleanup;
 				}
+
 				if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort &&
 				    !is_dp_fec_supported(&data)) {
 					igt_debug("DSC cannot be enabled without FEC on %s\n",
 						  data.conn_name);
-					continue;
+					goto loop_cleanup;
 				}
 				test_conn_cnt++;
-				run_test(&data, output, test_basic_dsc_enable);
+				run_test(&data, test_basic_dsc_enable);
+
+loop_cleanup:
+				drmModeFreeConnector(connector);
+				igt_remove_fb(data.drm_fd, &data.fb_test_pattern);
 			}
 			igt_skip_on(test_conn_cnt == 0);
 		}
 	}
 
 	igt_fixture {
-		drmModeFreeConnector(connector);
 		drmModeFreeResources(res);
 		close(data.debugfs_fd);
 		close(data.drm_fd);
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 3/6] lib/kms: Commit reasonable defaults on display init
  2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_dp_dsc: Explicitly enable mode before DSC checks Arkadiusz Hiler
@ 2020-04-03 13:03 ` Arkadiusz Hiler
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 4/6] lib/kms: Reprobe connector state after disabling modest Arkadiusz Hiler
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Arkadiusz Hiler @ 2020-04-03 13:03 UTC (permalink / raw)
  To: igt-dev

We often end up with a leftover state from fbcon with a mode enabled on
some of the connecters. Let's clean that up.

Issue: https://gitlab.freedesktop.org/drm/intel/issues/323
Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
---
 lib/igt_kms.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 7f9fafb3..796da1fb 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -2066,6 +2066,10 @@ void igt_display_require(igt_display_t *display, int drm_fd)
 	/* Set reasonable default values for every object in the display. */
 	igt_display_reset(display);
 
+	/* Commit those resonable defaults to clean up fbcon/etc leftover state */
+	igt_display_commit2(display,
+			    display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
 out:
 	LOG_UNINDENT(display);
 
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 4/6] lib/kms: Reprobe connector state after disabling modest
  2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_dp_dsc: Explicitly enable mode before DSC checks Arkadiusz Hiler
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 3/6] lib/kms: Commit reasonable defaults on display init Arkadiusz Hiler
@ 2020-04-03 13:03 ` Arkadiusz Hiler
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 5/6] tests/kms_chamelium: Issue disabling modeset when resetting state Arkadiusz Hiler
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Arkadiusz Hiler @ 2020-04-03 13:03 UTC (permalink / raw)
  To: igt-dev

With TypeC we don't always get hotplug events for a connector until the
mode is disabled.

Cc: Imre Deak <imre.deak@intel.com>
Issue: https://gitlab.freedesktop.org/drm/intel/issues/323
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
---
 lib/igt_kms.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 796da1fb..b461818a 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -2040,7 +2040,6 @@ void igt_display_require(igt_display_t *display, int drm_fd)
 
 	for (i = 0; i < display->n_outputs; i++) {
 		igt_output_t *output = &display->outputs[i];
-		drmModeConnector *connector;
 
 		/*
 		 * We don't assign each output a pipe unless
@@ -2051,13 +2050,6 @@ void igt_display_require(igt_display_t *display, int drm_fd)
 		output->display = display;
 
 		igt_output_refresh(output);
-
-		connector = output->config.connector;
-		if (connector && (!connector->count_modes ||
-		    connector->connection == DRM_MODE_UNKNOWNCONNECTION)) {
-			output->force_reprobe = true;
-			igt_output_refresh(output);
-		}
 	}
 
 	drmModeFreePlaneResources(plane_resources);
@@ -2070,6 +2062,25 @@ void igt_display_require(igt_display_t *display, int drm_fd)
 	igt_display_commit2(display,
 			    display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
+	/*
+	 * Let's reprobe all connectors to make sure we have up to date stete.
+	 * Some connectors may require disabling modeset to be detected
+	 * correctly.
+	 */
+	for (i = 0; i < display->n_outputs; i++) {
+		igt_output_t *output = &display->outputs[i];
+		drmModeConnector *connector;
+
+		igt_output_refresh(output);
+
+		connector = output->config.connector;
+		if (connector && (!connector->count_modes ||
+		    connector->connection == DRM_MODE_UNKNOWNCONNECTION)) {
+			output->force_reprobe = true;
+			igt_output_refresh(output);
+		}
+	}
+
 out:
 	LOG_UNINDENT(display);
 
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 5/6] tests/kms_chamelium: Issue disabling modeset when resetting state
  2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
                   ` (2 preceding siblings ...)
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 4/6] lib/kms: Reprobe connector state after disabling modest Arkadiusz Hiler
@ 2020-04-03 13:03 ` Arkadiusz Hiler
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 6/6] tests/kms_chamelium: Test HPD for different mode handling scenarios Arkadiusz Hiler
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Arkadiusz Hiler @ 2020-04-03 13:03 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

Each tests resets the state to be sure it starts with a clean slate.
Let's add disabling modeset to the pile, to be sure that we get the
hotplug events and the connector state is correct.

Cc: Kunal Joshi <kunal1.joshi@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Issue: https://gitlab.freedesktop.org/drm/intel/issues/323
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/kms_chamelium.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index 08abd961..236e1010 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -273,7 +273,14 @@ check_analog_bridge(data_t *data, struct chamelium_port *port)
 static void
 reset_state(data_t *data, struct chamelium_port *port)
 {
-	int p;
+	int p, i;
+
+	for (i = 0; i < data->display.n_outputs; i++) {
+		igt_output_t *output = &data->display.outputs[i];
+		igt_output_set_pipe(output, PIPE_NONE);
+	}
+
+	igt_display_commit2(&data->display, COMMIT_ATOMIC);
 
 	chamelium_reset(data->chamelium);
 
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 6/6] tests/kms_chamelium: Test HPD for different mode handling scenarios
  2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
                   ` (3 preceding siblings ...)
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 5/6] tests/kms_chamelium: Issue disabling modeset when resetting state Arkadiusz Hiler
@ 2020-04-03 13:03 ` Arkadiusz Hiler
  2020-04-03 14:41 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] tests/kms_vblank: Make sure that we have a mode set Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Arkadiusz Hiler @ 2020-04-03 13:03 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

The default scenario is now performing all hotplugs with modes disabled
on all connectors. This is the quickest of the tests and represents
userspace not caring about the new display (e.g. explicitly disabled).

*-hpd-enable-disable-mode covers the most common userspace behavior
where each hotplug event is accompanied by a corresponding enabling /
disabling commit.

*-hpd-with-enabled-mode explicitly targets the scenario where we have
mode enabled and never disable it as we do hotplugs to reproduce the
issue we see with TypeC connectors for ICL and TGL.

v2:
 - refresh igt_display output state after reprobing
 - get mode and set pipe only after we have connector plugged in

v3: fix VGA subtest names (Kunal)

Cc: Kunal Joshi <kunal1.joshi@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Issue: https://gitlab.freedesktop.org/drm/intel/issues/323
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_kms.c         |   2 +-
 lib/igt_kms.h         |   1 +
 tests/kms_chamelium.c | 315 ++++++++++++++++++++++++++++--------------
 3 files changed, 216 insertions(+), 102 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index b461818a..9fc9834a 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -1666,7 +1666,7 @@ static void igt_display_log_shift(igt_display_t *display, int shift)
 	igt_assert(display->log_shift >= 0);
 }
 
-static void igt_output_refresh(igt_output_t *output)
+void igt_output_refresh(igt_output_t *output)
 {
 	igt_display_t *display = output->display;
 	unsigned long crtc_idx_mask = 0;
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index cd3fdbc0..adca59ac 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -423,6 +423,7 @@ igt_plane_t *igt_output_get_plane_type_index(igt_output_t *output,
 					     int plane_type, int index);
 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);
 
 igt_plane_t *igt_pipe_get_plane_type(igt_pipe_t *pipe, int plane_type);
diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index 236e1010..77c203d3 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -45,6 +45,12 @@ enum test_edid {
 };
 #define TEST_EDID_COUNT 5
 
+enum test_modeset_mode {
+	TEST_MODESET_ON,
+	TEST_MODESET_ON_OFF,
+	TEST_MODESET_OFF,
+};
+
 typedef struct {
 	struct chamelium *chamelium;
 	struct chamelium_port **ports;
@@ -111,12 +117,17 @@ reprobe_connector(data_t *data, struct chamelium_port *port)
 {
 	drmModeConnector *connector;
 	drmModeConnection status;
+	igt_output_t *output;
 
 	igt_debug("Reprobing %s...\n", chamelium_port_get_name(port));
 	connector = chamelium_port_get_connector(data->chamelium, port, true);
 	igt_assert(connector);
 	status = connector->connection;
 
+	/* let's make sure that igt_display is up to date too */
+	output = igt_output_from_connector(&data->display, connector);
+	igt_output_refresh(output);
+
 	drmModeFreeConnector(connector);
 	return status;
 }
@@ -294,14 +305,140 @@ reset_state(data_t *data, struct chamelium_port *port)
 	}
 }
 
+static void chamelium_paint_xr24_pattern(uint32_t *data,
+					 size_t width, size_t height,
+					 size_t stride, size_t block_size)
+{
+	uint32_t colors[] = { 0xff000000,
+			      0xffff0000,
+			      0xff00ff00,
+			      0xff0000ff,
+			      0xffffffff };
+	unsigned i, j;
+
+	for (i = 0; i < height; i++)
+		for (j = 0; j < width; j++)
+			*(data + i * stride / 4 + j) = colors[((j / block_size) + (i / block_size)) % 5];
+}
+
+static int chamelium_get_pattern_fb(data_t *data, size_t width, size_t height,
+				    uint32_t fourcc, size_t block_size,
+				    struct igt_fb *fb)
+{
+	int fb_id;
+	void *ptr;
+
+	igt_assert(fourcc == DRM_FORMAT_XRGB8888);
+
+	fb_id = igt_create_fb(data->drm_fd, width, height, fourcc,
+			      LOCAL_DRM_FORMAT_MOD_NONE, fb);
+	igt_assert(fb_id > 0);
+
+	ptr = igt_fb_map_buffer(fb->fd, fb);
+	igt_assert(ptr);
+
+	chamelium_paint_xr24_pattern(ptr, width, height, fb->strides[0],
+				     block_size);
+	igt_fb_unmap_buffer(fb, ptr);
+
+	return fb_id;
+}
+
+static void
+enable_output(data_t *data,
+	      struct chamelium_port *port,
+	      igt_output_t *output,
+	      drmModeModeInfo *mode,
+	      struct igt_fb *fb)
+{
+	igt_display_t *display = output->display;
+	igt_plane_t *primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+	drmModeConnector *connector = chamelium_port_get_connector(
+	    data->chamelium, port, false);
+
+	igt_assert(primary);
+
+	igt_plane_set_size(primary, mode->hdisplay, mode->vdisplay);
+	igt_plane_set_fb(primary, fb);
+	igt_output_override_mode(output, mode);
+
+	/* Clear any color correction values that might be enabled */
+	if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_DEGAMMA_LUT))
+		igt_pipe_obj_replace_prop_blob(primary->pipe, IGT_CRTC_DEGAMMA_LUT, NULL, 0);
+	if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT))
+		igt_pipe_obj_replace_prop_blob(primary->pipe, IGT_CRTC_GAMMA_LUT, NULL, 0);
+	if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_CTM))
+		igt_pipe_obj_replace_prop_blob(primary->pipe, IGT_CRTC_CTM, NULL, 0);
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	if (chamelium_port_get_type(port) == DRM_MODE_CONNECTOR_VGA)
+		usleep(250000);
+
+	drmModeFreeConnector(connector);
+}
+
+static enum pipe get_pipe_for_output(igt_display_t *display, igt_output_t *output)
+{
+	enum pipe pipe;
+
+	for_each_pipe(display, pipe) {
+		if (igt_pipe_connector_valid(pipe, output)) {
+			return pipe;
+		}
+	}
+
+	igt_assert_f(false, "No pipe found for output %s\n",
+		     igt_output_name(output));
+}
+
+static void create_fb_for_mode(data_t *data, struct igt_fb *fb, drmModeModeInfo *mode)
+{
+	int fb_id;
+
+	fb_id = chamelium_get_pattern_fb(data, mode->hdisplay, mode->vdisplay,
+					 DRM_FORMAT_XRGB8888, 64, fb);
+
+	igt_assert(fb_id > 0);
+}
+
+static drmModeModeInfo get_mode_for_port(struct chamelium *chamelium,
+					 struct chamelium_port *port)
+{
+	drmModeConnector *connector = chamelium_port_get_connector(chamelium,
+								   port, false);
+	drmModeModeInfo mode;
+	igt_assert(&connector->modes[0] != NULL);
+	memcpy(&mode, &connector->modes[0], sizeof(mode));
+	drmModeFreeConnector(connector);
+	return mode;
+}
+
+static igt_output_t *get_output_for_port(data_t *data,
+					 struct chamelium_port *port)
+{
+	drmModeConnector *connector = chamelium_port_get_connector(data->chamelium,
+								   port, false);
+	igt_output_t *output = igt_output_from_connector(&data->display,
+							 connector);
+	drmModeFreeConnector(connector);
+	igt_assert(output != NULL);
+	return output;
+}
+
 static const char test_basic_hotplug_desc[] =
 	"Check that we get uevents and updated connector status on "
 	"hotplug and unplug";
 static void
-test_basic_hotplug(data_t *data, struct chamelium_port *port, int toggle_count)
+test_hotplug(data_t *data, struct chamelium_port *port, int toggle_count,
+	     enum test_modeset_mode modeset_mode)
 {
-	struct udev_monitor *mon = igt_watch_hotplug();
 	int i;
+	enum pipe pipe;
+	struct igt_fb fb = {0};
+	drmModeModeInfo mode;
+	struct udev_monitor *mon = igt_watch_hotplug();
+	igt_output_t *output = get_output_for_port(data, port);
 
 	reset_state(data, NULL);
 	igt_hpd_storm_set_threshold(data->drm_fd, 0);
@@ -316,15 +453,36 @@ test_basic_hotplug(data_t *data, struct chamelium_port *port, int toggle_count)
 						 DRM_MODE_CONNECTED);
 		igt_flush_hotplugs(mon);
 
+		if (modeset_mode == TEST_MODESET_ON_OFF ||
+		    (modeset_mode == TEST_MODESET_ON && i == 0 )) {
+			if (i == 0) {
+				/* We can only get mode and pipe once we are connected */
+				pipe = get_pipe_for_output(&data->display, output);
+				mode = get_mode_for_port(data->chamelium, port);
+				create_fb_for_mode(data, &fb, &mode);
+			}
+
+			igt_output_set_pipe(output, pipe);
+			enable_output(data, port, output, &mode, &fb);
+		}
+
 		/* Now check if we get a hotplug from disconnection */
 		chamelium_unplug(data->chamelium, port);
 
 		wait_for_connector_after_hotplug(data, mon, port,
 						 DRM_MODE_DISCONNECTED);
+
+		igt_flush_hotplugs(mon);
+
+		if (modeset_mode == TEST_MODESET_ON_OFF) {
+			igt_output_set_pipe(output, PIPE_NONE);
+			igt_display_commit2(&data->display, COMMIT_ATOMIC);
+		}
 	}
 
 	igt_cleanup_hotplug(mon);
 	igt_hpd_storm_reset(data->drm_fd);
+	igt_remove_fb(data->drm_fd, &fb);
 }
 
 static const struct edid *get_edid(enum test_edid edid);
@@ -530,10 +688,7 @@ prepare_output(data_t *data, struct chamelium_port *port, enum test_edid edid)
 {
 	igt_display_t *display = &data->display;
 	igt_output_t *output;
-	drmModeConnector *connector =
-		chamelium_port_get_connector(data->chamelium, port, false);
 	enum pipe pipe;
-	bool found = false;
 
 	/* The chamelium's default EDID has a lot of resolutions, way more then
 	 * we need to test. Additionally the default EDID doesn't support HDMI
@@ -546,101 +701,17 @@ prepare_output(data_t *data, struct chamelium_port *port, enum test_edid edid)
 
 	igt_display_reset(display);
 
-	output = igt_output_from_connector(display, connector);
+	output = get_output_for_port(data, port);
 
 	/* Refresh pipe to update connected status */
 	igt_output_set_pipe(output, PIPE_NONE);
 
-	for_each_pipe(display, pipe) {
-		if (!igt_pipe_connector_valid(pipe, output))
-			continue;
-
-		found = true;
-		break;
-	}
-
-	igt_assert_f(found, "No pipe found for output %s\n", igt_output_name(output));
-
+	pipe = get_pipe_for_output(display, output);
 	igt_output_set_pipe(output, pipe);
 
-	drmModeFreeConnector(connector);
-
 	return output;
 }
 
-static void
-enable_output(data_t *data,
-	      struct chamelium_port *port,
-	      igt_output_t *output,
-	      drmModeModeInfo *mode,
-	      struct igt_fb *fb)
-{
-	igt_display_t *display = output->display;
-	igt_plane_t *primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
-	drmModeConnector *connector = chamelium_port_get_connector(
-	    data->chamelium, port, false);
-
-	igt_assert(primary);
-
-	igt_plane_set_size(primary, mode->hdisplay, mode->vdisplay);
-	igt_plane_set_fb(primary, fb);
-	igt_output_override_mode(output, mode);
-
-	/* Clear any color correction values that might be enabled */
-	if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_DEGAMMA_LUT))
-		igt_pipe_obj_replace_prop_blob(primary->pipe, IGT_CRTC_DEGAMMA_LUT, NULL, 0);
-	if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_GAMMA_LUT))
-		igt_pipe_obj_replace_prop_blob(primary->pipe, IGT_CRTC_GAMMA_LUT, NULL, 0);
-	if (igt_pipe_obj_has_prop(primary->pipe, IGT_CRTC_CTM))
-		igt_pipe_obj_replace_prop_blob(primary->pipe, IGT_CRTC_CTM, NULL, 0);
-
-	igt_display_commit2(display, COMMIT_ATOMIC);
-
-	if (chamelium_port_get_type(port) == DRM_MODE_CONNECTOR_VGA)
-		usleep(250000);
-
-	drmModeFreeConnector(connector);
-}
-
-static void chamelium_paint_xr24_pattern(uint32_t *data,
-					 size_t width, size_t height,
-					 size_t stride, size_t block_size)
-{
-	uint32_t colors[] = { 0xff000000,
-			      0xffff0000,
-			      0xff00ff00,
-			      0xff0000ff,
-			      0xffffffff };
-	unsigned i, j;
-
-	for (i = 0; i < height; i++)
-		for (j = 0; j < width; j++)
-			*(data + i * stride / 4 + j) = colors[((j / block_size) + (i / block_size)) % 5];
-}
-
-static int chamelium_get_pattern_fb(data_t *data, size_t width, size_t height,
-				    uint32_t fourcc, size_t block_size,
-				    struct igt_fb *fb)
-{
-	int fb_id;
-	void *ptr;
-
-	igt_assert(fourcc == DRM_FORMAT_XRGB8888);
-
-	fb_id = igt_create_fb(data->drm_fd, width, height, fourcc,
-			      LOCAL_DRM_FORMAT_MOD_NONE, fb);
-	igt_assert(fb_id > 0);
-
-	ptr = igt_fb_map_buffer(fb->fd, fb);
-	igt_assert(ptr);
-
-	chamelium_paint_xr24_pattern(ptr, width, height, fb->strides[0],
-				     block_size);
-	igt_fb_unmap_buffer(fb, ptr);
-
-	return fb_id;
-}
-
 static void do_test_display(data_t *data, struct chamelium_port *port,
 			    igt_output_t *output, drmModeModeInfo *mode,
 			    uint32_t fourcc, enum chamelium_check check,
@@ -2539,13 +2610,27 @@ igt_main
 
 		igt_describe(test_basic_hotplug_desc);
 		connector_subtest("dp-hpd", DisplayPort)
-			test_basic_hotplug(&data, port,
-					   HPD_TOGGLE_COUNT_DP_HDMI);
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_DP_HDMI,
+				     TEST_MODESET_OFF);
 
 		igt_describe(test_basic_hotplug_desc);
 		connector_subtest("dp-hpd-fast", DisplayPort)
-			test_basic_hotplug(&data, port,
-					   HPD_TOGGLE_COUNT_FAST);
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_OFF);
+
+		igt_describe(test_basic_hotplug_desc);
+		connector_subtest("dp-hpd-enable-disable-mode", DisplayPort)
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_ON_OFF);
+
+		igt_describe(test_basic_hotplug_desc);
+		connector_subtest("dp-hpd-with-enabled-mode", DisplayPort)
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_ON);
 
 		igt_describe(test_edid_read_desc);
 		connector_subtest("dp-edid-read", DisplayPort) {
@@ -2634,13 +2719,27 @@ igt_main
 
 		igt_describe(test_basic_hotplug_desc);
 		connector_subtest("hdmi-hpd", HDMIA)
-			test_basic_hotplug(&data, port,
-					   HPD_TOGGLE_COUNT_DP_HDMI);
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_DP_HDMI,
+				     TEST_MODESET_OFF);
 
 		igt_describe(test_basic_hotplug_desc);
 		connector_subtest("hdmi-hpd-fast", HDMIA)
-			test_basic_hotplug(&data, port,
-					   HPD_TOGGLE_COUNT_FAST);
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_OFF);
+
+		igt_describe(test_basic_hotplug_desc);
+		connector_subtest("hdmi-hpd-enable-disable-mode", HDMIA)
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_ON_OFF);
+
+		igt_describe(test_basic_hotplug_desc);
+		connector_subtest("hdmi-hpd-with-enabled-mode", HDMIA)
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_ON);
 
 		igt_describe(test_edid_read_desc);
 		connector_subtest("hdmi-edid-read", HDMIA) {
@@ -2795,11 +2894,25 @@ igt_main
 
 		igt_describe(test_basic_hotplug_desc);
 		connector_subtest("vga-hpd", VGA)
-			test_basic_hotplug(&data, port, HPD_TOGGLE_COUNT_VGA);
+			test_hotplug(&data, port, HPD_TOGGLE_COUNT_VGA,
+				     TEST_MODESET_OFF);
 
 		igt_describe(test_basic_hotplug_desc);
 		connector_subtest("vga-hpd-fast", VGA)
-			test_basic_hotplug(&data, port, HPD_TOGGLE_COUNT_FAST);
+			test_hotplug(&data, port, HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_OFF);
+
+		igt_describe(test_basic_hotplug_desc);
+		connector_subtest("vga-hpd-enable-disable-mode", VGA)
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_ON_OFF);
+
+		igt_describe(test_basic_hotplug_desc);
+		connector_subtest("vga-hpd-with-enabled-mode", VGA)
+			test_hotplug(&data, port,
+				     HPD_TOGGLE_COUNT_FAST,
+				     TEST_MODESET_ON);
 
 		igt_describe(test_edid_read_desc);
 		connector_subtest("vga-edid-read", VGA) {
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] tests/kms_vblank: Make sure that we have a mode set
  2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
                   ` (4 preceding siblings ...)
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 6/6] tests/kms_chamelium: Test HPD for different mode handling scenarios Arkadiusz Hiler
@ 2020-04-03 14:41 ` Patchwork
  2020-04-03 21:43 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  2020-04-06  9:11 ` [igt-dev] [PATCH i-g-t 1/6] " Imre Deak
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2020-04-03 14:41 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/6] tests/kms_vblank: Make sure that we have a mode set
URL   : https://patchwork.freedesktop.org/series/75461/
State : success

== Summary ==

CI Bug Log - changes from IGT_5562 -> IGTPW_4403
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with IGTPW_4403 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4403, 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_4403/index.html

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

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

### IGT changes ###

#### Warnings ####

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-kbl-8809g:       [SKIP][1] ([fdo#109271]) -> [FAIL][2] +27 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-kbl-8809g/igt@kms_chamelium@hdmi-edid-read.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-kbl-8809g/igt@kms_chamelium@hdmi-edid-read.html

  * igt@prime_vgem@basic-fence-flip:
    - fi-kbl-8809g:       [SKIP][3] ([fdo#109271]) -> [INCOMPLETE][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-kbl-8809g/igt@prime_vgem@basic-fence-flip.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-kbl-8809g/igt@prime_vgem@basic-fence-flip.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_module_load@reload:
    - fi-skl-6770hq:      [PASS][5] -> [DMESG-WARN][6] ([i915#203]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-skl-6770hq/igt@i915_module_load@reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-skl-6770hq/igt@i915_module_load@reload.html

  * igt@i915_pm_rpm@module-reload:
    - fi-icl-dsi:         [PASS][7] -> [INCOMPLETE][8] ([i915#189])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-icl-dsi/igt@i915_pm_rpm@module-reload.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-icl-dsi/igt@i915_pm_rpm@module-reload.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - fi-skl-6770hq:      [PASS][9] -> [FAIL][10] ([i915#220]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-skl-6770hq/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-skl-6770hq/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
    - fi-skl-6770hq:      [PASS][11] -> [SKIP][12] ([fdo#109271]) +5 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-skl-6770hq/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-skl-6770hq/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-b:
    - fi-skl-6770hq:      [PASS][13] -> [DMESG-FAIL][14] ([i915#106] / [i915#165])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-skl-6770hq/igt@kms_pipe_crc_basic@read-crc-pipe-b.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-skl-6770hq/igt@kms_pipe_crc_basic@read-crc-pipe-b.html

  
#### Possible fixes ####

  * igt@gem_tiled_fence_blits@basic:
    - fi-blb-e6850:       [DMESG-WARN][15] ([i915#1612]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-blb-e6850/igt@gem_tiled_fence_blits@basic.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-blb-e6850/igt@gem_tiled_fence_blits@basic.html

  * igt@i915_selftest@live@hangcheck:
    - fi-snb-2520m:       [INCOMPLETE][17] -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-snb-2520m/igt@i915_selftest@live@hangcheck.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-snb-2520m/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@late_gt_pm:
    - fi-bsw-n3050:       [INCOMPLETE][19] ([i915#1382]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/fi-bsw-n3050/igt@i915_selftest@live@late_gt_pm.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/fi-bsw-n3050/igt@i915_selftest@live@late_gt_pm.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#106]: https://gitlab.freedesktop.org/drm/intel/issues/106
  [i915#1382]: https://gitlab.freedesktop.org/drm/intel/issues/1382
  [i915#1612]: https://gitlab.freedesktop.org/drm/intel/issues/1612
  [i915#165]: https://gitlab.freedesktop.org/drm/intel/issues/165
  [i915#189]: https://gitlab.freedesktop.org/drm/intel/issues/189
  [i915#203]: https://gitlab.freedesktop.org/drm/intel/issues/203
  [i915#220]: https://gitlab.freedesktop.org/drm/intel/issues/220


Participating hosts (50 -> 45)
------------------------------

  Missing    (5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-byt-clapper 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5562 -> IGTPW_4403

  CI-20190529: 20190529
  CI_DRM_8244: 55348aac86bd6f0c4ce4d3d8a0e227f6a20a72f9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4403: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/index.html
  IGT_5562: 4770480c8c1f105ff9225e8eb07b652ca954e06a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_chamelium@dp-hpd-enable-disable-mode
+igt@kms_chamelium@dp-hpd-with-enabled-mode
+igt@kms_chamelium@hdmi-hpd-enable-disable-mode
+igt@kms_chamelium@hdmi-hpd-with-enabled-mode
+igt@kms_chamelium@vga-hpd-enable-disable-mode
+igt@kms_chamelium@vga-hpd-with-enabled-mode

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/6] tests/kms_vblank: Make sure that we have a mode set
  2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
                   ` (5 preceding siblings ...)
  2020-04-03 14:41 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] tests/kms_vblank: Make sure that we have a mode set Patchwork
@ 2020-04-03 21:43 ` Patchwork
  2020-04-06  9:11 ` [igt-dev] [PATCH i-g-t 1/6] " Imre Deak
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2020-04-03 21:43 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/6] tests/kms_vblank: Make sure that we have a mode set
URL   : https://patchwork.freedesktop.org/series/75461/
State : failure

== Summary ==

CI Bug Log - changes from IGT_5562_full -> IGTPW_4403_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4403_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4403_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_4403/index.html

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_mmap_gtt@cpuset-basic-small-copy-xy:
    - shard-hsw:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-hsw1/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-hsw2/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html

  * igt@gem_mmap_gtt@cpuset-medium-copy-xy:
    - shard-apl:          [PASS][3] -> [FAIL][4] +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-apl6/igt@gem_mmap_gtt@cpuset-medium-copy-xy.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-apl2/igt@gem_mmap_gtt@cpuset-medium-copy-xy.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-tglb:         [PASS][5] -> [SKIP][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-tglb7/igt@i915_pm_dc@dc3co-vpb-simulation.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-tglb1/igt@i915_pm_dc@dc3co-vpb-simulation.html

  
New tests
---------

  New tests have been introduced between IGT_5562_full and IGTPW_4403_full:

### New IGT tests (15) ###

  * igt@kms_chamelium@dp-hpd-enable-disable-mode:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_chamelium@dp-hpd-with-enabled-mode:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_chamelium@hdmi-hpd-enable-disable-mode:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_chamelium@vga-hpd-enable-disable-mode:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_chamelium@vga-hpd-with-enabled-mode:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@perf_pmu@faulting-read:
    - Statuses :
    - Exec time: [None] s

  * igt@prime_busy@after:
    - Statuses :
    - Exec time: [None] s

  * igt@prime_busy@after-wait:
    - Statuses :
    - Exec time: [None] s

  * igt@prime_busy@before:
    - Statuses :
    - Exec time: [None] s

  * igt@prime_busy@hang:
    - Statuses :
    - Exec time: [None] s

  * igt@prime_busy@hang-wait:
    - Statuses :
    - Exec time: [None] s

  * igt@prime_vgem@busy:
    - Statuses :
    - Exec time: [None] s

  * igt@prime_vgem@fence-wait:
    - Statuses :
    - Exec time: [None] s

  * igt@prime_vgem@sync:
    - Statuses :
    - Exec time: [None] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_tiled_swapping@non-threaded:
    - shard-iclb:         [PASS][7] -> [FAIL][8] ([i915#1618])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-iclb1/igt@gem_tiled_swapping@non-threaded.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-iclb7/igt@gem_tiled_swapping@non-threaded.html
    - shard-glk:          [PASS][9] -> [FAIL][10] ([i915#1618])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-glk4/igt@gem_tiled_swapping@non-threaded.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-glk3/igt@gem_tiled_swapping@non-threaded.html
    - shard-hsw:          [PASS][11] -> [FAIL][12] ([i915#1618])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-hsw2/igt@gem_tiled_swapping@non-threaded.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-hsw2/igt@gem_tiled_swapping@non-threaded.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][13] -> [FAIL][14] ([i915#454])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-iclb4/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_suspend@sysfs-reader:
    - shard-apl:          [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +4 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-apl6/igt@i915_suspend@sysfs-reader.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-apl3/igt@i915_suspend@sysfs-reader.html

  * igt@kms_cursor_crc@pipe-b-cursor-alpha-opaque:
    - shard-hsw:          [PASS][17] -> [FAIL][18] ([i915#54])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-hsw2/igt@kms_cursor_crc@pipe-b-cursor-alpha-opaque.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-hsw4/igt@kms_cursor_crc@pipe-b-cursor-alpha-opaque.html

  * igt@kms_cursor_crc@pipe-b-cursor-dpms:
    - shard-snb:          [PASS][19] -> [SKIP][20] ([fdo#109271]) +4 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-snb1/igt@kms_cursor_crc@pipe-b-cursor-dpms.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-snb2/igt@kms_cursor_crc@pipe-b-cursor-dpms.html

  * igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding:
    - shard-hsw:          [PASS][21] -> [INCOMPLETE][22] ([i915#61])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-hsw4/igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-hsw4/igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding.html

  * igt@kms_draw_crc@draw-method-rgb565-render-untiled:
    - shard-glk:          [PASS][23] -> [FAIL][24] ([i915#52] / [i915#54]) +3 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-glk6/igt@kms_draw_crc@draw-method-rgb565-render-untiled.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-glk8/igt@kms_draw_crc@draw-method-rgb565-render-untiled.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-glk:          [PASS][25] -> [FAIL][26] ([i915#79])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-glk6/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-glk:          [PASS][27] -> [FAIL][28] ([i915#46])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-glk6/igt@kms_flip@flip-vs-expired-vblank.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-glk6/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-kbl:          [PASS][29] -> [DMESG-WARN][30] ([i915#180] / [i915#93] / [i915#95])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-kbl6/igt@kms_flip@flip-vs-suspend.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-kbl3/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-kbl:          [PASS][31] -> [DMESG-WARN][32] ([i915#180]) +6 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@plain-flip-ts-check-interruptible:
    - shard-glk:          [PASS][33] -> [FAIL][34] ([i915#34])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-glk4/igt@kms_flip@plain-flip-ts-check-interruptible.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-glk6/igt@kms_flip@plain-flip-ts-check-interruptible.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglb:         [PASS][35] -> [SKIP][36] ([i915#433])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-tglb7/igt@kms_hdmi_inject@inject-audio.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-tglb7/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-kbl:          [PASS][37] -> [INCOMPLETE][38] ([i915#155])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-kbl2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-kbl2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_psr@psr2_primary_render:
    - shard-iclb:         [PASS][39] -> [SKIP][40] ([fdo#109441])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-iclb2/igt@kms_psr@psr2_primary_render.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-iclb3/igt@kms_psr@psr2_primary_render.html

  
#### Possible fixes ####

  * {igt@gem_ctx_isolation@preservation-s3@bcs0}:
    - shard-kbl:          [DMESG-WARN][41] ([i915#180]) -> [PASS][42] +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-kbl7/igt@gem_ctx_isolation@preservation-s3@bcs0.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-kbl3/igt@gem_ctx_isolation@preservation-s3@bcs0.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][43] ([fdo#110854]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-iclb5/igt@gem_exec_balancer@smoke.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-iclb1/igt@gem_exec_balancer@smoke.html

  * igt@gem_mmap_gtt@cpuset-big-copy-xy:
    - shard-tglb:         [FAIL][45] -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-tglb8/igt@gem_mmap_gtt@cpuset-big-copy-xy.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-tglb2/igt@gem_mmap_gtt@cpuset-big-copy-xy.html

  * igt@gem_mmap_gtt@hang:
    - shard-iclb:         [FAIL][47] -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-iclb4/igt@gem_mmap_gtt@hang.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-iclb2/igt@gem_mmap_gtt@hang.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-snb:          [FAIL][49] ([i915#1618]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-snb4/igt@gem_tiled_swapping@non-threaded.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-snb4/igt@gem_tiled_swapping@non-threaded.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-apl:          [DMESG-WARN][51] ([i915#180]) -> [PASS][52] +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-apl8/igt@i915_suspend@fence-restore-tiled2untiled.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-apl1/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_concurrent@pipe-b:
    - shard-hsw:          [FAIL][53] ([i915#1539]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-hsw2/igt@kms_concurrent@pipe-b.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-hsw1/igt@kms_concurrent@pipe-b.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen:
    - shard-kbl:          [FAIL][55] ([i915#54] / [i915#93] / [i915#95]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-kbl6/igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding:
    - shard-kbl:          [FAIL][57] ([i915#54]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html
    - shard-apl:          [FAIL][59] ([i915#54]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-apl6/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-apl4/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html

  * igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-untiled:
    - shard-glk:          [FAIL][61] ([i915#52] / [i915#54]) -> [PASS][62] +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-glk3/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-untiled.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-glk7/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-untiled.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-untiled:
    - shard-kbl:          [FAIL][63] ([i915#177] / [i915#52] / [i915#54] / [i915#93] / [i915#95]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-kbl4/igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-untiled.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-kbl6/igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-untiled.html
    - shard-apl:          [FAIL][65] ([i915#52] / [i915#54] / [i915#95]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-apl8/igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-untiled.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-apl8/igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-untiled.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-cpu:
    - shard-glk:          [FAIL][67] ([i915#49]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-glk7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-cpu.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-glk7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_psr@no_drrs:
    - shard-iclb:         [FAIL][69] ([i915#173]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-iclb1/igt@kms_psr@no_drrs.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-iclb2/igt@kms_psr@no_drrs.html

  * igt@kms_psr@psr2_primary_mmap_gtt:
    - shard-iclb:         [SKIP][71] ([fdo#109441]) -> [PASS][72] +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-iclb8/igt@kms_psr@psr2_primary_mmap_gtt.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html

  * igt@kms_universal_plane@universal-plane-pipe-c-functional:
    - shard-glk:          [FAIL][73] ([i915#331]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-glk3/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-glk1/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
    - shard-kbl:          [FAIL][75] ([i915#331]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-kbl3/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-kbl2/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
    - shard-apl:          [FAIL][77] ([i915#331]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-apl1/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-apl7/igt@kms_universal_plane@universal-plane-pipe-c-functional.html

  * igt@perf@gen12-mi-rpc:
    - shard-tglb:         [FAIL][79] ([i915#1085]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-tglb7/igt@perf@gen12-mi-rpc.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-tglb8/igt@perf@gen12-mi-rpc.html

  * {igt@perf@polling-parameterized}:
    - shard-hsw:          [FAIL][81] ([i915#1542]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-hsw1/igt@perf@polling-parameterized.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-hsw2/igt@perf@polling-parameterized.html

  
#### Warnings ####

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][83] ([fdo#109642] / [fdo#111068]) -> [FAIL][84] ([i915#608])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5562/shard-iclb3/igt@kms_psr2_su@page_flip.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/shard-iclb2/igt@kms_psr2_su@page_flip.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#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [i915#1085]: https://gitlab.freedesktop.org/drm/intel/issues/1085
  [i915#1539]: https://gitlab.freedesktop.org/drm/intel/issues/1539
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1618]: https://gitlab.freedesktop.org/drm/intel/issues/1618
  [i915#173]: https://gitlab.freedesktop.org/drm/intel/issues/173
  [i915#177]: https://gitlab.freedesktop.org/drm/intel/issues/177
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#331]: https://gitlab.freedesktop.org/drm/intel/issues/331
  [i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34
  [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#46]: https://gitlab.freedesktop.org/drm/intel/issues/46
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#52]: https://gitlab.freedesktop.org/drm/intel/issues/52
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#608]: https://gitlab.freedesktop.org/drm/intel/issues/608
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#93]: https://gitlab.freedesktop.org/drm/intel/issues/93
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (8 -> 8)
------------------------------

  No changes in participating hosts


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5562 -> IGTPW_4403

  CI-20190529: 20190529
  CI_DRM_8244: 55348aac86bd6f0c4ce4d3d8a0e227f6a20a72f9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4403: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/index.html
  IGT_5562: 4770480c8c1f105ff9225e8eb07b652ca954e06a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4403/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set
  2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
                   ` (6 preceding siblings ...)
  2020-04-03 21:43 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2020-04-06  9:11 ` Imre Deak
  2020-04-06 12:38   ` Arkadiusz Hiler
  7 siblings, 1 reply; 11+ messages in thread
From: Imre Deak @ 2020-04-06  9:11 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

On Fri, Apr 03, 2020 at 04:03:01PM +0300, Arkadiusz Hiler wrote:
> Subtest 'invalid' was depending on a "leftover" mode set by something
> external (usually fbcon) in order to work.
> 
> Let's make the test more robust by setting the mode explicitly.
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> ---
>  tests/kms_vblank.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
> index a895ab80..edf8581e 100644
> --- a/tests/kms_vblank.c
> +++ b/tests/kms_vblank.c
> @@ -472,9 +472,22 @@ static void invalid_subtest(data_t *data, int fd)
>  {
>  	union drm_wait_vblank vbl;
>  	unsigned long valid_flags;
> +	enum pipe pipe;
> +	igt_output_t* output;
> +	bool found = false;
>  
>  	igt_display_require_output_on_pipe(&data->display, 0);

Is the above needed still?

>  
> +	/* we need to have a mode set, otherwise we will get EINVAL no matter what */
> +	for_each_pipe_with_single_output(&data->display, pipe, output) {
> +		data->pipe = pipe;
> +		found = true;
> +		break;
> +	}

So far pipe A was assumed. I guess it's better to make it more flexible,
but then you have to add kmstest_get_vbl_flag() to the request flags
too.

> +
> +	igt_require_f(found, "No outputs connected = no vblanks\n");
> +	prepare_crtc(data, fd, output);
> +
>  	/* First check all is well with a simple query */
>  	memset(&vbl, 0, sizeof(vbl));
>  	vbl.request.type = DRM_VBLANK_RELATIVE;
> @@ -508,6 +521,7 @@ static void invalid_subtest(data_t *data, int fd)
>  	vbl.request.type |= _DRM_VBLANK_SECONDARY;
>  	vbl.request.type |= _DRM_VBLANK_FLAGS_MASK;
>  	igt_assert_eq(wait_vblank(fd, &vbl), -EINVAL);
> +	cleanup_crtc(data, fd, output);
>  }
>  
>  igt_main
> -- 
> 2.24.1
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 2/6] tests/kms_dp_dsc: Explicitly enable mode before DSC checks
  2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_dp_dsc: Explicitly enable mode before DSC checks Arkadiusz Hiler
@ 2020-04-06  9:50   ` Imre Deak
  0 siblings, 0 replies; 11+ messages in thread
From: Imre Deak @ 2020-04-06  9:50 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

On Fri, Apr 03, 2020 at 04:03:02PM +0300, Arkadiusz Hiler wrote:
> The test was depending on a leftover mode set by something external
> (usually fbcon) in order to work.
> 
> Let's create the FB once ahead of any testing, set a mode and check for
> DSC support.
> 
> Few extra cleanups:
>  * remove unused fields in data_t
>  * properly free connector
>  * don't recreate FB while iterating over pipes
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

Looks ok:
Reviewed-by: Imre Deak <imre.deak@intel.com>

> ---
>  tests/kms_dp_dsc.c | 73 +++++++++++++++++++++++++++++++++-------------
>  1 file changed, 53 insertions(+), 20 deletions(-)
> 
> diff --git a/tests/kms_dp_dsc.c b/tests/kms_dp_dsc.c
> index e2e3aaa0..7107fe59 100644
> --- a/tests/kms_dp_dsc.c
> +++ b/tests/kms_dp_dsc.c
> @@ -52,15 +52,11 @@ enum dsc_test_type
>  typedef struct {
>  	int drm_fd;
>  	int debugfs_fd;
> -	uint32_t id;
>  	igt_display_t display;
>  	struct igt_fb fb_test_pattern;
>  	igt_output_t *output;
> -	int mode_valid;
>  	drmModeModeInfo *mode;
>  	drmModeConnector *connector;
> -	drmModeEncoder *encoder;
> -	int crtc;
>  	enum pipe pipe;
>  	char conn_name[128];
>  } data_t;
> @@ -168,7 +164,6 @@ static void test_cleanup(data_t *data)
>  						    DRM_PLANE_TYPE_PRIMARY);
>  		igt_plane_set_fb(primary, NULL);
>  		igt_display_commit(&data->display);
> -		igt_remove_fb(data->drm_fd, &data->fb_test_pattern);
>  	}
>  }
>  
> @@ -185,8 +180,6 @@ static void kms_dp_dsc_exit_handler(int sig)
>  static void update_display(data_t *data, enum dsc_test_type test_type)
>  {
>  	igt_plane_t *primary;
> -	data->mode = igt_output_get_mode(data->output);
> -	data->connector = data->output->config.connector;
>  
>  	if (data->connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort &&
>  	    data->pipe == PIPE_A) {
> @@ -206,11 +199,6 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
>  		force_dp_dsc_enable(data);
>  
>  		igt_output_set_pipe(data->output, data->pipe);
> -		igt_create_pattern_fb(data->drm_fd, data->mode->hdisplay,
> -				      data->mode->vdisplay,
> -				      DRM_FORMAT_XRGB8888,
> -				      LOCAL_DRM_FORMAT_MOD_NONE,
> -				      &data->fb_test_pattern);
>  		primary = igt_output_get_plane_type(data->output,
>  						    DRM_PLANE_TYPE_PRIMARY);
>  
> @@ -236,16 +224,52 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
>  	}
>  }
>  
> -static void run_test(data_t *data, igt_output_t *output,
> -		     enum dsc_test_type test_type)
> +static void prepare_output(data_t *data, igt_output_t *output)
>  {
> +	igt_plane_t *primary;
>  	enum pipe pipe;
> +	bool found = false;
> +	drmModeModeInfo *mode;
>  
> -	for_each_pipe(&data->display, pipe) {
> +	igt_display_reset(&data->display);
>  
> +	for_each_pipe(&data->display, pipe) {
>  		if (igt_pipe_connector_valid(pipe, output)) {
>  			data->pipe = pipe;
>  			data->output = output;
> +			data->connector = data->output->config.connector;
> +			found = true;
> +			break;
> +		}
> +	}
> +
> +	igt_assert_f(found, "No valid pipe for connector %s\n", data->conn_name);
> +
> +	mode = igt_output_get_mode(data->output);
> +
> +	igt_output_set_pipe(data->output, data->pipe);
> +	igt_create_pattern_fb(data->drm_fd, mode->hdisplay,
> +			      mode->vdisplay,
> +			      DRM_FORMAT_XRGB8888,
> +			      LOCAL_DRM_FORMAT_MOD_NONE,
> +			      &data->fb_test_pattern);
> +
> +	igt_output_set_pipe(data->output, data->pipe);
> +	primary = igt_output_get_plane_type(data->output,
> +					    DRM_PLANE_TYPE_PRIMARY);
> +
> +	igt_plane_set_fb(primary, &data->fb_test_pattern);
> +	igt_display_commit(&data->display);
> +}
> +
> +static void run_test(data_t *data, enum dsc_test_type test_type)
> +{
> +	enum pipe pipe;
> +
> +	for_each_pipe(&data->display, pipe) {
> +
> +		if (igt_pipe_connector_valid(pipe, data->output)) {
> +			data->pipe = pipe;
>  			update_display(data, test_type);
>  			test_cleanup(data);
>  		}
> @@ -281,31 +305,40 @@ igt_main
>  				if (connector->connection != DRM_MODE_CONNECTED ||
>  				    connector->connector_type !=
>  				    tests[test_cnt])
> -					continue;
> +					goto loop_cleanup;
> +
>  				output = igt_output_from_connector(&data.display, connector);
>  				sprintf(data.conn_name, "%s-%d",
>  					kmstest_connector_type_str(connector->connector_type),
>  					connector->connector_type_id);
> +
> +				/* we need to have output enabled to do the DSC checks below */
> +				prepare_output(&data, output);
> +
>  				if(!is_dp_dsc_supported(&data)) {
>  					igt_debug("DSC not supported on connector %s \n",
>  						  data.conn_name);
> -					continue;
> +					goto loop_cleanup;
>  				}
> +
>  				if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort &&
>  				    !is_dp_fec_supported(&data)) {
>  					igt_debug("DSC cannot be enabled without FEC on %s\n",
>  						  data.conn_name);
> -					continue;
> +					goto loop_cleanup;
>  				}
>  				test_conn_cnt++;
> -				run_test(&data, output, test_basic_dsc_enable);
> +				run_test(&data, test_basic_dsc_enable);
> +
> +loop_cleanup:
> +				drmModeFreeConnector(connector);
> +				igt_remove_fb(data.drm_fd, &data.fb_test_pattern);
>  			}
>  			igt_skip_on(test_conn_cnt == 0);
>  		}
>  	}
>  
>  	igt_fixture {
> -		drmModeFreeConnector(connector);
>  		drmModeFreeResources(res);
>  		close(data.debugfs_fd);
>  		close(data.drm_fd);
> -- 
> 2.24.1
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set
  2020-04-06  9:11 ` [igt-dev] [PATCH i-g-t 1/6] " Imre Deak
@ 2020-04-06 12:38   ` Arkadiusz Hiler
  0 siblings, 0 replies; 11+ messages in thread
From: Arkadiusz Hiler @ 2020-04-06 12:38 UTC (permalink / raw)
  To: Imre Deak; +Cc: igt-dev

On Mon, Apr 06, 2020 at 12:11:35PM +0300, Imre Deak wrote:
> On Fri, Apr 03, 2020 at 04:03:01PM +0300, Arkadiusz Hiler wrote:
> > Subtest 'invalid' was depending on a "leftover" mode set by something
> > external (usually fbcon) in order to work.
> > 
> > Let's make the test more robust by setting the mode explicitly.
> > 
> > Cc: Imre Deak <imre.deak@intel.com>
> > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> > ---
> >  tests/kms_vblank.c | 14 ++++++++++++++
> >  1 file changed, 14 insertions(+)
> > 
> > diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
> > index a895ab80..edf8581e 100644
> > --- a/tests/kms_vblank.c
> > +++ b/tests/kms_vblank.c
> > @@ -472,9 +472,22 @@ static void invalid_subtest(data_t *data, int fd)
> >  {
> >  	union drm_wait_vblank vbl;
> >  	unsigned long valid_flags;
> > +	enum pipe pipe;
> > +	igt_output_t* output;
> > +	bool found = false;
> >  
> >  	igt_display_require_output_on_pipe(&data->display, 0);
> 
> Is the above needed still?

nope, removed 

> > +	/* we need to have a mode set, otherwise we will get EINVAL no matter what */
> > +	for_each_pipe_with_single_output(&data->display, pipe, output) {
> > +		data->pipe = pipe;
> > +		found = true;
> > +		break;
> > +	}
> 
> So far pipe A was assumed. I guess it's better to make it more flexible,
> but then you have to add kmstest_get_vbl_flag() to the request flags
> too.

Yeah, I have blanked on that. I have added "base_flags" that will have
this + DRM_VBLANK_RELATIVE set and use this as the initial value.

You can already see it on Trybot as I am experimenting with a fix for 0
outputs becoming a fail instead of a skip:

https://patchwork.freedesktop.org/patch/360280/?series=75545&rev=1

-- 
Cheers,
Arek
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2020-04-06 12:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-03 13:03 [igt-dev] [PATCH i-g-t 1/6] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 2/6] tests/kms_dp_dsc: Explicitly enable mode before DSC checks Arkadiusz Hiler
2020-04-06  9:50   ` Imre Deak
2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 3/6] lib/kms: Commit reasonable defaults on display init Arkadiusz Hiler
2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 4/6] lib/kms: Reprobe connector state after disabling modest Arkadiusz Hiler
2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 5/6] tests/kms_chamelium: Issue disabling modeset when resetting state Arkadiusz Hiler
2020-04-03 13:03 ` [igt-dev] [PATCH i-g-t 6/6] tests/kms_chamelium: Test HPD for different mode handling scenarios Arkadiusz Hiler
2020-04-03 14:41 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] tests/kms_vblank: Make sure that we have a mode set Patchwork
2020-04-03 21:43 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-04-06  9:11 ` [igt-dev] [PATCH i-g-t 1/6] " Imre Deak
2020-04-06 12:38   ` Arkadiusz Hiler

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.