All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks
@ 2023-03-31  6:50 Bhanuprakash Modem
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 1/7] lib/igt_kms: " Bhanuprakash Modem
                   ` (10 more replies)
  0 siblings, 11 replies; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31  6:50 UTC (permalink / raw)
  To: igt-dev, swati2.sharma

Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.

Bhanuprakash Modem (7):
  lib/igt_kms: Fix Bigjoiner checks
  tests/i915/kms_big_joiner: Fix Bigjoiner checks
  tests/i915/kms_dsc: Update bigjoiner pipe constraint
  tests/i915/kms_dsc: Drop bigjoiner check
  tests/kms_invalid_mode: Use helpers from IGT lib
  tests/kms_flip: Fix Bigjoiner checks
  tests/kms_setmode: Fix Bigjoiner checks

 lib/igt_kms.c               | 56 ++++++++++++++++++++++++++++---
 lib/igt_kms.h               |  2 ++
 tests/i915/kms_big_joiner.c | 67 +++++++++++++++++++++----------------
 tests/i915/kms_dsc.c        | 25 ++++++--------
 tests/i915/kms_dsc_helper.h |  2 --
 tests/kms_flip.c            | 12 +++----
 tests/kms_invalid_mode.c    | 23 +------------
 tests/kms_setmode.c         | 15 +++++----
 8 files changed, 119 insertions(+), 83 deletions(-)

--
2.40.0

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

* [igt-dev] [i-g-t V3 1/7] lib/igt_kms: Fix Bigjoiner checks
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
@ 2023-03-31  6:50 ` Bhanuprakash Modem
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 2/7] tests/i915/kms_big_joiner: " Bhanuprakash Modem
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31  6:50 UTC (permalink / raw)
  To: igt-dev, swati2.sharma

Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.

V2: - Update helper comments (Ankit)
    - New helper to check Bigjoiner requirement (Ankit)

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
 lib/igt_kms.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++----
 lib/igt_kms.h |  2 ++
 2 files changed, 54 insertions(+), 4 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index c12823d318e..c4d9fcc5ddd 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -5780,6 +5780,51 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
 	return false;
 }
 
+/*
+ * igt_get_max_dotclock:
+ * @fd: A drm file descriptor
+ *
+ * Get the Max pixel clock frequency from intel specific debugfs
+ * "i915_frequency_info".
+ *
+ * Returns: Max supported pixel clock frequency.
+ */
+int igt_get_max_dotclock(int fd)
+{
+	char buf[4096];
+	char *s;
+	int max_dotclock = 0;
+
+	if (!is_i915_device(fd))
+		return max_dotclock;
+
+	igt_debugfs_read(fd, "i915_frequency_info", buf);
+	s = strstr(buf, "Max pixel clock frequency:");
+	igt_assert(s);
+	igt_assert_eq(sscanf(s, "Max pixel clock frequency: %d kHz", &max_dotclock), 1);
+
+	/* 100 Mhz to 5 GHz seem like reasonable values to expect */
+	igt_assert_lt(max_dotclock, 5000000);
+	igt_assert_lt(100000, max_dotclock);
+
+	return max_dotclock;
+}
+
+/* igt_bigjoiner_possible:
+ * @mode: libdrm mode
+ * @max_dotclock: Max pixel clock frequency
+ *
+ * Bigjoiner will come into the picture, when the requested
+ * mode resolution > 5K or mode clock > max_dotclock.
+ *
+ * Returns: True if mode requires Bigjoiner, else False.
+ */
+bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock)
+{
+	return (mode->hdisplay > MAX_HDISPLAY_PER_PIPE ||
+		mode->clock > max_dotclock);
+}
+
 /*
  * igt_check_bigjoiner_support:
  * @display: a pointer to an #igt_display_t structure
@@ -5802,6 +5847,7 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
 		enum pipe idx;
 		drmModeModeInfo *mode;
 	} pipes[IGT_MAX_PIPES];
+	int max_dotclock;
 
 	/* Get total enabled pipes. */
 	for_each_pipe(display, p)
@@ -5825,22 +5871,24 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
 		return true;
 	}
 
+	max_dotclock = igt_get_max_dotclock(display->drm_fd);
+
 	/*
-	 * if mode.hdisplay > 5120, then ignore
+	 * if mode resolution > 5K (or) mode.clock > max dot-clock, then ignore
 	 *  - if the consecutive pipe is not available
 	 *  - last crtc in single/multi-connector config
 	 *  - consecutive crtcs in multi-connector config
 	 *
 	 * in multi-connector config ignore if
-	 *  - previous crtc mode.hdisplay > 5120 and
+	 *  - previous crtc (mode resolution > 5K or mode.clock > max dot-clock) and
 	 *  - current & previous crtcs are consecutive
 	 */
 	for (i = 0; i < pipes_in_use; i++) {
-		if (((pipes[i].mode->hdisplay > MAX_HDISPLAY_PER_PIPE) &&
+		if ((igt_bigjoiner_possible(pipes[i].mode, max_dotclock) &&
 		     ((pipes[i].idx >= (total_pipes - 1)) ||
 		      (!display->pipes[pipes[i].idx + 1].enabled) ||
 		      ((i < (pipes_in_use - 1)) && (abs(pipes[i + 1].idx - pipes[i].idx) <= 1)))) ||
-		    ((i > 0) && (pipes[i - 1].mode->hdisplay > MAX_HDISPLAY_PER_PIPE) &&
+		    ((i > 0) && igt_bigjoiner_possible(pipes[i - 1].mode, max_dotclock) &&
 		     ((!display->pipes[pipes[i - 1].idx + 1].enabled) ||
 		      (abs(pipes[i].idx - pipes[i - 1].idx) <= 1)))) {
 			igt_debug("Pipe/Output combo is not possible with selected mode(s).\n");
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 2b917925158..df90bb2330d 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -990,6 +990,8 @@ void igt_sort_connector_modes(drmModeConnector *connector,
 
 bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
 		igt_output_t *output, int bpc);
+int igt_get_max_dotclock(int fd);
+bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
 bool igt_check_bigjoiner_support(igt_display_t *display);
 bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
 bool i915_pipe_output_combo_valid(igt_display_t *display);
-- 
2.40.0

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

* [igt-dev] [i-g-t V3 2/7] tests/i915/kms_big_joiner: Fix Bigjoiner checks
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 1/7] lib/igt_kms: " Bhanuprakash Modem
@ 2023-03-31  6:50 ` Bhanuprakash Modem
  2023-04-05  9:45   ` [igt-dev] [i-g-t V2 " Bhanuprakash Modem
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 3/7] tests/i915/kms_dsc: Update bigjoiner pipe constraint Bhanuprakash Modem
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31  6:50 UTC (permalink / raw)
  To: igt-dev, swati2.sharma

Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/i915/kms_big_joiner.c | 67 +++++++++++++++++++++----------------
 1 file changed, 38 insertions(+), 29 deletions(-)

diff --git a/tests/i915/kms_big_joiner.c b/tests/i915/kms_big_joiner.c
index 8be60ea1176..adc37be719d 100644
--- a/tests/i915/kms_big_joiner.c
+++ b/tests/i915/kms_big_joiner.c
@@ -26,10 +26,13 @@
 
 #include "igt.h"
 
-#define MAX_HDISPLAY_PER_PIPE 5120
-
 IGT_TEST_DESCRIPTION("Test big joiner");
 
+typedef struct {
+	uint32_t output;
+	drmModeModeInfo mode;
+} big_joiner;
+
 typedef struct {
 	int drm_fd;
 	igt_display_t display;
@@ -37,7 +40,7 @@ typedef struct {
 	int n_pipes;
 	enum pipe pipe1;
 	enum pipe pipe2;
-	uint32_t big_joiner_output[2];
+	big_joiner big_joiner_output[2];
 } data_t;
 
 static void test_invalid_modeset(data_t *data)
@@ -91,7 +94,7 @@ static void test_basic_modeset(data_t *data)
 	igt_display_reset(display);
 
 	for_each_connected_output(display, output) {
-		if (data->big_joiner_output[0] == output->id) {
+		if (data->big_joiner_output[0].output == output->id) {
 			big_joiner_output = output;
 			break;
 		}
@@ -99,9 +102,7 @@ static void test_basic_modeset(data_t *data)
 
 	igt_output_set_pipe(big_joiner_output, data->pipe1);
 
-	igt_sort_connector_modes(big_joiner_output->config.connector,
-				 sort_drm_modes_by_res_dsc);
-	mode = &big_joiner_output->config.connector->modes[0];
+	mode = &data->big_joiner_output[0].mode;
 	igt_output_override_mode(big_joiner_output, mode);
 
 	pipe = &display->pipes[data->pipe1];
@@ -130,7 +131,7 @@ static void test_dual_display(data_t *data)
 	igt_display_reset(display);
 
 	for_each_connected_output(display, output) {
-		if (data->big_joiner_output[count] == output->id) {
+		if (data->big_joiner_output[count].output == output->id) {
 			big_joiner_output[count] = output;
 			count++;
 		}
@@ -143,9 +144,7 @@ static void test_dual_display(data_t *data)
 	igt_output_set_pipe(big_joiner_output[1], data->pipe2);
 
 	/* Set up first big joiner output on Pipe A*/
-	igt_sort_connector_modes(big_joiner_output[0]->config.connector,
-				 sort_drm_modes_by_res_dsc);
-	mode = &big_joiner_output[0]->config.connector->modes[0];
+	mode = &data->big_joiner_output[0].mode;
 	igt_output_override_mode(big_joiner_output[0], mode);
 
 	pipe = &display->pipes[data->pipe1];
@@ -156,9 +155,7 @@ static void test_dual_display(data_t *data)
 	igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay);
 
 	/* Set up second big joiner output on Pipe C*/
-	igt_sort_connector_modes(big_joiner_output[1]->config.connector,
-				 sort_drm_modes_by_res_dsc);
-	mode = &big_joiner_output[1]->config.connector->modes[0];
+	mode = &data->big_joiner_output[1].mode;
 	igt_output_override_mode(big_joiner_output[1], mode);
 
 	pipe = &display->pipes[data->pipe2];
@@ -186,6 +183,8 @@ igt_main
 	int valid_output = 0, i, count = 0, j = 0;
 	uint16_t width = 0, height = 0;
 	enum pipe pipe_seq[IGT_MAX_PIPES];
+	int max_dotclock;
+	bool retry = false;
 
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
@@ -194,13 +193,22 @@ igt_main
 		igt_display_require(&data.display, data.drm_fd);
 		igt_require(data.display.is_atomic);
 
+		max_dotclock = igt_get_max_dotclock(data.drm_fd);
+retry:
 		for_each_connected_output(&data.display, output) {
+			/*
+			 * Bigjoiner will come in the picture when
+			 * the resolution > 5K or clock > max-dot-clock.
+			 */
 			igt_sort_connector_modes(output->config.connector,
-						 sort_drm_modes_by_res_dsc);
+						 retry ? sort_drm_modes_by_clk_dsc :
+							 sort_drm_modes_by_res_dsc);
 
 			mode = &output->config.connector->modes[0];
-			if (mode->hdisplay > MAX_HDISPLAY_PER_PIPE) {
-				data.big_joiner_output[count++] = output->id;
+			if (igt_bigjoiner_possible(mode, max_dotclock)) {
+				data.big_joiner_output[count].output = output->id;
+				memcpy(&data.big_joiner_output[count].mode, mode, sizeof(drmModeModeInfo));
+				count++;
 
 				width = max(width, mode->hdisplay);
 				height = max(height, mode->vdisplay);
@@ -208,6 +216,11 @@ igt_main
 			valid_output++;
 		}
 
+		if (!count && !retry) {
+			retry = true;
+			goto retry;
+		}
+
 		data.n_pipes = 0;
 		for_each_pipe(&data.display, i) {
 			data.n_pipes++;
@@ -215,7 +228,7 @@ igt_main
 			j++;
 		}
 
-		igt_require_f(count > 0, "No output with 5k+ mode found\n");
+		igt_require_f(count > 0, "No output with 5k+ mode (or) clock > max-dot-clock found\n");
 
 		igt_create_pattern_fb(data.drm_fd, width, height, DRM_FORMAT_XRGB8888,
 				      DRM_FORMAT_MOD_LINEAR, &data.fb);
@@ -237,14 +250,12 @@ igt_main
 
 		igt_display_reset(&data.display);
 		for_each_connected_output(&data.display, output) {
-			if (data.big_joiner_output[0] != output->id)
+			if (data.big_joiner_output[0].output != output->id)
 				continue;
 
-			igt_sort_connector_modes(output->config.connector,
-						 sort_drm_modes_by_res_dsc);
-
+			mode = &data.big_joiner_output[0].mode;
 			igt_output_set_pipe(output, data.pipe1);
-			igt_output_override_mode(output, &output->config.connector->modes[0]);
+			igt_output_override_mode(output, mode);
 
 			igt_dynamic_f("pipe-%s-%s",
 				      kmstest_pipe_name(data.pipe1),
@@ -261,17 +272,15 @@ igt_main
 
 				igt_display_reset(&data.display);
 				for_each_connected_output(&data.display, output) {
-					igt_sort_connector_modes(output->config.connector,
-								 sort_drm_modes_by_res_dsc);
-
-					if (data.big_joiner_output[0] == output->id) {
+					if (data.big_joiner_output[0].output == output->id) {
 						first_output = output;
+						mode = &data.big_joiner_output[0].mode;
+
 						igt_output_set_pipe(output, data.pipe1);
-						igt_output_override_mode(output, &output->config.connector->modes[0]);
+						igt_output_override_mode(output, mode);
 					} else if (second_output == NULL) {
 						second_output = output;
 						igt_output_set_pipe(output, data.pipe2);
-						igt_output_override_mode(output, &output->config.connector->modes[0]);
 
 						break;
 					}
-- 
2.40.0

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

* [igt-dev] [i-g-t V3 3/7] tests/i915/kms_dsc: Update bigjoiner pipe constraint
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 1/7] lib/igt_kms: " Bhanuprakash Modem
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 2/7] tests/i915/kms_big_joiner: " Bhanuprakash Modem
@ 2023-03-31  6:50 ` Bhanuprakash Modem
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 4/7] tests/i915/kms_dsc: Drop bigjoiner check Bhanuprakash Modem
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31  6:50 UTC (permalink / raw)
  To: igt-dev, swati2.sharma

Instead of writing own logic at test level, use existing IGT
helper to check the bigjoiner support.

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/i915/kms_dsc.c        | 17 ++++++++---------
 tests/i915/kms_dsc_helper.h |  2 --
 2 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
index b3c5e60c773..9c6a7780acd 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -47,7 +47,6 @@ typedef struct {
 	unsigned int plane_format;
 	igt_output_t *output;
 	int input_bpc;
-	int n_pipes;
 	int disp_ver;
 	enum pipe pipe;
 } data_t;
@@ -76,15 +75,19 @@ static bool check_big_joiner_pipe_constraint(data_t *data)
 {
 	igt_output_t *output = data->output;
 	drmModeModeInfo *mode = get_highres_mode(output);
+	bool ret = true;
 
-	if (mode->hdisplay >= HDISPLAY_5K &&
-	    data->pipe == (data->n_pipes - 1)) {
+	igt_output_set_pipe(output, data->pipe);
+	igt_output_override_mode(output, mode);
+
+	if (!igt_check_bigjoiner_support(&data->display)) {
 		igt_debug("Pipe-%s not supported due to bigjoiner limitation\n",
 			   kmstest_pipe_name(data->pipe));
-		return false;
+		ret = false;
 	}
+	igt_output_set_pipe(output, PIPE_NONE);
 
-	return true;
+	return ret;
 }
 
 static void test_cleanup(data_t *data)
@@ -206,7 +209,6 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
 igt_main
 {
 	data_t data = {};
-	int i;
 
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
@@ -217,9 +219,6 @@ igt_main
 		igt_display_require(&data.display, data.drm_fd);
 		igt_display_require_output(&data.display);
 		igt_require(data.disp_ver >= 11);
-		data.n_pipes = 0;
-		for_each_pipe(&data.display, i)
-			data.n_pipes++;
 	}
 
 	igt_describe("Tests basic display stream compression functionality if supported "
diff --git a/tests/i915/kms_dsc_helper.h b/tests/i915/kms_dsc_helper.h
index fe479dac472..b3828dcd44a 100644
--- a/tests/i915/kms_dsc_helper.h
+++ b/tests/i915/kms_dsc_helper.h
@@ -21,8 +21,6 @@
 #include <fcntl.h>
 #include <termios.h>
 
-#define HDISPLAY_5K	5120
-
 void force_dsc_enable(int drmfd, igt_output_t *output);
 void force_dsc_enable_bpc(int drmfd, igt_output_t *output, int input_bpc);
 void save_force_dsc_en(int drmfd, igt_output_t *output);
-- 
2.40.0

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

* [igt-dev] [i-g-t V3 4/7] tests/i915/kms_dsc: Drop bigjoiner check
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
                   ` (2 preceding siblings ...)
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 3/7] tests/i915/kms_dsc: Update bigjoiner pipe constraint Bhanuprakash Modem
@ 2023-03-31  6:50 ` Bhanuprakash Modem
  2023-04-13  9:49   ` Karthik B S
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 5/7] tests/kms_invalid_mode: Use helpers from IGT lib Bhanuprakash Modem
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31  6:50 UTC (permalink / raw)
  To: igt-dev, swati2.sharma

Drop bigjoiner specific check, instead use the generic check
i915_pipe_output_combo_valid() which will take care of bigjoiner
too.

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/i915/kms_dsc.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
index 9c6a7780acd..2c49ded4dfc 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -71,7 +71,7 @@ static drmModeModeInfo *get_highres_mode(igt_output_t *output)
 	return highest_mode;
 }
 
-static bool check_big_joiner_pipe_constraint(data_t *data)
+static bool pipe_output_combo_valid(data_t *data)
 {
 	igt_output_t *output = data->output;
 	drmModeModeInfo *mode = get_highres_mode(output);
@@ -80,11 +80,9 @@ static bool check_big_joiner_pipe_constraint(data_t *data)
 	igt_output_set_pipe(output, data->pipe);
 	igt_output_override_mode(output, mode);
 
-	if (!igt_check_bigjoiner_support(&data->display)) {
-		igt_debug("Pipe-%s not supported due to bigjoiner limitation\n",
-			   kmstest_pipe_name(data->pipe));
+	if (!i915_pipe_output_combo_valid(&data->display))
 		ret = false;
-	}
+
 	igt_output_set_pipe(output, PIPE_NONE);
 
 	return ret;
@@ -193,7 +191,7 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
 		if (!check_gen11_bpc_constraint(data->drm_fd, data->output, data->input_bpc))
 			continue;
 
-		if (!check_big_joiner_pipe_constraint(data))
+		if (!pipe_output_combo_valid(data))
 			continue;
 
 		if (test_type == TEST_DSC_BPC)
-- 
2.40.0

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

* [igt-dev] [i-g-t V3 5/7] tests/kms_invalid_mode: Use helpers from IGT lib
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
                   ` (3 preceding siblings ...)
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 4/7] tests/i915/kms_dsc: Drop bigjoiner check Bhanuprakash Modem
@ 2023-03-31  6:50 ` Bhanuprakash Modem
  2023-04-05  7:43   ` Karthik B S
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 6/7] tests/kms_flip: Fix Bigjoiner checks Bhanuprakash Modem
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31  6:50 UTC (permalink / raw)
  To: igt-dev, swati2.sharma

Instead of writing own logic at test level, use existing IGT
helper to read the max dot clock.

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/kms_invalid_mode.c | 23 +----------------------
 1 file changed, 1 insertion(+), 22 deletions(-)

diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c
index 86f529e88b1..ec048305567 100644
--- a/tests/kms_invalid_mode.c
+++ b/tests/kms_invalid_mode.c
@@ -213,27 +213,6 @@ test_output(data_t *data)
 	igt_remove_fb(data->drm_fd, &fb);
 }
 
-static int i915_max_dotclock(data_t *data)
-{
-	char buf[4096];
-	char *s;
-	int max_dotclock = 0;
-
-	if (!is_i915_device(data->drm_fd))
-		return 0;
-
-	igt_debugfs_read(data->drm_fd, "i915_frequency_info", buf);
-	s = strstr(buf, "Max pixel clock frequency:");
-	igt_assert(s);
-	igt_assert_eq(sscanf(s, "Max pixel clock frequency: %d kHz", &max_dotclock), 1);
-
-	/* 100 Mhz to 5 GHz seem like reasonable values to expect */
-	igt_assert_lt(max_dotclock, 5000000);
-	igt_assert_lt(100000, max_dotclock);
-
-	return max_dotclock;
-}
-
 static const struct {
 	const char *name;
 	bool (*adjust_mode)(data_t *data, drmModeModeInfoPtr mode);
@@ -293,7 +272,7 @@ igt_main
 		data.res = drmModeGetResources(data.drm_fd);
 		igt_assert(data.res);
 
-		data.max_dotclock = i915_max_dotclock(&data);
+		data.max_dotclock = igt_get_max_dotclock(data.drm_fd);
 		igt_info("Max dotclock: %d kHz\n", data.max_dotclock);
 	}
 
-- 
2.40.0

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

* [igt-dev] [i-g-t V3 6/7] tests/kms_flip: Fix Bigjoiner checks
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
                   ` (4 preceding siblings ...)
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 5/7] tests/kms_invalid_mode: Use helpers from IGT lib Bhanuprakash Modem
@ 2023-03-31  6:50 ` Bhanuprakash Modem
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 7/7] tests/kms_setmode: " Bhanuprakash Modem
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31  6:50 UTC (permalink / raw)
  To: igt-dev, swati2.sharma

Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/kms_flip.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 5e82f4a2f84..7cb8749c930 100755
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -81,8 +81,6 @@
 #define RUN_TEST		1
 #define RUN_PAIR		2
 
-#define MAX_HDISPLAY_PER_CRTC 5120
-
 #ifndef DRM_CAP_TIMESTAMP_MONOTONIC
 #define DRM_CAP_TIMESTAMP_MONOTONIC 6
 #endif
@@ -96,6 +94,7 @@ uint32_t devid;
 int test_time = 3;
 static bool monotonic_timestamp;
 static pthread_t vblank_wait_thread;
+static int max_dotclock;
 
 static drmModeConnector *last_connector;
 
@@ -1528,19 +1527,19 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
 	/*
 	 * Handle BW limitations:
 	 *
-	 * if mode.hdisplay > 5120, then ignore
+	 * if mode resolution > 5K (or) mode clock > max_dotclock, then ignore
 	 *  - last crtc in single/multi-connector config
 	 *  - consecutive crtcs in multi-connector config
 	 *
 	 * in multi-connector config ignore if
-	 *  - previous crtc mode.hdisplay > 5120 and
+	 *  - previous crtc (mode resolution > 5K or mode clock > max_dotclock) and
 	 *  - current & previous crtcs are consecutive
 	 */
 	for (i = 0; i < crtc_count; i++) {
-		if (((o->kmode[i].hdisplay > MAX_HDISPLAY_PER_CRTC) &&
+		if ((igt_bigjoiner_possible(&o->kmode[i], max_dotclock) &&
 		     ((crtc_idxs[i] >= (total_crtcs - 1)) ||
 		      ((i < (crtc_count - 1)) && (abs(crtc_idxs[i + 1] - crtc_idxs[i]) <= 1)))) ||
-		    ((i > 0) && (o->kmode[i - 1].hdisplay > MAX_HDISPLAY_PER_CRTC) &&
+		    ((i > 0) && igt_bigjoiner_possible(&o->kmode[i - 1], max_dotclock) &&
 		     (abs(crtc_idxs[i] - crtc_idxs[i - 1]) <= 1))) {
 
 			igt_debug("Combo: %s is not possible with selected mode(s).\n", test_name);
@@ -1822,6 +1821,7 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 			for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++)
 				tests[i].flags &= ~(TEST_CHECK_TS | TEST_VBLANK_EXPIRED_SEQ);
 		}
+		max_dotclock = igt_get_max_dotclock(drm_fd);
 	}
 
 	igt_describe("Tests that nonblocking reading fails correctly");
-- 
2.40.0

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

* [igt-dev] [i-g-t V3 7/7] tests/kms_setmode: Fix Bigjoiner checks
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
                   ` (5 preceding siblings ...)
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 6/7] tests/kms_flip: Fix Bigjoiner checks Bhanuprakash Modem
@ 2023-03-31  6:50 ` Bhanuprakash Modem
  2023-03-31  7:29 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev3) Patchwork
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31  6:50 UTC (permalink / raw)
  To: igt-dev, swati2.sharma

Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/kms_setmode.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c
index bfa108916ce..7932a3ec285 100644
--- a/tests/kms_setmode.c
+++ b/tests/kms_setmode.c
@@ -40,13 +40,12 @@
 /* restricted pipe count */
 #define CRTC_RESTRICT_CNT 2
 
-#define MAX_HDISPLAY_PER_CRTC 5120
-
 static int drm_fd;
 static drmModeRes *drm_resources;
 static int filter_test_id;
 static bool dry_run;
 static bool extended = false;
+static int max_dotclock;
 
 const drmModeModeInfo mode_640_480 = {
 	.name		= "640x480",
@@ -664,18 +663,20 @@ static void test_one_combination(const struct test_config *tconf,
 			struct crtc_config *crtc = &crtcs[i];
 
 			/*
-			 * if mode.hdisplay > 5120, then ignore
+			 * if mode resolution > 5K (or) mode clock > max_dotclock,
+			 * then ignore
 			 *   - last crtc in single/multi-connector config
 			 *   - consecutive crtcs in multi-connector config
 			 *
 			 * in multi-connector config ignore if
-			 *   - previous crtc mode.hdisplay > 5120 and
+			 *   - previous crtc (mode resolution > 5K (or)
+			 *     mode clock > max_dotclock) and
 			 *   - current & previous crtcs are consecutive
 			 */
-			if (((crtc->mode.hdisplay > MAX_HDISPLAY_PER_CRTC) &&
+			if ((igt_bigjoiner_possible(&crtc->mode, max_dotclock) &&
 			     ((crtc->crtc_idx >= (tconf->resources->count_crtcs - 1)) ||
 			      ((i < (crtc_count - 1)) && (abs(crtcs[i + 1].crtc_idx - crtc->crtc_idx) <= 1)))) ||
-			    ((i > 0) && (crtc[i - 1].mode.hdisplay > MAX_HDISPLAY_PER_CRTC) &&
+			    ((i > 0) && igt_bigjoiner_possible(&crtc[i - 1].mode, max_dotclock) &&
 			     (abs(crtc->crtc_idx - crtcs[i - 1].crtc_idx) <= 1))) {
 				igt_info("Combo: %s is not possible with selected mode(s).\n", test_name);
 				goto out;
@@ -954,6 +955,8 @@ igt_main_args("det:", NULL, help_str, opt_handler, NULL)
 
 		drm_resources = drmModeGetResources(drm_fd);
 		igt_require(drm_resources);
+
+		max_dotclock = igt_get_max_dotclock(drm_fd);
 	}
 
 	for (i = 0; i < ARRAY_SIZE(tests); i++) {
-- 
2.40.0

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

* [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev3)
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
                   ` (6 preceding siblings ...)
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 7/7] tests/kms_setmode: " Bhanuprakash Modem
@ 2023-03-31  7:29 ` Patchwork
  2023-04-01  5:11 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2023-03-31  7:29 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

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

== Series Details ==

Series: Fix Bigjoiner checks (rev3)
URL   : https://patchwork.freedesktop.org/series/115712/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12947 -> IGTPW_8724
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (37 -> 36)
------------------------------

  Missing    (1): fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rps@basic-api:
    - bat-dg2-11:         [PASS][1] -> [FAIL][2] ([i915#8308])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/bat-dg2-11/igt@i915_pm_rps@basic-api.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-dg2-11/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-cfl-8109u:       [PASS][3] -> [DMESG-FAIL][4] ([i915#5334])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/fi-cfl-8109u/igt@i915_selftest@live@gt_heartbeat.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/fi-cfl-8109u/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@requests:
    - bat-dg2-11:         [PASS][5] -> [ABORT][6] ([i915#7913])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/bat-dg2-11/igt@i915_selftest@live@requests.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-dg2-11/igt@i915_selftest@live@requests.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-1:         [PASS][7] -> [ABORT][8] ([i915#4983])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/bat-rpls-1/igt@i915_selftest@live@reset.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-rpls-1/igt@i915_selftest@live@reset.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-FAIL][9] ([i915#6997] / [i915#7913])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-rpls-2/igt@i915_selftest@live@slpc.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-rpls-2:         NOTRUN -> [SKIP][10] ([i915#7828])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1:
    - bat-dg2-8:          [PASS][11] -> [FAIL][12] ([i915#7932])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - bat-rpls-2:         NOTRUN -> [SKIP][13] ([i915#1845])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@requests:
    - bat-rpls-2:         [ABORT][14] ([i915#4983] / [i915#7913]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/bat-rpls-2/igt@i915_selftest@live@requests.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-rpls-2/igt@i915_selftest@live@requests.html

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1:
    - bat-dg2-8:          [FAIL][16] ([i915#7932]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html

  
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7230 -> IGTPW_8724

  CI-20190529: 20190529
  CI_DRM_12947: 52ebc2c4bfbe55514a50a6c4845bec43abc862f2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8724: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/index.html
  IGT_7230: f0485204004305dd3ee8f8bbbb9c552e53a4e050 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✗ Fi.CI.IGT: failure for Fix Bigjoiner checks (rev3)
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
                   ` (7 preceding siblings ...)
  2023-03-31  7:29 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev3) Patchwork
@ 2023-04-01  5:11 ` Patchwork
  2023-04-05 15:02 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev4) Patchwork
  2023-04-06  4:12 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  10 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2023-04-01  5:11 UTC (permalink / raw)
  To: Modem, Bhanuprakash; +Cc: igt-dev

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

== Series Details ==

Series: Fix Bigjoiner checks (rev3)
URL   : https://patchwork.freedesktop.org/series/115712/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_12947_full -> IGTPW_8724_full
====================================================

Summary
-------

  **FAILURE**

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

Participating hosts (7 -> 7)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-snb:          [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-snb4/igt@i915_module_load@reload-with-fault-injection.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-snb5/igt@i915_module_load@reload-with-fault-injection.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_big_joiner@2x-modeset:
    - {shard-dg1}:        NOTRUN -> [SKIP][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-dg1-17/igt@kms_big_joiner@2x-modeset.html

  * igt@kms_big_joiner@invalid-modeset:
    - {shard-tglu}:       [SKIP][4] ([i915#2705]) -> [SKIP][5] +1 similar issue
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-tglu-5/igt@kms_big_joiner@invalid-modeset.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-tglu-9/igt@kms_big_joiner@invalid-modeset.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-snb:          [PASS][6] -> [ABORT][7] ([i915#4528])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-snb5/igt@core_hotunplug@unbind-rebind.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-snb7/igt@core_hotunplug@unbind-rebind.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [PASS][8] -> [ABORT][9] ([i915#5566])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-apl3/igt@gen9_exec_parse@allowed-single.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-apl3/igt@gen9_exec_parse@allowed-single.html

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#3886]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-glk2/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [PASS][11] -> [FAIL][12] ([i915#2346])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw:
    - shard-glk:          NOTRUN -> [SKIP][13] ([fdo#109271]) +30 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-glk5/igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf:
    - shard-glk:          NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#658])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-glk7/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf.html

  
#### Possible fixes ####

  * {igt@gem_barrier_race@remote-request@rcs0}:
    - shard-glk:          [ABORT][15] ([i915#8211]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-glk2/igt@gem_barrier_race@remote-request@rcs0.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-glk8/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_busy@close-race:
    - {shard-tglu}:       [ABORT][17] ([i915#6016]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-tglu-9/igt@gem_busy@close-race.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-tglu-10/igt@gem_busy@close-race.html

  * igt@gem_exec_endless@dispatch@vcs1:
    - {shard-tglu}:       [TIMEOUT][19] ([i915#3778]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-tglu-3/igt@gem_exec_endless@dispatch@vcs1.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-tglu-5/igt@gem_exec_endless@dispatch@vcs1.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-glk:          [FAIL][21] ([i915#2846]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-glk8/igt@gem_exec_fair@basic-deadline.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-glk3/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-apl:          [FAIL][23] ([i915#2842]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-apl2/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@i915_pm_dc@dc9-dpms:
    - {shard-tglu}:       [SKIP][25] ([i915#4281]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-tglu-7/igt@i915_pm_dc@dc9-dpms.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-tglu-2/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rpm@dpms-lpsp:
    - {shard-dg1}:        [SKIP][27] ([i915#1397]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-dg1-16/igt@i915_pm_rpm@dpms-lpsp.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-dg1-14/igt@i915_pm_rpm@dpms-lpsp.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-apl:          [FAIL][29] ([i915#4767]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-apl1/igt@kms_fbcon_fbt@fbc-suspend.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-apl1/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:
    - shard-glk:          [FAIL][31] ([i915#79]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12947/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/shard-glk6/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.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#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6016]: https://gitlab.freedesktop.org/drm/intel/issues/6016
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150
  [i915#8155]: https://gitlab.freedesktop.org/drm/intel/issues/8155
  [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
  [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
  [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7230 -> IGTPW_8724
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12947: 52ebc2c4bfbe55514a50a6c4845bec43abc862f2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8724: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8724/index.html
  IGT_7230: f0485204004305dd3ee8f8bbbb9c552e53a4e050 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* Re: [igt-dev] [i-g-t V3 5/7] tests/kms_invalid_mode: Use helpers from IGT lib
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 5/7] tests/kms_invalid_mode: Use helpers from IGT lib Bhanuprakash Modem
@ 2023-04-05  7:43   ` Karthik B S
  0 siblings, 0 replies; 16+ messages in thread
From: Karthik B S @ 2023-04-05  7:43 UTC (permalink / raw)
  To: Bhanuprakash Modem, igt-dev, swati2.sharma


On 3/31/2023 12:20 PM, Bhanuprakash Modem wrote:
> Instead of writing own logic at test level, use existing IGT
> helper to read the max dot clock.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> ---
>   tests/kms_invalid_mode.c | 23 +----------------------
>   1 file changed, 1 insertion(+), 22 deletions(-)
>
> diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c
> index 86f529e88b1..ec048305567 100644
> --- a/tests/kms_invalid_mode.c
> +++ b/tests/kms_invalid_mode.c
> @@ -213,27 +213,6 @@ test_output(data_t *data)
>   	igt_remove_fb(data->drm_fd, &fb);
>   }
>   
> -static int i915_max_dotclock(data_t *data)
> -{
> -	char buf[4096];
> -	char *s;
> -	int max_dotclock = 0;
> -
> -	if (!is_i915_device(data->drm_fd))
> -		return 0;
> -
> -	igt_debugfs_read(data->drm_fd, "i915_frequency_info", buf);
> -	s = strstr(buf, "Max pixel clock frequency:");
> -	igt_assert(s);
> -	igt_assert_eq(sscanf(s, "Max pixel clock frequency: %d kHz", &max_dotclock), 1);
> -
> -	/* 100 Mhz to 5 GHz seem like reasonable values to expect */
> -	igt_assert_lt(max_dotclock, 5000000);
> -	igt_assert_lt(100000, max_dotclock);
> -
> -	return max_dotclock;
> -}
> -
>   static const struct {
>   	const char *name;
>   	bool (*adjust_mode)(data_t *data, drmModeModeInfoPtr mode);
> @@ -293,7 +272,7 @@ igt_main
>   		data.res = drmModeGetResources(data.drm_fd);
>   		igt_assert(data.res);
>   
> -		data.max_dotclock = i915_max_dotclock(&data);
> +		data.max_dotclock = igt_get_max_dotclock(data.drm_fd);
>   		igt_info("Max dotclock: %d kHz\n", data.max_dotclock);
>   	}
>   

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

* [igt-dev] [i-g-t V2 2/7] tests/i915/kms_big_joiner: Fix Bigjoiner checks
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 2/7] tests/i915/kms_big_joiner: " Bhanuprakash Modem
@ 2023-04-05  9:45   ` Bhanuprakash Modem
  2023-04-12  9:32     ` Karthik B S
  0 siblings, 1 reply; 16+ messages in thread
From: Bhanuprakash Modem @ 2023-04-05  9:45 UTC (permalink / raw)
  To: igt-dev, karthik.b.s

Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.

V2: - Handle both 5k & max dot clock cases
    - Other minor cleanups

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/i915/kms_big_joiner.c | 84 ++++++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 29 deletions(-)

diff --git a/tests/i915/kms_big_joiner.c b/tests/i915/kms_big_joiner.c
index 8be60ea1176..bd4541ce469 100644
--- a/tests/i915/kms_big_joiner.c
+++ b/tests/i915/kms_big_joiner.c
@@ -26,10 +26,13 @@
 
 #include "igt.h"
 
-#define MAX_HDISPLAY_PER_PIPE 5120
-
 IGT_TEST_DESCRIPTION("Test big joiner");
 
+struct big_joiner_output {
+	uint32_t output_id;
+	drmModeModeInfo mode;
+};
+
 typedef struct {
 	int drm_fd;
 	igt_display_t display;
@@ -37,7 +40,7 @@ typedef struct {
 	int n_pipes;
 	enum pipe pipe1;
 	enum pipe pipe2;
-	uint32_t big_joiner_output[2];
+	struct big_joiner_output output[2];
 } data_t;
 
 static void test_invalid_modeset(data_t *data)
@@ -91,7 +94,7 @@ static void test_basic_modeset(data_t *data)
 	igt_display_reset(display);
 
 	for_each_connected_output(display, output) {
-		if (data->big_joiner_output[0] == output->id) {
+		if (data->output[0].output_id == output->id) {
 			big_joiner_output = output;
 			break;
 		}
@@ -99,9 +102,7 @@ static void test_basic_modeset(data_t *data)
 
 	igt_output_set_pipe(big_joiner_output, data->pipe1);
 
-	igt_sort_connector_modes(big_joiner_output->config.connector,
-				 sort_drm_modes_by_res_dsc);
-	mode = &big_joiner_output->config.connector->modes[0];
+	mode = &data->output[0].mode;
 	igt_output_override_mode(big_joiner_output, mode);
 
 	pipe = &display->pipes[data->pipe1];
@@ -130,7 +131,7 @@ static void test_dual_display(data_t *data)
 	igt_display_reset(display);
 
 	for_each_connected_output(display, output) {
-		if (data->big_joiner_output[count] == output->id) {
+		if (data->output[count].output_id == output->id) {
 			big_joiner_output[count] = output;
 			count++;
 		}
@@ -143,9 +144,7 @@ static void test_dual_display(data_t *data)
 	igt_output_set_pipe(big_joiner_output[1], data->pipe2);
 
 	/* Set up first big joiner output on Pipe A*/
-	igt_sort_connector_modes(big_joiner_output[0]->config.connector,
-				 sort_drm_modes_by_res_dsc);
-	mode = &big_joiner_output[0]->config.connector->modes[0];
+	mode = &data->output[0].mode;
 	igt_output_override_mode(big_joiner_output[0], mode);
 
 	pipe = &display->pipes[data->pipe1];
@@ -156,9 +155,7 @@ static void test_dual_display(data_t *data)
 	igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay);
 
 	/* Set up second big joiner output on Pipe C*/
-	igt_sort_connector_modes(big_joiner_output[1]->config.connector,
-				 sort_drm_modes_by_res_dsc);
-	mode = &big_joiner_output[1]->config.connector->modes[0];
+	mode = &data->output[1].mode;
 	igt_output_override_mode(big_joiner_output[1], mode);
 
 	pipe = &display->pipes[data->pipe2];
@@ -186,6 +183,8 @@ igt_main
 	int valid_output = 0, i, count = 0, j = 0;
 	uint16_t width = 0, height = 0;
 	enum pipe pipe_seq[IGT_MAX_PIPES];
+	int max_dotclock;
+	bool retry = false;
 
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
@@ -194,13 +193,39 @@ igt_main
 		igt_display_require(&data.display, data.drm_fd);
 		igt_require(data.display.is_atomic);
 
+		max_dotclock = igt_get_max_dotclock(data.drm_fd);
+retry:
 		for_each_connected_output(&data.display, output) {
+			int idx;
+			bool found = false;
+
+			/*
+			 * Check if the output is already considered as
+			 * a Bigjoiner supported.
+			 */
+			for (idx = 0; idx < count; idx++) {
+				if (data.output[idx].output_id == output->id) {
+					found = true;
+					break;
+				}
+			}
+
+			if (found)
+				continue;
+
+			/*
+			 * Bigjoiner will come in the picture when
+			 * the resolution > 5K or clock > max-dot-clock.
+			 */
 			igt_sort_connector_modes(output->config.connector,
-						 sort_drm_modes_by_res_dsc);
+						 retry ? sort_drm_modes_by_clk_dsc :
+							 sort_drm_modes_by_res_dsc);
 
 			mode = &output->config.connector->modes[0];
-			if (mode->hdisplay > MAX_HDISPLAY_PER_PIPE) {
-				data.big_joiner_output[count++] = output->id;
+			if (igt_bigjoiner_possible(mode, max_dotclock)) {
+				data.output[count].output_id = output->id;
+				memcpy(&data.output[count].mode, mode, sizeof(drmModeModeInfo));
+				count++;
 
 				width = max(width, mode->hdisplay);
 				height = max(height, mode->vdisplay);
@@ -208,6 +233,11 @@ igt_main
 			valid_output++;
 		}
 
+		if (!retry) {
+			retry = true;
+			goto retry;
+		}
+
 		data.n_pipes = 0;
 		for_each_pipe(&data.display, i) {
 			data.n_pipes++;
@@ -215,7 +245,7 @@ igt_main
 			j++;
 		}
 
-		igt_require_f(count > 0, "No output with 5k+ mode found\n");
+		igt_require_f(count > 0, "No output with 5k+ mode (or) clock > max-dot-clock found\n");
 
 		igt_create_pattern_fb(data.drm_fd, width, height, DRM_FORMAT_XRGB8888,
 				      DRM_FORMAT_MOD_LINEAR, &data.fb);
@@ -237,14 +267,12 @@ igt_main
 
 		igt_display_reset(&data.display);
 		for_each_connected_output(&data.display, output) {
-			if (data.big_joiner_output[0] != output->id)
+			if (data.output[0].output_id != output->id)
 				continue;
 
-			igt_sort_connector_modes(output->config.connector,
-						 sort_drm_modes_by_res_dsc);
-
+			mode = &data.output[0].mode;
 			igt_output_set_pipe(output, data.pipe1);
-			igt_output_override_mode(output, &output->config.connector->modes[0]);
+			igt_output_override_mode(output, mode);
 
 			igt_dynamic_f("pipe-%s-%s",
 				      kmstest_pipe_name(data.pipe1),
@@ -261,17 +289,15 @@ igt_main
 
 				igt_display_reset(&data.display);
 				for_each_connected_output(&data.display, output) {
-					igt_sort_connector_modes(output->config.connector,
-								 sort_drm_modes_by_res_dsc);
-
-					if (data.big_joiner_output[0] == output->id) {
+					if (data.output[0].output_id == output->id) {
 						first_output = output;
+						mode = &data.output[0].mode;
+
 						igt_output_set_pipe(output, data.pipe1);
-						igt_output_override_mode(output, &output->config.connector->modes[0]);
+						igt_output_override_mode(output, mode);
 					} else if (second_output == NULL) {
 						second_output = output;
 						igt_output_set_pipe(output, data.pipe2);
-						igt_output_override_mode(output, &output->config.connector->modes[0]);
 
 						break;
 					}
-- 
2.40.0

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

* [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev4)
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
                   ` (8 preceding siblings ...)
  2023-04-01  5:11 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2023-04-05 15:02 ` Patchwork
  2023-04-06  4:12 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  10 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2023-04-05 15:02 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

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

== Series Details ==

Series: Fix Bigjoiner checks (rev4)
URL   : https://patchwork.freedesktop.org/series/115712/
State : success

== Summary ==

CI Bug Log - changes from IGT_7240 -> IGTPW_8762
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (36 -> 35)
------------------------------

  Missing    (1): fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@dmabuf@all-tests@dma_fence:
    - fi-cfl-8109u:       [PASS][1] -> [DMESG-FAIL][2] ([i915#8141])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/fi-cfl-8109u/igt@dmabuf@all-tests@dma_fence.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/fi-cfl-8109u/igt@dmabuf@all-tests@dma_fence.html

  * igt@dmabuf@all-tests@sanitycheck:
    - fi-cfl-8109u:       [PASS][3] -> [ABORT][4] ([i915#8141])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/fi-cfl-8109u/igt@dmabuf@all-tests@sanitycheck.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/fi-cfl-8109u/igt@dmabuf@all-tests@sanitycheck.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-1:         [PASS][5] -> [ABORT][6] ([i915#4983])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/bat-rpls-1/igt@i915_selftest@live@reset.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/bat-rpls-1/igt@i915_selftest@live@reset.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-FAIL][7] ([i915#6997] / [i915#7913])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/bat-rpls-2/igt@i915_selftest@live@slpc.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-rpls-2:         NOTRUN -> [SKIP][8] ([i915#7828])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-c-dp-1:
    - bat-dg2-8:          [PASS][9] -> [FAIL][10] ([i915#7932])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-c-dp-1.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-c-dp-1.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - bat-rpls-2:         NOTRUN -> [SKIP][11] ([i915#1845])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html

  
#### Possible fixes ####

  * igt@i915_pm_rps@basic-api:
    - bat-dg1-5:          [FAIL][12] ([i915#8308]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/bat-dg1-5/igt@i915_pm_rps@basic-api.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/bat-dg1-5/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@requests:
    - bat-rpls-2:         [ABORT][14] ([i915#4983] / [i915#7913]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/bat-rpls-2/igt@i915_selftest@live@requests.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/bat-rpls-2/igt@i915_selftest@live@requests.html

  
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#8141]: https://gitlab.freedesktop.org/drm/intel/issues/8141
  [i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7240 -> IGTPW_8762

  CI-20190529: 20190529
  CI_DRM_12971: 3404365be0b9c30980dde0c148fc4f89a21c29d1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8762: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/index.html
  IGT_7240: ef4550e3b7d3c11ba257006bc7d4f8e421667d46 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

+++ 0 lines
--- 1009 lines

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for Fix Bigjoiner checks (rev4)
  2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
                   ` (9 preceding siblings ...)
  2023-04-05 15:02 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev4) Patchwork
@ 2023-04-06  4:12 ` Patchwork
  10 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2023-04-06  4:12 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

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

== Series Details ==

Series: Fix Bigjoiner checks (rev4)
URL   : https://patchwork.freedesktop.org/series/115712/
State : success

== Summary ==

CI Bug Log - changes from IGT_7240_full -> IGTPW_8762_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Missing    (1): shard-rkl0 

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

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

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@gem_barrier_race@remote-request@rcs0:
    - {shard-tglu}:       [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-tglu-8/igt@gem_barrier_race@remote-request@rcs0.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-tglu-2/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@kms_big_joiner@2x-modeset:
    - {shard-rkl}:        NOTRUN -> [SKIP][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-rkl-1/igt@kms_big_joiner@2x-modeset.html

  * igt@kms_big_joiner@basic:
    - {shard-rkl}:        [SKIP][4] ([i915#2705]) -> [SKIP][5] +1 similar issue
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-rkl-4/igt@kms_big_joiner@basic.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-rkl-3/igt@kms_big_joiner@basic.html

  * igt@kms_big_joiner@invalid-modeset:
    - {shard-dg1}:        [SKIP][6] ([i915#2705]) -> [SKIP][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-dg1-17/igt@kms_big_joiner@invalid-modeset.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-dg1-15/igt@kms_big_joiner@invalid-modeset.html
    - {shard-tglu}:       [SKIP][8] ([i915#2705]) -> [SKIP][9] +2 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-tglu-3/igt@kms_big_joiner@invalid-modeset.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-tglu-3/igt@kms_big_joiner@invalid-modeset.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-none-vip@rcs0:
    - shard-glk:          NOTRUN -> [FAIL][10] ([i915#2842])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-glk9/igt@gem_exec_fair@basic-none-vip@rcs0.html

  * igt@gem_lmem_swapping@massive:
    - shard-apl:          NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#4613])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl3/igt@gem_lmem_swapping@massive.html

  * igt@gem_lmem_swapping@parallel-random-verify-ccs:
    - shard-glk:          NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#4613]) +1 similar issue
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-glk8/igt@gem_lmem_swapping@parallel-random-verify-ccs.html

  * igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
    - shard-glk:          NOTRUN -> [SKIP][13] ([fdo#109271]) +109 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-glk6/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-apl:          [PASS][14] -> [ABORT][15] ([i915#5566])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-apl6/igt@gen9_exec_parse@allowed-all.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl6/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@basic-rejected-ctx-param:
    - shard-snb:          NOTRUN -> [SKIP][16] ([fdo#109271]) +5 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-snb7/igt@gen9_exec_parse@basic-rejected-ctx-param.html

  * igt@i915_pm_rps@engine-order:
    - shard-apl:          NOTRUN -> [FAIL][17] ([i915#6537])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl7/igt@i915_pm_rps@engine-order.html

  * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#3886]) +2 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-glk8/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#3886]) +2 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl7/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_content_protection@uevent@pipe-a-dp-1:
    - shard-apl:          NOTRUN -> [FAIL][20] ([i915#1339])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl1/igt@kms_content_protection@uevent@pipe-a-dp-1.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-apl:          [PASS][21] -> [ABORT][22] ([i915#180])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-apl2/igt@kms_fbcon_fbt@fbc-suspend.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl4/igt@kms_fbcon_fbt@fbc-suspend.html
    - shard-snb:          [PASS][23] -> [INCOMPLETE][24] ([i915#7878])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-snb7/igt@kms_fbcon_fbt@fbc-suspend.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-snb7/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1:
    - shard-glk:          [PASS][25] -> [FAIL][26] ([i915#2122])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-glk7/igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-glk2/igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-0-25@pipe-c-dp-1:
    - shard-apl:          NOTRUN -> [SKIP][27] ([fdo#109271]) +64 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl4/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-0-25@pipe-c-dp-1.html

  * igt@kms_psr2_sf@cursor-plane-update-sf:
    - shard-apl:          NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#658]) +1 similar issue
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl4/igt@kms_psr2_sf@cursor-plane-update-sf.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][29] ([fdo#109271] / [i915#658])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-glk5/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  
#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-snb:          [ABORT][30] ([i915#4528]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-snb5/igt@core_hotunplug@unbind-rebind.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-snb2/igt@core_hotunplug@unbind-rebind.html

  * igt@gem_barrier_race@remote-request@rcs0:
    - shard-glk:          [ABORT][32] ([i915#8211]) -> [PASS][33]
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-glk6/igt@gem_barrier_race@remote-request@rcs0.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-glk9/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - {shard-rkl}:        [FAIL][34] ([i915#6268]) -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-rkl-4/igt@gem_ctx_exec@basic-nohangcheck.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-rkl-1/igt@gem_ctx_exec@basic-nohangcheck.html
    - {shard-tglu}:       [FAIL][36] ([i915#6268]) -> [PASS][37]
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-tglu-8/igt@gem_ctx_exec@basic-nohangcheck.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-tglu-9/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_eio@in-flight-suspend:
    - shard-apl:          [ABORT][38] ([i915#180]) -> [PASS][39] +1 similar issue
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-apl7/igt@gem_eio@in-flight-suspend.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl1/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - {shard-rkl}:        [FAIL][40] ([i915#2842]) -> [PASS][41]
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-rkl-3/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-rkl-6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
    - shard-apl:          [FAIL][42] ([i915#2842]) -> [PASS][43]
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-apl3/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-apl2/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_suspend@basic-s4-devices@smem:
    - {shard-tglu}:       [ABORT][44] ([i915#7975]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-tglu-10/igt@gem_exec_suspend@basic-s4-devices@smem.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-tglu-8/igt@gem_exec_suspend@basic-s4-devices@smem.html

  * igt@i915_pm_rpm@modeset-lpsp-stress:
    - {shard-rkl}:        [SKIP][46] ([i915#1397]) -> [PASS][47] +1 similar issue
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-rkl-4/igt@i915_pm_rpm@modeset-lpsp-stress.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-rkl-7/igt@i915_pm_rpm@modeset-lpsp-stress.html

  * igt@perf@oa-exponents@0-rcs0:
    - shard-glk:          [ABORT][48] ([i915#5213]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-glk9/igt@perf@oa-exponents@0-rcs0.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-glk1/igt@perf@oa-exponents@0-rcs0.html

  * igt@perf_pmu@idle@rcs0:
    - {shard-rkl}:        [FAIL][50] ([i915#4349]) -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7240/shard-rkl-3/igt@perf_pmu@idle@rcs0.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/shard-rkl-1/igt@perf_pmu@idle@rcs0.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#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1339]: https://gitlab.freedesktop.org/drm/intel/issues/1339
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6537]: https://gitlab.freedesktop.org/drm/intel/issues/6537
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7878]: https://gitlab.freedesktop.org/drm/intel/issues/7878
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
  [i915#8224]: https://gitlab.freedesktop.org/drm/intel/issues/8224
  [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
  [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7240 -> IGTPW_8762

  CI-20190529: 20190529
  CI_DRM_12971: 3404365be0b9c30980dde0c148fc4f89a21c29d1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8762: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8762/index.html
  IGT_7240: ef4550e3b7d3c11ba257006bc7d4f8e421667d46 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* Re: [igt-dev] [i-g-t V2 2/7] tests/i915/kms_big_joiner: Fix Bigjoiner checks
  2023-04-05  9:45   ` [igt-dev] [i-g-t V2 " Bhanuprakash Modem
@ 2023-04-12  9:32     ` Karthik B S
  0 siblings, 0 replies; 16+ messages in thread
From: Karthik B S @ 2023-04-12  9:32 UTC (permalink / raw)
  To: Bhanuprakash Modem, igt-dev


On 4/5/2023 3:15 PM, Bhanuprakash Modem wrote:
> Bigjoiner will come in the picture when the resolution > 5K or
> clock > max dot-clock. Add a support to check the selected mode
> clock is greater than the max dot-clock.
>
> V2: - Handle both 5k & max dot clock cases
>      - Other minor cleanups
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
>   tests/i915/kms_big_joiner.c | 84 ++++++++++++++++++++++++-------------
>   1 file changed, 55 insertions(+), 29 deletions(-)
>
> diff --git a/tests/i915/kms_big_joiner.c b/tests/i915/kms_big_joiner.c
> index 8be60ea1176..bd4541ce469 100644
> --- a/tests/i915/kms_big_joiner.c
> +++ b/tests/i915/kms_big_joiner.c
> @@ -26,10 +26,13 @@
>   
>   #include "igt.h"
>   
> -#define MAX_HDISPLAY_PER_PIPE 5120
> -
>   IGT_TEST_DESCRIPTION("Test big joiner");
>   
> +struct big_joiner_output {
> +	uint32_t output_id;
> +	drmModeModeInfo mode;
> +};
> +
>   typedef struct {
>   	int drm_fd;
>   	igt_display_t display;
> @@ -37,7 +40,7 @@ typedef struct {
>   	int n_pipes;
>   	enum pipe pipe1;
>   	enum pipe pipe2;
> -	uint32_t big_joiner_output[2];
> +	struct big_joiner_output output[2];
>   } data_t;
>   
>   static void test_invalid_modeset(data_t *data)
> @@ -91,7 +94,7 @@ static void test_basic_modeset(data_t *data)
>   	igt_display_reset(display);
>   
>   	for_each_connected_output(display, output) {
> -		if (data->big_joiner_output[0] == output->id) {
> +		if (data->output[0].output_id == output->id) {
>   			big_joiner_output = output;
>   			break;
>   		}
> @@ -99,9 +102,7 @@ static void test_basic_modeset(data_t *data)
>   
>   	igt_output_set_pipe(big_joiner_output, data->pipe1);
>   
> -	igt_sort_connector_modes(big_joiner_output->config.connector,
> -				 sort_drm_modes_by_res_dsc);
> -	mode = &big_joiner_output->config.connector->modes[0];
> +	mode = &data->output[0].mode;
>   	igt_output_override_mode(big_joiner_output, mode);
>   
>   	pipe = &display->pipes[data->pipe1];
> @@ -130,7 +131,7 @@ static void test_dual_display(data_t *data)
>   	igt_display_reset(display);
>   
>   	for_each_connected_output(display, output) {
> -		if (data->big_joiner_output[count] == output->id) {
> +		if (data->output[count].output_id == output->id) {
>   			big_joiner_output[count] = output;
>   			count++;
>   		}
> @@ -143,9 +144,7 @@ static void test_dual_display(data_t *data)
>   	igt_output_set_pipe(big_joiner_output[1], data->pipe2);
>   
>   	/* Set up first big joiner output on Pipe A*/
> -	igt_sort_connector_modes(big_joiner_output[0]->config.connector,
> -				 sort_drm_modes_by_res_dsc);
> -	mode = &big_joiner_output[0]->config.connector->modes[0];
> +	mode = &data->output[0].mode;
>   	igt_output_override_mode(big_joiner_output[0], mode);
>   
>   	pipe = &display->pipes[data->pipe1];
> @@ -156,9 +155,7 @@ static void test_dual_display(data_t *data)
>   	igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay);
>   
>   	/* Set up second big joiner output on Pipe C*/
> -	igt_sort_connector_modes(big_joiner_output[1]->config.connector,
> -				 sort_drm_modes_by_res_dsc);
> -	mode = &big_joiner_output[1]->config.connector->modes[0];
> +	mode = &data->output[1].mode;
>   	igt_output_override_mode(big_joiner_output[1], mode);
>   
>   	pipe = &display->pipes[data->pipe2];
> @@ -186,6 +183,8 @@ igt_main
>   	int valid_output = 0, i, count = 0, j = 0;
>   	uint16_t width = 0, height = 0;
>   	enum pipe pipe_seq[IGT_MAX_PIPES];
> +	int max_dotclock;
> +	bool retry = false;
>   
>   	igt_fixture {
>   		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> @@ -194,13 +193,39 @@ igt_main
>   		igt_display_require(&data.display, data.drm_fd);
>   		igt_require(data.display.is_atomic);
>   
> +		max_dotclock = igt_get_max_dotclock(data.drm_fd);

Hi,

Could igt_get_max_dotclock() call be moved inside the 
igt_bigjoner_possible() check?

> +retry:
>   		for_each_connected_output(&data.display, output) {
> +			int idx;
> +			bool found = false;
> +
> +			/*
> +			 * Check if the output is already considered as
> +			 * a Bigjoiner supported.
> +			 */
> +			for (idx = 0; idx < count; idx++) {
> +				if (data.output[idx].output_id == output->id) {
> +					found = true;
> +					break;
> +				}
> +			}
> +
> +			if (found)
> +				continue;
> +
> +			/*
> +			 * Bigjoiner will come in the picture when
> +			 * the resolution > 5K or clock > max-dot-clock.
> +			 */
>   			igt_sort_connector_modes(output->config.connector,
> -						 sort_drm_modes_by_res_dsc);
> +						 retry ? sort_drm_modes_by_clk_dsc :
> +							 sort_drm_modes_by_res_dsc);
>   
>   			mode = &output->config.connector->modes[0];
> -			if (mode->hdisplay > MAX_HDISPLAY_PER_PIPE) {
> -				data.big_joiner_output[count++] = output->id;
> +			if (igt_bigjoiner_possible(mode, max_dotclock)) {
> +				data.output[count].output_id = output->id;
> +				memcpy(&data.output[count].mode, mode, sizeof(drmModeModeInfo));
> +				count++;
>   
>   				width = max(width, mode->hdisplay);
>   				height = max(height, mode->vdisplay);
> @@ -208,6 +233,11 @@ igt_main
>   			valid_output++;
>   		}
>   
> +		if (!retry) {
> +			retry = true;
> +			goto retry;
> +		}
> +

This would mean we are running the for loop twice in all the cases 
right? Could this be handled without using the 'retry' label then?

May be nested for loops? Or may be something like below inside the 
current loop for each output?

igt_sort_connector_modes(connector, sort_drm_modes_by_res_dec);
if (igt_bigjoiner_possible()) {
     flag=true;
} else {
     igt_sort_connector_modes(connector, sort_drm_modes_by_clk_dec);
     if (igt_bigjoiner_possible()) {
         flag=true;
     }
}
if(flag)
     <current logic>


Thanks,
Karthik.B.S
>   		data.n_pipes = 0;
>   		for_each_pipe(&data.display, i) {
>   			data.n_pipes++;
> @@ -215,7 +245,7 @@ igt_main
>   			j++;
>   		}
>   
> -		igt_require_f(count > 0, "No output with 5k+ mode found\n");
> +		igt_require_f(count > 0, "No output with 5k+ mode (or) clock > max-dot-clock found\n");
>   
>   		igt_create_pattern_fb(data.drm_fd, width, height, DRM_FORMAT_XRGB8888,
>   				      DRM_FORMAT_MOD_LINEAR, &data.fb);
> @@ -237,14 +267,12 @@ igt_main
>   
>   		igt_display_reset(&data.display);
>   		for_each_connected_output(&data.display, output) {
> -			if (data.big_joiner_output[0] != output->id)
> +			if (data.output[0].output_id != output->id)
>   				continue;
>   
> -			igt_sort_connector_modes(output->config.connector,
> -						 sort_drm_modes_by_res_dsc);
> -
> +			mode = &data.output[0].mode;
>   			igt_output_set_pipe(output, data.pipe1);
> -			igt_output_override_mode(output, &output->config.connector->modes[0]);
> +			igt_output_override_mode(output, mode);
>   
>   			igt_dynamic_f("pipe-%s-%s",
>   				      kmstest_pipe_name(data.pipe1),
> @@ -261,17 +289,15 @@ igt_main
>   
>   				igt_display_reset(&data.display);
>   				for_each_connected_output(&data.display, output) {
> -					igt_sort_connector_modes(output->config.connector,
> -								 sort_drm_modes_by_res_dsc);
> -
> -					if (data.big_joiner_output[0] == output->id) {
> +					if (data.output[0].output_id == output->id) {
>   						first_output = output;
> +						mode = &data.output[0].mode;
> +
>   						igt_output_set_pipe(output, data.pipe1);
> -						igt_output_override_mode(output, &output->config.connector->modes[0]);
> +						igt_output_override_mode(output, mode);
>   					} else if (second_output == NULL) {
>   						second_output = output;
>   						igt_output_set_pipe(output, data.pipe2);
> -						igt_output_override_mode(output, &output->config.connector->modes[0]);
>   
>   						break;
>   					}

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

* Re: [igt-dev] [i-g-t V3 4/7] tests/i915/kms_dsc: Drop bigjoiner check
  2023-03-31  6:50 ` [igt-dev] [i-g-t V3 4/7] tests/i915/kms_dsc: Drop bigjoiner check Bhanuprakash Modem
@ 2023-04-13  9:49   ` Karthik B S
  0 siblings, 0 replies; 16+ messages in thread
From: Karthik B S @ 2023-04-13  9:49 UTC (permalink / raw)
  To: Bhanuprakash Modem, igt-dev, swati2.sharma


On 3/31/2023 12:20 PM, Bhanuprakash Modem wrote:
> Drop bigjoiner specific check, instead use the generic check
> i915_pipe_output_combo_valid() which will take care of bigjoiner
> too.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
>   tests/i915/kms_dsc.c | 10 ++++------
>   1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
> index 9c6a7780acd..2c49ded4dfc 100644
> --- a/tests/i915/kms_dsc.c
> +++ b/tests/i915/kms_dsc.c
> @@ -71,7 +71,7 @@ static drmModeModeInfo *get_highres_mode(igt_output_t *output)
>   	return highest_mode;
>   }
>   
> -static bool check_big_joiner_pipe_constraint(data_t *data)
> +static bool pipe_output_combo_valid(data_t *data)
>   {
>   	igt_output_t *output = data->output;
>   	drmModeModeInfo *mode = get_highres_mode(output);
> @@ -80,11 +80,9 @@ static bool check_big_joiner_pipe_constraint(data_t *data)
>   	igt_output_set_pipe(output, data->pipe);
>   	igt_output_override_mode(output, mode);
>   
> -	if (!igt_check_bigjoiner_support(&data->display)) {

Hi,

This check is added in patch 3 of this series and removed in this patch. 
Is patch 3 necessary in this case?

Thanks,
Karthik.B.S
> -		igt_debug("Pipe-%s not supported due to bigjoiner limitation\n",
> -			   kmstest_pipe_name(data->pipe));
> +	if (!i915_pipe_output_combo_valid(&data->display))
>   		ret = false;
> -	}
> +
>   	igt_output_set_pipe(output, PIPE_NONE);
>   
>   	return ret;
> @@ -193,7 +191,7 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
>   		if (!check_gen11_bpc_constraint(data->drm_fd, data->output, data->input_bpc))
>   			continue;
>   
> -		if (!check_big_joiner_pipe_constraint(data))
> +		if (!pipe_output_combo_valid(data))
>   			continue;
>   
>   		if (test_type == TEST_DSC_BPC)

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

end of thread, other threads:[~2023-04-13  9:49 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-31  6:50 [igt-dev] [i-g-t V3 0/7] Fix Bigjoiner checks Bhanuprakash Modem
2023-03-31  6:50 ` [igt-dev] [i-g-t V3 1/7] lib/igt_kms: " Bhanuprakash Modem
2023-03-31  6:50 ` [igt-dev] [i-g-t V3 2/7] tests/i915/kms_big_joiner: " Bhanuprakash Modem
2023-04-05  9:45   ` [igt-dev] [i-g-t V2 " Bhanuprakash Modem
2023-04-12  9:32     ` Karthik B S
2023-03-31  6:50 ` [igt-dev] [i-g-t V3 3/7] tests/i915/kms_dsc: Update bigjoiner pipe constraint Bhanuprakash Modem
2023-03-31  6:50 ` [igt-dev] [i-g-t V3 4/7] tests/i915/kms_dsc: Drop bigjoiner check Bhanuprakash Modem
2023-04-13  9:49   ` Karthik B S
2023-03-31  6:50 ` [igt-dev] [i-g-t V3 5/7] tests/kms_invalid_mode: Use helpers from IGT lib Bhanuprakash Modem
2023-04-05  7:43   ` Karthik B S
2023-03-31  6:50 ` [igt-dev] [i-g-t V3 6/7] tests/kms_flip: Fix Bigjoiner checks Bhanuprakash Modem
2023-03-31  6:50 ` [igt-dev] [i-g-t V3 7/7] tests/kms_setmode: " Bhanuprakash Modem
2023-03-31  7:29 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev3) Patchwork
2023-04-01  5:11 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2023-04-05 15:02 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev4) Patchwork
2023-04-06  4:12 ` [igt-dev] ✓ Fi.CI.IGT: " 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.