Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-10-25 14:27 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
@ 2023-10-25 14:27 ` Kunal Joshi
  0 siblings, 0 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-10-25 14:27 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_set to add support PR_MODE and
PR_MODE_SEL_FETCH

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_psr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 665b28a76..c2b2a4148 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd, int mode)
 		case PSR_MODE_2_SEL_FETCH:
 			debug_val = "0x4";
 			break;
+		case PR_MODE:
+			debug_val = "0x5";
+			break;
+		case PR_MODE_SEL_FETCH:
+			debug_val = "0x6";
+			break;
 		default:
 			/* Disables PSR */
 			debug_val = "0x1";
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr
@ 2023-10-31  8:09 Kunal Joshi
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
                   ` (8 more replies)
  0 siblings, 9 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-10-31  8:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

Panel Replay behaves same as PSR for DP connector,
modify kms_psr test to validate pr feature as well

Kunal Joshi (7):
  lib/igt_psr: added enum for panel replay
  lib/igt_psr: modified psr_sink_support for pr compatability
  lib/igt_psr: modified psr_active_check for pr compatability
  lib/igt_psr: modified psr_set for pr compatability
  lib/igt_psr: modified psr_get_mode for pr compatability
  tests/intel/kms_psr: made test compaitable with pr
  HAX PATCH DO NOT MERGE

 lib/igt_psr.c                          |  88 ++++--
 lib/igt_psr.h                          |  11 +-
 tests/intel-ci/fast-feedback.testlist  |  65 +++++
 tests/intel/kms_dirtyfb.c              |   4 +-
 tests/intel/kms_fbcon_fbt.c            |   8 +-
 tests/intel/kms_frontbuffer_tracking.c |   6 +-
 tests/intel/kms_pm_dc.c                |  15 +-
 tests/intel/kms_psr.c                  | 387 ++++++++++++++++++-------
 tests/intel/kms_psr2_sf.c              |  13 +-
 tests/intel/kms_psr2_su.c              |   7 +-
 tests/intel/kms_psr_stress_test.c      |   4 +-
 tests/kms_feature_discovery.c          |   4 +-
 12 files changed, 455 insertions(+), 157 deletions(-)

-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
@ 2023-10-31  8:09 ` Kunal Joshi
  2023-10-31 11:32   ` Hogander, Jouni
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 24+ messages in thread
From: Kunal Joshi @ 2023-10-31  8:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Added enum for PR

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_psr.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/igt_psr.h b/lib/igt_psr.h
index 12ffc9d6c..243154897 100644
--- a/lib/igt_psr.h
+++ b/lib/igt_psr.h
@@ -34,6 +34,8 @@ enum psr_mode {
 	PSR_MODE_1,
 	PSR_MODE_2,
 	PSR_MODE_2_SEL_FETCH,
+	PR_MODE,
+	PR_MODE_SEL_FETCH,
 	PSR_DISABLED,
 };
 
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
@ 2023-10-31  8:09 ` Kunal Joshi
  2023-10-31 10:40   ` Hogander, Jouni
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 24+ messages in thread
From: Kunal Joshi @ 2023-10-31  8:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

New debugfs directory for all DP connectors will be added
with below patch series https://patchwork.freedesktop.org/series/94470/

For DP Connectors
	/sys/kernel/debug/dri/0/DP-x/i915_psr_status

For eDP Connectors
	/sys/kernel/debug/dri/0/i915_edp_psr_status
			or
	/sys/kernel/debug/dri/0/eDP-x/i915_psr_status

v2: reuse psr_sink_support (Jouni)

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_psr.c                          | 54 ++++++++++++++++++--------
 lib/igt_psr.h                          |  3 +-
 tests/intel/kms_dirtyfb.c              |  2 +-
 tests/intel/kms_fbcon_fbt.c            |  4 +-
 tests/intel/kms_frontbuffer_tracking.c |  2 +-
 tests/intel/kms_pm_dc.c                |  9 +++--
 tests/intel/kms_psr.c                  |  2 +-
 tests/intel/kms_psr2_sf.c              |  3 +-
 tests/intel/kms_psr2_su.c              |  3 +-
 tests/intel/kms_psr_stress_test.c      |  2 +-
 tests/kms_feature_discovery.c          |  4 +-
 11 files changed, 57 insertions(+), 31 deletions(-)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 13f7c567d..aa3ca9ddb 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -192,31 +192,51 @@ bool psr_disable(int device, int debugfs_fd)
 	return psr_set(device, debugfs_fd, -1);
 }
 
-bool psr_sink_support(int device, int debugfs_fd, enum psr_mode mode)
+bool psr_sink_support(int device, int debugfs_fd, enum psr_mode mode, igt_output_t *output)
 {
+	char *line;
+	char debugfs_file[128] = {0};
 	char buf[PSR_STATUS_MAX_LEN];
 	int ret;
 
-	ret = igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf,
+	if (output)
+		sprintf(debugfs_file, "%s/i915_psr_status", output->name);
+	else
+		sprintf(debugfs_file, "%s", "i915_edp_psr_status");
+
+	ret = igt_debugfs_simple_read(debugfs_fd, debugfs_file, buf,
 				      sizeof(buf));
 	if (ret < 1)
 		return false;
 
-	if (mode == PSR_MODE_1)
-		return strstr(buf, "Sink_Support: yes\n") ||
-		       strstr(buf, "Sink support: yes");
-	else
-		/*
-		 * i915 requires PSR version 0x03 that is PSR2 + SU with
-		 * Y-coordinate to support PSR2
-		 *
-		 * or
-		 *
-		 * PSR version 0x4 that is PSR2 + SU w/ Y-coordinate and SU
-		 * Region Early Transport to support PSR2 (eDP 1.5)
-		 */
-		return strstr(buf, "Sink support: yes [0x03]") ||
-		       strstr(buf, "Sink support: yes [0x04]");
+	line = strstr(buf, "Sink support: ");
+	if (!line)
+		return false;
+
+	switch (mode) {
+		case PSR_MODE_1:
+			return strstr(line, "PSR = yes");
+		case PSR_MODE_2:
+		case PSR_MODE_2_SEL_FETCH:
+			/*
+			 * i915 requires PSR version 0x03 that is PSR2 + SU with
+			 * Y-coordinate to support PSR2
+			 * or
+			 *
+			 * PSR version 0x4 that is PSR2 + SU w/ Y-coordinate and SU
+			 * Region Early Transport to support PSR2 (eDP 1.5)
+			 */
+			return strstr(line, "PSR = yes") &&
+			       (strstr(line, "[0x03]") || strstr(line, "[0x04]"));
+		case PR_MODE:
+			return strstr(line, "Panel Replay = yes");
+		case PR_MODE_SEL_FETCH:
+			return strstr(line, "Panel Replay = yes") &&
+			       strstr(buf, "PSR2 selective fetch: enabled");
+		default:
+			igt_assert_f(false, "Invalid psr mode\n");
+			return false;
+	}
 }
 
 #define PSR2_SU_BLOCK_STR_LOOKUP "PSR2 SU blocks:\n0\t"
diff --git a/lib/igt_psr.h b/lib/igt_psr.h
index 243154897..e213b05e9 100644
--- a/lib/igt_psr.h
+++ b/lib/igt_psr.h
@@ -27,6 +27,7 @@
 #include "igt_debugfs.h"
 #include "igt_core.h"
 #include "igt_aux.h"
+#include "igt_kms.h"
 
 #define PSR_STATUS_MAX_LEN 512
 
@@ -46,7 +47,7 @@ bool psr_wait_update(int debugfs_fd, enum psr_mode mode);
 bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode);
 bool psr_enable(int device, int debugfs_fd, enum psr_mode);
 bool psr_disable(int device, int debugfs_fd);
-bool psr_sink_support(int device, int debugfs_fd, enum psr_mode mode);
+bool psr_sink_support(int device, int debugfs_fd, enum psr_mode mode, igt_output_t *output);
 bool psr2_wait_su(int debugfs_fd, uint16_t *num_su_blocks);
 void psr_print_debugfs(int debugfs_fd);
 enum psr_mode psr_get_mode(int debugfs_fd);
diff --git a/tests/intel/kms_dirtyfb.c b/tests/intel/kms_dirtyfb.c
index cc9529178..f7ff1ac0b 100644
--- a/tests/intel/kms_dirtyfb.c
+++ b/tests/intel/kms_dirtyfb.c
@@ -92,7 +92,7 @@ static bool check_support(data_t *data)
 		    DRM_MODE_CONNECTOR_eDP)
 			return false;
 		return psr_sink_support(data->drm_fd, data->debugfs_fd,
-					PSR_MODE_1);
+					PSR_MODE_1, NULL);
 	case FEATURE_DRRS:
 		return intel_is_drrs_supported(data->drm_fd, data->pipe) &&
 			intel_output_has_drrs(data->drm_fd, data->output);
diff --git a/tests/intel/kms_fbcon_fbt.c b/tests/intel/kms_fbcon_fbt.c
index 8d6bb3cb6..a7f24e669 100644
--- a/tests/intel/kms_fbcon_fbt.c
+++ b/tests/intel/kms_fbcon_fbt.c
@@ -269,7 +269,7 @@ static bool psr_is_disabled(int debugfs_fd)
 
 static bool psr_supported_on_chipset(int device, int debugfs_fd)
 {
-	return psr_sink_support(device, debugfs_fd, PSR_MODE_1);
+	return psr_sink_support(device, debugfs_fd, PSR_MODE_1, NULL);
 }
 
 static bool psr_wait_until_update(struct drm_info *drm)
@@ -280,7 +280,7 @@ static bool psr_wait_until_update(struct drm_info *drm)
 static void disable_features(int device, int debugfs_fd)
 {
 	igt_set_module_param_int(device, "enable_fbc", 0);
-	if (psr_sink_support(device, debugfs_fd, PSR_MODE_1))
+	if (psr_sink_support(device, debugfs_fd, PSR_MODE_1, NULL))
 		psr_disable(device, debugfs_fd);
 }
 
diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
index f90d09f9f..2d588e836 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -1362,7 +1362,7 @@ static void setup_psr(void)
 		return;
 	}
 
-	if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1)) {
+	if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1, NULL)) {
 		igt_info("Can't test PSR: not supported by sink.\n");
 		return;
 	}
diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
index 1e9ca5d6c..e5daacb84 100644
--- a/tests/intel/kms_pm_dc.c
+++ b/tests/intel/kms_pm_dc.c
@@ -673,14 +673,16 @@ igt_main
 	igt_describe("In this test we make sure that system enters DC3CO "
 		     "when PSR2 is active and system is in SLEEP state");
 	igt_subtest("dc3co-vpb-simulation") {
-		igt_require(psr_sink_support(data.drm_fd, data.debugfs_fd, PSR_MODE_2));
+		igt_require(psr_sink_support(data.drm_fd, data.debugfs_fd,
+					     PSR_MODE_2, NULL));
 		test_dc3co_vpb_simulation(&data);
 	}
 
 	igt_describe("This test validates display engine entry to DC5 state "
 		     "while PSR is active");
 	igt_subtest("dc5-psr") {
-		igt_require(psr_sink_support(data.drm_fd, data.debugfs_fd, PSR_MODE_1));
+		igt_require(psr_sink_support(data.drm_fd, data.debugfs_fd,
+					     PSR_MODE_1, NULL));
 		data.op_psr_mode = PSR_MODE_1;
 		psr_enable(data.drm_fd, data.debugfs_fd, data.op_psr_mode);
 		test_dc_state_psr(&data, CHECK_DC5);
@@ -689,7 +691,8 @@ igt_main
 	igt_describe("This test validates display engine entry to DC6 state "
 		     "while PSR is active");
 	igt_subtest("dc6-psr") {
-		igt_require(psr_sink_support(data.drm_fd, data.debugfs_fd, PSR_MODE_1));
+		igt_require(psr_sink_support(data.drm_fd, data.debugfs_fd,
+					     PSR_MODE_1, NULL));
 		data.op_psr_mode = PSR_MODE_1;
 		psr_enable(data.drm_fd, data.debugfs_fd, data.op_psr_mode);
 		igt_require_f(igt_pm_pc8_plus_residencies_enabled(data.msr_fd),
diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
index ffecc5222..260095aec 100644
--- a/tests/intel/kms_psr.c
+++ b/tests/intel/kms_psr.c
@@ -433,7 +433,7 @@ static void fill_render(data_t *data, const struct igt_fb *fb,
 static bool sink_support(data_t *data, enum psr_mode mode)
 {
 	return data->with_psr_disabled ||
-	       psr_sink_support(data->drm_fd, data->debugfs_fd, mode);
+	       psr_sink_support(data->drm_fd, data->debugfs_fd, mode, NULL);
 }
 
 static bool psr_wait_entry_if_enabled(data_t *data)
diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
index d7a746211..2d05f1110 100644
--- a/tests/intel/kms_psr2_sf.c
+++ b/tests/intel/kms_psr2_sf.c
@@ -980,7 +980,8 @@ igt_main
 		kmstest_set_vt_graphics_mode();
 
 		igt_require_f(psr_sink_support(data.drm_fd,
-					       data.debugfs_fd, PSR_MODE_2),
+					       data.debugfs_fd, PSR_MODE_2,
+					       NULL),
 			      "Sink does not support PSR2\n");
 
 		display_init(&data);
diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c
index 834fec1ec..2f89de435 100644
--- a/tests/intel/kms_psr2_su.c
+++ b/tests/intel/kms_psr2_su.c
@@ -327,7 +327,8 @@ igt_main
 		kmstest_set_vt_graphics_mode();
 
 		igt_require_f(psr_sink_support(data.drm_fd,
-					       data.debugfs_fd, PSR_MODE_2),
+					       data.debugfs_fd,
+					       PSR_MODE_2, NULL),
 			      "Sink does not support PSR2\n");
 
 		igt_require_f(intel_display_ver(intel_get_drm_devid(data.drm_fd)) < 13,
diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c
index b6759eece..beded3b94 100644
--- a/tests/intel/kms_psr_stress_test.c
+++ b/tests/intel/kms_psr_stress_test.c
@@ -357,7 +357,7 @@ igt_main
 		kmstest_set_vt_graphics_mode();
 
 		igt_require_f(psr_sink_support(data.drm_fd, data.debugfs_fd,
-					       PSR_MODE_1),
+					       PSR_MODE_1, NULL),
 			      "Sink does not support PSR\n");
 
 		setup_output(&data);
diff --git a/tests/kms_feature_discovery.c b/tests/kms_feature_discovery.c
index 3a1f6d21d..428f97ffe 100644
--- a/tests/kms_feature_discovery.c
+++ b/tests/kms_feature_discovery.c
@@ -159,12 +159,12 @@ igt_main {
 
 		igt_describe("Make sure that we have eDP panel with PSR1 support.");
 		igt_subtest("psr1") {
-			igt_require(psr_sink_support(fd, debugfs_fd, PSR_MODE_1));
+			igt_require(psr_sink_support(fd, debugfs_fd, PSR_MODE_1, NULL));
 		}
 
 		igt_describe("Make sure that we have eDP panel with PSR2 support.");
 		igt_subtest("psr2") {
-			igt_require(psr_sink_support(fd, debugfs_fd, PSR_MODE_2));
+			igt_require(psr_sink_support(fd, debugfs_fd, PSR_MODE_2, NULL));
 		}
 
 		igt_describe("Make sure that we have DP-MST configuration.");
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check for pr compatability
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
@ 2023-10-31  8:09 ` Kunal Joshi
  2023-10-31 11:38   ` Hogander, Jouni
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 24+ messages in thread
From: Kunal Joshi @ 2023-10-31  8:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Whenever PR is active, system will be in SRDENT,
modify psr_active_check to accomadte PR_MODE

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_psr.c                          | 24 +++++++++++++++---------
 lib/igt_psr.h                          |  6 +++---
 tests/intel/kms_dirtyfb.c              |  2 +-
 tests/intel/kms_fbcon_fbt.c            |  4 ++--
 tests/intel/kms_frontbuffer_tracking.c |  4 ++--
 tests/intel/kms_pm_dc.c                |  6 +++---
 tests/intel/kms_psr.c                  |  4 ++--
 tests/intel/kms_psr2_sf.c              | 10 +++++-----
 tests/intel/kms_psr2_su.c              |  4 ++--
 tests/intel/kms_psr_stress_test.c      |  2 +-
 10 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index aa3ca9ddb..665b28a76 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -47,13 +47,19 @@ bool psr2_selective_fetch_check(int debugfs_fd)
 	return strstr(buf, "PSR2 selective fetch: enabled");
 }
 
-static bool psr_active_check(int debugfs_fd, enum psr_mode mode)
+static bool psr_active_check(int debugfs_fd, enum psr_mode mode, igt_output_t *output)
 {
+	char debugfs_file[128] = {0};
 	char buf[PSR_STATUS_MAX_LEN];
-	const char *state = mode == PSR_MODE_1 ? "SRDENT" : "DEEP_SLEEP";
+	const char *state = mode == PSR_MODE_1 || PR_MODE ? "SRDENT" : "DEEP_SLEEP";
 	int ret;
 
-	ret = igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status",
+	if (output)
+		sprintf(debugfs_file, "%s/i915_psr_status", output->name);
+	else
+		sprintf(debugfs_file, "%s", "i915_edp_psr_status");
+
+	ret = igt_debugfs_simple_read(debugfs_fd, debugfs_file,
 				     buf, sizeof(buf));
 	if (ret < 0) {
 		igt_info("Could not read i915_edp_psr_status: %s\n",
@@ -69,19 +75,19 @@ static bool psr_active_check(int debugfs_fd, enum psr_mode mode)
 /*
  * For PSR1, we wait until PSR is active. We wait until DEEP_SLEEP for PSR2.
  */
-bool psr_wait_entry(int debugfs_fd, enum psr_mode mode)
+bool psr_wait_entry(int debugfs_fd, enum psr_mode mode, igt_output_t *output)
 {
-	return igt_wait(psr_active_check(debugfs_fd, mode), 500, 20);
+	return igt_wait(psr_active_check(debugfs_fd, mode, output), 500, 20);
 }
 
-bool psr_wait_update(int debugfs_fd, enum psr_mode mode)
+bool psr_wait_update(int debugfs_fd, enum psr_mode mode, igt_output_t *output)
 {
-	return igt_wait(!psr_active_check(debugfs_fd, mode), 40, 10);
+	return igt_wait(!psr_active_check(debugfs_fd, mode, output), 40, 10);
 }
 
-bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode)
+bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode, igt_output_t *output)
 {
-	return igt_wait(!psr_active_check(debugfs_fd, mode), 500, 10);
+	return igt_wait(!psr_active_check(debugfs_fd, mode, output), 500, 10);
 }
 
 static ssize_t psr_write(int debugfs_fd, const char *buf)
diff --git a/lib/igt_psr.h b/lib/igt_psr.h
index e213b05e9..a30330e6c 100644
--- a/lib/igt_psr.h
+++ b/lib/igt_psr.h
@@ -42,9 +42,9 @@ enum psr_mode {
 
 bool psr_disabled_check(int debugfs_fd);
 bool psr2_selective_fetch_check(int debugfs_fd);
-bool psr_wait_entry(int debugfs_fd, enum psr_mode mode);
-bool psr_wait_update(int debugfs_fd, enum psr_mode mode);
-bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode);
+bool psr_wait_entry(int debugfs_fd, enum psr_mode mode, igt_output_t *output);
+bool psr_wait_update(int debugfs_fd, enum psr_mode mode, igt_output_t *output);
+bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode, igt_output_t *output);
 bool psr_enable(int device, int debugfs_fd, enum psr_mode);
 bool psr_disable(int device, int debugfs_fd);
 bool psr_sink_support(int device, int debugfs_fd, enum psr_mode mode, igt_output_t *output);
diff --git a/tests/intel/kms_dirtyfb.c b/tests/intel/kms_dirtyfb.c
index f7ff1ac0b..b14cc8bec 100644
--- a/tests/intel/kms_dirtyfb.c
+++ b/tests/intel/kms_dirtyfb.c
@@ -135,7 +135,7 @@ static void check_feature(data_t *data)
 			     "FBC still disabled");
 		break;
 	case FEATURE_PSR:
-		igt_assert_f(psr_wait_entry(data->debugfs_fd, PSR_MODE_1),
+		igt_assert_f(psr_wait_entry(data->debugfs_fd, PSR_MODE_1, NULL),
 			     "PSR still disabled\n");
 		break;
 	case FEATURE_DRRS:
diff --git a/tests/intel/kms_fbcon_fbt.c b/tests/intel/kms_fbcon_fbt.c
index a7f24e669..4078309d9 100644
--- a/tests/intel/kms_fbcon_fbt.c
+++ b/tests/intel/kms_fbcon_fbt.c
@@ -253,7 +253,7 @@ static void psr_print_status(int debugfs_fd)
 
 static bool psr_wait_until_enabled(int debugfs_fd)
 {
-	bool r = psr_wait_entry(debugfs_fd, PSR_MODE_1);
+	bool r = psr_wait_entry(debugfs_fd, PSR_MODE_1, NULL);
 
 	psr_print_status(debugfs_fd);
 	return r;
@@ -274,7 +274,7 @@ static bool psr_supported_on_chipset(int device, int debugfs_fd)
 
 static bool psr_wait_until_update(struct drm_info *drm)
 {
-	return psr_long_wait_update(drm->debugfs_fd, PSR_MODE_1);
+	return psr_long_wait_update(drm->debugfs_fd, PSR_MODE_1, NULL);
 }
 
 static void disable_features(int device, int debugfs_fd)
diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
index 2d588e836..0a9033fad 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -1563,10 +1563,10 @@ static void do_status_assertions(int flags)
 	}
 
 	if (flags & ASSERT_PSR_ENABLED)
-		igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1),
+		igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1, NULL),
 			     "PSR still disabled\n");
 	else if (flags & ASSERT_PSR_DISABLED)
-		igt_assert_f(psr_wait_update(drm.debugfs, PSR_MODE_1),
+		igt_assert_f(psr_wait_update(drm.debugfs, PSR_MODE_1, NULL),
 			     "PSR still enabled\n");
 }
 
diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
index e5daacb84..a3c7c4018 100644
--- a/tests/intel/kms_pm_dc.c
+++ b/tests/intel/kms_pm_dc.c
@@ -382,7 +382,7 @@ static void setup_dc3co(data_t *data)
 {
 	data->op_psr_mode = PSR_MODE_2;
 	psr_enable(data->drm_fd, data->debugfs_fd, data->op_psr_mode);
-	igt_require_f(psr_wait_entry(data->debugfs_fd, data->op_psr_mode),
+	igt_require_f(psr_wait_entry(data->debugfs_fd, data->op_psr_mode, NULL),
 		      "PSR2 is not enabled\n");
 }
 
@@ -418,7 +418,7 @@ static void test_dc_state_psr(data_t *data, int dc_flag)
 	dc_counter_before_psr = read_dc_counter(data->debugfs_fd, dc_flag);
 	setup_output(data);
 	setup_primary(data);
-	igt_assert(psr_wait_entry(data->debugfs_fd, data->op_psr_mode));
+	igt_assert(psr_wait_entry(data->debugfs_fd, data->op_psr_mode, NULL));
 	check_dc_counter(data, dc_flag, dc_counter_before_psr);
 	cleanup_dc_psr(data);
 }
@@ -624,7 +624,7 @@ static void test_pkgc_state_psr(data_t *data)
 	prev_value = read_pkgc_counter(data->debugfs_root_fd);
 	setup_output(data);
 	setup_primary(data);
-	igt_assert(psr_wait_entry(data->debugfs_fd, data->op_psr_mode));
+	igt_assert(psr_wait_entry(data->debugfs_fd, data->op_psr_mode, NULL));
 	psr_dpms(data, DRM_MODE_DPMS_OFF);
 	igt_wait((cur_value = read_pkgc_counter(data->debugfs_root_fd)) > prev_value,
 		  timeout_sec * 1000, 100);
diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
index 260095aec..8485e9894 100644
--- a/tests/intel/kms_psr.c
+++ b/tests/intel/kms_psr.c
@@ -441,7 +441,7 @@ static bool psr_wait_entry_if_enabled(data_t *data)
 	if (data->with_psr_disabled)
 		return true;
 
-	return psr_wait_entry(data->debugfs_fd, data->op_psr_mode);
+	return psr_wait_entry(data->debugfs_fd, data->op_psr_mode, data->output);
 }
 
 static bool psr_wait_update_if_enabled(data_t *data)
@@ -449,7 +449,7 @@ static bool psr_wait_update_if_enabled(data_t *data)
 	if (data->with_psr_disabled)
 		return true;
 
-	return psr_wait_update(data->debugfs_fd, data->op_psr_mode);
+	return psr_wait_update(data->debugfs_fd, data->op_psr_mode, data->output);
 }
 
 static bool psr_enable_if_enabled(data_t *data)
diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
index 2d05f1110..9f5186eee 100644
--- a/tests/intel/kms_psr2_sf.c
+++ b/tests/intel/kms_psr2_sf.c
@@ -677,7 +677,7 @@ static void damaged_plane_move(data_t *data)
 
 	igt_display_commit2(&data->display, COMMIT_ATOMIC);
 
-	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
+	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2, NULL));
 
 	expected_output(data);
 }
@@ -777,7 +777,7 @@ static void plane_move_continuous(data_t *data)
 {
 	int target_x, target_y;
 
-	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
+	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2, NULL));
 
 	get_target_coords(data, &target_x, &target_y);
 
@@ -854,7 +854,7 @@ static void damaged_plane_update(data_t *data)
 	igt_plane_set_position(data->test_plane, 0, 0);
 	igt_display_commit2(&data->display, COMMIT_ATOMIC);
 
-	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
+	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2, NULL));
 
 	expected_output(data);
 }
@@ -863,7 +863,7 @@ static void run(data_t *data)
 {
 	int i;
 
-	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
+	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2, NULL));
 
 	data->screen_changes = 0;
 
@@ -941,7 +941,7 @@ static int check_psr2_support(data_t *data)
 	int status;
 
 	prepare(data);
-	status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
+	status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2, NULL);
 	cleanup(data);
 
 	return status;
diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c
index 2f89de435..3506409b7 100644
--- a/tests/intel/kms_psr2_su.c
+++ b/tests/intel/kms_psr2_su.c
@@ -258,7 +258,7 @@ static void run(data_t *data, igt_output_t *output)
 {
 	bool result = false;
 
-	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
+	igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2, output));
 
 	for (data->screen_changes = 0;
 	     data->screen_changes < MAX_SCREEN_CHANGES && !result;
@@ -304,7 +304,7 @@ static int check_psr2_support(data_t *data, enum pipe pipe)
 	igt_output_set_pipe(output, pipe);
 
 	prepare(data, output);
-	status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
+	status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2, output);
 	cleanup(data, output);
 
 	return status;
diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c
index beded3b94..e3b21603a 100644
--- a/tests/intel/kms_psr_stress_test.c
+++ b/tests/intel/kms_psr_stress_test.c
@@ -232,7 +232,7 @@ static void prepare(data_t *data)
 
 	data->initial_state = psr_get_mode(data->debugfs_fd);
 	igt_require(data->initial_state != PSR_DISABLED);
-	igt_require(psr_wait_entry(data->debugfs_fd, data->initial_state));
+	igt_require(psr_wait_entry(data->debugfs_fd, data->initial_state, NULL));
 }
 
 static void cleanup(data_t *data)
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
                   ` (2 preceding siblings ...)
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
@ 2023-10-31  8:09 ` Kunal Joshi
  2023-10-31 11:42   ` Hogander, Jouni
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 24+ messages in thread
From: Kunal Joshi @ 2023-10-31  8:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_set to add support PR_MODE and
PR_MODE_SEL_FETCH

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_psr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 665b28a76..c2b2a4148 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd, int mode)
 		case PSR_MODE_2_SEL_FETCH:
 			debug_val = "0x4";
 			break;
+		case PR_MODE:
+			debug_val = "0x5";
+			break;
+		case PR_MODE_SEL_FETCH:
+			debug_val = "0x6";
+			break;
 		default:
 			/* Disables PSR */
 			debug_val = "0x1";
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode for pr compatability
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
                   ` (3 preceding siblings ...)
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
@ 2023-10-31  8:09 ` Kunal Joshi
  2023-10-31 12:06   ` Hogander, Jouni
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 24+ messages in thread
From: Kunal Joshi @ 2023-10-31  8:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_get_mode for PR_MODE

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_psr.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index c2b2a4148..bddf80d6a 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -382,7 +382,9 @@ enum psr_mode psr_get_mode(int debugfs_fd)
 		return PSR_DISABLED;
 	}
 
-	if (strstr(buf, "PSR2 selective fetch: enabled"))
+	if (strstr(buf, "Panel Replay Enabled"))
+		return PR_MODE;
+	else if (strstr(buf, "PSR2 selective fetch: enabled"))
 		return PSR_MODE_2_SEL_FETCH;
 	else if (strstr(buf, "PSR2 enabled"))
 		return PSR_MODE_2;
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
                   ` (4 preceding siblings ...)
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
@ 2023-10-31  8:09 ` Kunal Joshi
  2023-10-31 12:23   ` Hogander, Jouni
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE Kunal Joshi
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 24+ messages in thread
From: Kunal Joshi @ 2023-10-31  8:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified kms_psr to have support for PR.

v2: remove set_output and have outputs (Jouni)
v3: loop over connected outputs (Jouni)

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/intel/kms_psr.c | 381 +++++++++++++++++++++++++++++++-----------
 1 file changed, 286 insertions(+), 95 deletions(-)

diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
index 8485e9894..feb24329f 100644
--- a/tests/intel/kms_psr.c
+++ b/tests/intel/kms_psr.c
@@ -25,7 +25,7 @@
 /**
  * TEST: kms psr
  * Category: Display
- * Description: Tests behaviour of PSR & PSR2
+ * Description: Tests behaviour of PSR & PSR2 & PR
  */
 
 #include "igt.h"
@@ -39,14 +39,14 @@
 #include "xe/xe_query.h"
 
 /**
- * SUBTEST: basic
+ * SUBTEST: psr_basic
  * Description: Basic check for psr if it is detecting changes made in planes
  * Driver requirement: i915, xe
  * Functionality: psr
  * Mega feature: PSR
  * Test category: functionality test
  *
- * SUBTEST: %s_%s
+ * SUBTEST: psr_%s_%s
  * Description: Check if psr is detecting memory mapping, rendering and plane
  *              operations performed on %arg[1]
  * Driver requirement: i915
@@ -67,7 +67,7 @@
  */
 
 /**
- * SUBTEST: sprite_plane_move
+ * SUBTEST: psr_sprite_plane_move
  * Description: Check if psr is detecting memory mapping, rendering and plane
  *              operations performed on sprite planes
  * Driver requirement: i915, xe
@@ -75,7 +75,7 @@
  * Mega feature: PSR
  * Test category: functionality test
  *
- * SUBTEST: %s_%s
+ * SUBTEST: psr_%s_%s
  * Description: Check if psr is detecting memory mapping, rendering and plane
  *              operations performed on %arg[1] planes
  * Driver requirement: i915, xe
@@ -96,7 +96,7 @@
  */
 
 /**
- * SUBTEST: primary_%s
+ * SUBTEST: psr_primary_%s
  * Description: Check if psr is detecting memory mapping, rendering and plane
  *              operations performed on %arg[1] planes
  * Driver requirement: i915, xe
@@ -111,7 +111,7 @@
  */
 
 /**
- * SUBTEST: dpms
+ * SUBTEST: psr_dpms
  * Description: Check if psr is detecting changes when rendering operation is
  *              performed  with dpms enabled or disabled
  * Driver requirement: i915, xe
@@ -119,14 +119,14 @@
  * Mega feature: PSR
  * Test category: functionality test
  *
- * SUBTEST: no_drrs
+ * SUBTEST: psr_no_drrs
  * Description: Check if psr is detecting changes when drrs is disabled
  * Driver requirement: i915, xe
  * Functionality: drrs, psr
  * Mega feature: PSR
  * Test category: functionality test
  *
- * SUBTEST: suspend
+ * SUBTEST: psr_suspend
  * Description: Check if psr is detecting changes when plane operation
  *              is performed with suspend resume cycles
  * Driver requirement: i915, xe
@@ -229,6 +229,112 @@
  * @plane_move:         Move plane position
  */
 
+/**
+ * SUBTEST: pr_dpms
+ * Description: Check if pr is detecting changes when rendering operation
+ *              is performed with dpms enabled or disabled
+ * Driver requirement: i915, xe
+ * Functionality: dpms, pr
+ * Mega feature: Panel Replay
+ * Test category: functionality test
+ */
+
+/**
+ * SUBTEST: pr_no_drrs
+ * Description: Check if pr is detecting changes when drrs is disabled
+ * Driver requirement: i915, xe
+ * Functionality: drrs, pr
+ * Mega feature: Panel Replay
+ * Test category: functionality test
+ */
+
+/**
+ * SUBTEST: pr_suspend
+ * Description: Check if pr is detecting changes when plane operation is
+ *              performed with suspend resume cycles
+ * Driver requirement: i915, xe
+ * Functionality: pr, suspend
+ * Mega feature: Panel Replay
+ * Test category: functionality test
+ */
+
+/**
+ * SUBTEST: pr_basic
+ * Description: Basic check for pr if it is detecting changes made in planes
+ * Driver requirement: i915, xe
+ * Functionality: pr
+ * Mega feature: Panel Replay
+ * Test category: functionality test
+ */
+
+/**
+ * SUBTEST: pr_%s_%s
+ * Description: Check if pr is detecting memory mapping, rendering and plane
+ *              operations performed on %arg[1] planes
+ * Driver requirement: i915
+ * Functionality: kms_core, plane, pr
+ * Mega feature: Panel Replay
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @cursor:             Cursor plane
+ * @primary:            Primary plane
+ * @sprite:             Sprite plane
+ *
+ * arg[2]:
+ *
+ * @mmap_cpu:           MMAP CPU
+ * @mmap_gtt:           MMAP GTT
+ */
+
+/**
+ * SUBTEST: pr_primary_page_flip
+ * Description: Check if pr is detecting memory mapping, rendering and plane
+ *              operations performed on primary planes
+ * Driver requirement: i915, xe
+ * Functionality: plane, pr
+ * Mega feature: Panel Replay
+ * Test category: functionality test
+ */
+
+/**
+ * SUBTEST: pr_primary_%s
+ * Description: Check if pr is detecting memory mapping, rendering and plane
+ *              operations performed on primary planes
+ * Driver requirement: i915, xe
+ * Functionality: kms_core, plane, pr
+ * Mega feature: Panel Replay
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @blt:                Blitter
+ * @render:             Render
+ */
+
+/**
+ * SUBTEST: pr_%s_%s
+ * Description: Check if pr is detecting memory mapping, rendering and plane
+ *              operations performed on %arg[1] planes
+ * Driver requirement: i915, xe
+ * Functionality: kms_core, plane, pr
+ * Mega feature: Panel Replay
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @cursor:             Cursor plane
+ * @sprite:             Sprite plane
+ *
+ * arg[2]:
+ *
+ * @blt:                Blitter
+ * @render:             Render
+ * @plane_onoff:        Plane On off
+ * @plane_move:         Move plane position
+ */
+
 enum operations {
 	PAGE_FLIP,
 	MMAP_GTT,
@@ -271,7 +377,9 @@ typedef struct {
 	drmModeModeInfo *mode;
 	igt_output_t *output;
 	bool with_psr_disabled;
+	bool supports_psr;
 	bool supports_psr2;
+	bool supports_pr;
 } data_t;
 
 static void create_cursor_fb(data_t *data)
@@ -289,36 +397,34 @@ static void create_cursor_fb(data_t *data)
 	igt_put_cairo_ctx(cr);
 }
 
-static void setup_output(data_t *data)
+static void set_output_supports(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	igt_output_t *output;
-	enum pipe pipe;
-
-	for_each_pipe_with_valid_output(display, pipe, output) {
-		drmModeConnectorPtr c = output->config.connector;
 
-		if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
-			continue;
-
-		igt_display_reset(display);
-		igt_output_set_pipe(output, pipe);
-		if (!i915_pipe_output_combo_valid(display))
-			continue;
-
-		data->crtc_id = output->config.crtc->crtc_id;
-		data->output = output;
-
-		return;
+	for_each_connected_output(&data->display, output) {
+                if(psr_sink_support(data->drm_fd, data->debugfs_fd,
+                                    PSR_MODE_2, output))
+                {
+                        data->supports_psr2 = true;
+                        igt_debug("PSR_2 supported on %s\n", output->name);
+                }
+		else if(psr_sink_support(data->drm_fd, data->debugfs_fd,
+				    PSR_MODE_1, output))
+		{
+			data->supports_psr = true;
+			igt_debug("PSR_1 supported on %s\n", output->name);
+		}
+		else if(psr_sink_support(data->drm_fd, data->debugfs_fd,
+                                    PR_MODE, output))
+                {
+                        data->supports_pr = true;
+			igt_debug("PR supported on %s\n", output->name);
+                }
+		else
+			igt_debug("PSR/PSR2/PR not supported on %s\n", output->name);
 	}
 }
 
-static void display_init(data_t *data)
-{
-	igt_display_require(&data->display, data->drm_fd);
-	setup_output(data);
-}
-
 static void display_fini(data_t *data)
 {
 	igt_display_fini(&data->display);
@@ -502,7 +608,7 @@ static void fb_dirty_fb_ioctl(data_t *data, struct igt_fb *fb)
 }
 
 /**
- * SUBTEST: cursor_plane_move
+ * SUBTEST: psr_cursor_plane_move
  * Description: Check if psr is detecting the plane operations performed on
  *		cursor planes
  * Driver requirement: i915, xe
@@ -510,7 +616,7 @@ static void fb_dirty_fb_ioctl(data_t *data, struct igt_fb *fb)
  * Functionality: psr
  * Mega feature: PSR
  *
- * SUBTEST: primary_page_flip
+ * SUBTEST: psr_primary_page_flip
  * Description: Check if psr is detecting page-flipping operations performed
  *		on primary planes
  * Driver requirement: i915, xe
@@ -518,7 +624,7 @@ static void fb_dirty_fb_ioctl(data_t *data, struct igt_fb *fb)
  * Functionality: psr
  * Mega feature: PSR
  *
- * SUBTEST: sprite_plane_onoff
+ * SUBTEST: psr_sprite_plane_onoff
  * Description: Check if psr is detecting the plane operations performed on
  *		sprite planes
  * Driver requirement: i915, xe
@@ -683,15 +789,36 @@ static void setup_test_plane(data_t *data, int test_plane)
 	igt_display_commit(&data->display);
 }
 
+static enum pipe get_pipe_for_output(igt_display_t *display,
+				     igt_output_t *output)
+{
+        enum pipe pipe;
+
+        for_each_pipe(display, pipe) {
+                if (igt_pipe_connector_valid(pipe, output)) {
+                        return pipe;
+                }
+        }
+
+        igt_assert_f(false, "No pipe found for output %s\n",
+                     igt_output_name(output));
+}
+
 static void test_setup(data_t *data)
 {
+	enum pipe pipe;
 	drmModeConnectorPtr connector;
 	bool psr_entered = false;
 
 	igt_require_f(data->output,
 		      "No available output found\n");
 
+	data->crtc_id = data->output->config.crtc->crtc_id;
 	connector = data->output->config.connector;
+	pipe = get_pipe_for_output(&data->display, data->output);
+	igt_output_set_pipe(data->output, pipe);
+	igt_require_f(i915_pipe_output_combo_valid(&data->display),
+		      "output pipe combo not valid\n");
 
 	for (int i = 0; i < connector->count_modes; i++) {
 		data->mode = &connector->modes[i];
@@ -747,115 +874,179 @@ data_t data = {};
 
 igt_main_args("", long_options, help_str, opt_handler, &data)
 {
+	int z;
 	enum operations op;
-	const char *append_subtest_name[2] = {
-		"",
-		"psr2_"
+	const char *append_subtest_name[3] = {
+		"psr_",
+		"psr2_",
+		"pr_"
 	};
+	int modes[] = {PSR_MODE_1, PSR_MODE_2, PR_MODE};
+	igt_output_t *output;
 
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
 		data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
 		kmstest_set_vt_graphics_mode();
 		data.devid = intel_get_drm_devid(data.drm_fd);
+		data.bops = buf_ops_create(data.drm_fd);
+		igt_display_require(&data.display, data.drm_fd);
+		set_output_supports(&data);
+		data.supports_psr2 = data.supports_psr2 | sink_support(&data, PSR_MODE_2);
 
-		igt_require_f(sink_support(&data, PSR_MODE_1),
-			      "Sink does not support PSR\n");
+                igt_require_f(data.supports_psr || data.supports_psr2 || data.supports_pr,
+                              "Sink does not support PSR/PSR2/PR\n");
 
-		data.supports_psr2 = sink_support(&data, PSR_MODE_2);
-		data.bops = buf_ops_create(data.drm_fd);
-		display_init(&data);
 	}
 
-	for (data.op_psr_mode = PSR_MODE_1; data.op_psr_mode <= PSR_MODE_2;
-	     data.op_psr_mode++) {
+	for (z = 0; z < ARRAY_SIZE(modes); z++) {
+		data.op_psr_mode = modes[z];
 
 		igt_describe("Basic check for psr if it is detecting changes made in planes");
-		igt_subtest_f("%sbasic", append_subtest_name[data.op_psr_mode]) {
-			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
-			test_setup(&data);
-			test_cleanup(&data);
+		igt_subtest_with_dynamic_f("%sbasic", append_subtest_name[z]) {
+			for_each_connected_output(&data.display, output) {
+				if (!psr_sink_support(data.drm_fd, data.debugfs_fd,
+						      data.op_psr_mode, output))
+					continue;
+				igt_display_reset(&data.display);
+				data.output = output;
+				igt_dynamic_f("%s", data.output->name) {
+					data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
+					test_setup(&data);
+					test_cleanup(&data);
+				}
+			}
 		}
 
 		igt_describe("Check if psr is detecting changes when drrs is disabled");
-		igt_subtest_f("%sno_drrs", append_subtest_name[data.op_psr_mode]) {
-			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
-			test_setup(&data);
-			igt_assert(drrs_disabled(&data));
-			test_cleanup(&data);
+		igt_subtest_with_dynamic_f("%sno_drrs", append_subtest_name[z]) {
+			for_each_connected_output(&data.display, output) {
+				if (!psr_sink_support(data.drm_fd, data.debugfs_fd,
+						      data.op_psr_mode, output))
+					continue;
+                                igt_display_reset(&data.display);
+                                data.output = output;
+                                igt_dynamic_f("%s", data.output->name) {
+					data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
+					test_setup(&data);
+					igt_assert(drrs_disabled(&data));
+					test_cleanup(&data);
+				}
+			}
 		}
 
 		for (op = PAGE_FLIP; op <= RENDER; op++) {
 			igt_describe("Check if psr is detecting page-flipping,memory mapping and "
 					"rendering operations performed on primary planes");
-			igt_subtest_f("%sprimary_%s",
-				      append_subtest_name[data.op_psr_mode],
+			igt_subtest_with_dynamic_f("%sprimary_%s",
+				      append_subtest_name[z],
 				      op_str(op)) {
 				igt_skip_on(is_xe_device(data.drm_fd) &&
 					    (op == MMAP_CPU || op == MMAP_GTT));
-
-				data.op = op;
-				data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
-				test_setup(&data);
-				run_test(&data);
-				test_cleanup(&data);
+				for_each_connected_output(&data.display, output) {
+					if (!psr_sink_support(data.drm_fd, data.debugfs_fd,
+							      data.op_psr_mode, output))
+						continue;
+					igt_display_reset(&data.display);
+					data.output = output;
+					igt_dynamic_f("%s", data.output->name) {
+						data.op = op;
+						data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
+						test_setup(&data);
+						run_test(&data);
+						test_cleanup(&data);
+					}
+				}
 			}
 		}
 
 		for (op = MMAP_GTT; op <= PLANE_ONOFF; op++) {
 			igt_describe("Check if psr is detecting memory mapping,rendering "
 					"and plane operations performed on sprite planes");
-			igt_subtest_f("%ssprite_%s",
-				      append_subtest_name[data.op_psr_mode],
+			igt_subtest_with_dynamic_f("%ssprite_%s",
+				      append_subtest_name[z],
 				      op_str(op)) {
 				igt_skip_on(is_xe_device(data.drm_fd) &&
 					    (op == MMAP_CPU || op == MMAP_GTT));
-
-				data.op = op;
-				data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
-				test_setup(&data);
-				run_test(&data);
-				test_cleanup(&data);
+				for_each_connected_output(&data.display, output) {
+					if (!psr_sink_support(data.drm_fd, data.debugfs_fd,
+							      data.op_psr_mode, output))
+						continue;
+					igt_display_reset(&data.display);
+					data.output = output;
+					igt_dynamic_f("%s", data.output->name) {
+						data.op = op;
+						data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
+						test_setup(&data);
+						run_test(&data);
+						test_cleanup(&data);
+					}
+				}
 			}
 
 			igt_describe("Check if psr is detecting memory mapping, rendering "
 					"and plane operations performed on cursor planes");
-			igt_subtest_f("%scursor_%s",
-				      append_subtest_name[data.op_psr_mode],
+			igt_subtest_with_dynamic_f("%scursor_%s",
+				      append_subtest_name[z],
 				      op_str(op)) {
 				igt_skip_on(is_xe_device(data.drm_fd) &&
 					    (op == MMAP_CPU || op == MMAP_GTT));
-
-				data.op = op;
-				data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
-				test_setup(&data);
-				run_test(&data);
-				test_cleanup(&data);
+				for_each_connected_output(&data.display, output) {
+					if (!psr_sink_support(data.drm_fd, data.debugfs_fd,
+							      data.op_psr_mode, output))
+						continue;
+					igt_display_reset(&data.display);
+					data.output = output;
+					igt_dynamic_f("%s", data.output->name) {
+						data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
+						test_setup(&data);
+						run_test(&data);
+						test_cleanup(&data);
+					}
+				}
 			}
 		}
 
 		igt_describe("Check if psr is detecting changes when rendering operation is performed"
 				"  with dpms enabled or disabled");
-		igt_subtest_f("%sdpms", append_subtest_name[data.op_psr_mode]) {
-			data.op = RENDER;
-			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
-			test_setup(&data);
-			dpms_off_on(&data);
-			run_test(&data);
-			test_cleanup(&data);
+		igt_subtest_with_dynamic_f("%sdpms", append_subtest_name[z]) {
+			for_each_connected_output(&data.display, output) {
+				if (!psr_sink_support(data.drm_fd, data.debugfs_fd,
+						      data.op_psr_mode, output))
+					continue;
+                                igt_display_reset(&data.display);
+                                data.output = output;
+                                igt_dynamic_f("%s", data.output->name) {
+					data.op = RENDER;
+					data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
+					test_setup(&data);
+					dpms_off_on(&data);
+					run_test(&data);
+					test_cleanup(&data);
+				}
+			}
 		}
 
 		igt_describe("Check if psr is detecting changes when plane operation is performed "
 				"with suspend resume cycles");
-		igt_subtest_f("%ssuspend", append_subtest_name[data.op_psr_mode]) {
-			data.op = PLANE_ONOFF;
-			data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
-			test_setup(&data);
-			igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
-						      SUSPEND_TEST_NONE);
-			igt_assert(psr_wait_entry_if_enabled(&data));
-			run_test(&data);
-			test_cleanup(&data);
+		igt_subtest_with_dynamic_f("%ssuspend", append_subtest_name[z]) {
+			for_each_connected_output(&data.display, output) {
+				if (!psr_sink_support(data.drm_fd, data.debugfs_fd,
+						      data.op_psr_mode, output))
+					continue;
+                                igt_display_reset(&data.display);
+                                data.output = output;
+                                igt_dynamic_f("%s", data.output->name) {
+					data.op = PLANE_ONOFF;
+					data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
+					test_setup(&data);
+					igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+								      SUSPEND_TEST_NONE);
+					igt_assert(psr_wait_entry_if_enabled(&data));
+					run_test(&data);
+					test_cleanup(&data);
+				}
+			}
 		}
 	}
 
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
                   ` (5 preceding siblings ...)
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
@ 2023-10-31  8:09 ` Kunal Joshi
  2023-10-31  9:41 ` [igt-dev] ✗ Fi.CI.BAT: failure for extend kms_psr test to validate pr (rev3) Patchwork
  2023-10-31  9:43 ` [igt-dev] ✗ CI.xeBAT: " Patchwork
  8 siblings, 0 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-10-31  8:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/intel-ci/fast-feedback.testlist | 65 +++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index c252e2cf0..678d42f94 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -1,6 +1,71 @@
 # Try to load the driver if it's not available yet.
 igt@i915_module_load@load
 
+# Hax patch for testing do not merge
+igt@kms_psr@psr_basic
+igt@kms_psr@psr_no_drrs
+igt@kms_psr@psr_primary_page_flip
+igt@kms_psr@psr_primary_mmap_gtt
+igt@kms_psr@psr_primary_mmap_cpu
+igt@kms_psr@psr_primary_blt
+igt@kms_psr@psr_primary_render
+igt@kms_psr@psr_sprite_mmap_gtt
+igt@kms_psr@psr_cursor_mmap_gtt
+igt@kms_psr@psr_sprite_mmap_cpu
+igt@kms_psr@psr_cursor_mmap_cpu
+igt@kms_psr@psr_sprite_blt
+igt@kms_psr@psr_cursor_blt
+igt@kms_psr@psr_sprite_render
+igt@kms_psr@psr_cursor_render
+igt@kms_psr@psr_sprite_plane_move
+igt@kms_psr@psr_cursor_plane_move
+igt@kms_psr@psr_sprite_plane_onoff
+igt@kms_psr@psr_cursor_plane_onoff
+igt@kms_psr@psr_dpms
+igt@kms_psr@psr_suspend
+igt@kms_psr@psr2_basic
+igt@kms_psr@psr2_no_drrs
+igt@kms_psr@psr2_primary_page_flip
+igt@kms_psr@psr2_primary_mmap_gtt
+igt@kms_psr@psr2_primary_mmap_cpu
+igt@kms_psr@psr2_primary_blt
+igt@kms_psr@psr2_primary_render
+igt@kms_psr@psr2_sprite_mmap_gtt
+igt@kms_psr@psr2_cursor_mmap_gtt
+igt@kms_psr@psr2_sprite_mmap_cpu
+igt@kms_psr@psr2_cursor_mmap_cpu
+igt@kms_psr@psr2_sprite_blt
+igt@kms_psr@psr2_cursor_blt
+igt@kms_psr@psr2_sprite_render
+igt@kms_psr@psr2_cursor_render
+igt@kms_psr@psr2_sprite_plane_move
+igt@kms_psr@psr2_cursor_plane_move
+igt@kms_psr@psr2_sprite_plane_onoff
+igt@kms_psr@psr2_cursor_plane_onoff
+igt@kms_psr@psr2_dpms
+igt@kms_psr@psr2_suspend
+igt@kms_psr@pr_basic
+igt@kms_psr@pr_no_drrs
+igt@kms_psr@pr_primary_page_flip
+igt@kms_psr@pr_primary_mmap_gtt
+igt@kms_psr@pr_primary_mmap_cpu
+igt@kms_psr@pr_primary_blt
+igt@kms_psr@pr_primary_render
+igt@kms_psr@pr_sprite_mmap_gtt
+igt@kms_psr@pr_cursor_mmap_gtt
+igt@kms_psr@pr_sprite_mmap_cpu
+igt@kms_psr@pr_cursor_mmap_cpu
+igt@kms_psr@pr_sprite_blt
+igt@kms_psr@pr_cursor_blt
+igt@kms_psr@pr_sprite_render
+igt@kms_psr@pr_cursor_render
+igt@kms_psr@pr_sprite_plane_move
+igt@kms_psr@pr_cursor_plane_move
+igt@kms_psr@pr_sprite_plane_onoff
+igt@kms_psr@pr_cursor_plane_onoff
+igt@kms_psr@pr_dpms
+igt@kms_psr@pr_suspend
+
 # Keep alphabetically sorted by default
 igt@core_auth@basic-auth
 igt@debugfs_test@read_all_entries
-- 
2.25.1

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

* [igt-dev] ✗ Fi.CI.BAT: failure for extend kms_psr test to validate pr (rev3)
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
                   ` (6 preceding siblings ...)
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE Kunal Joshi
@ 2023-10-31  9:41 ` Patchwork
  2023-10-31  9:43 ` [igt-dev] ✗ CI.xeBAT: " Patchwork
  8 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2023-10-31  9:41 UTC (permalink / raw)
  To: Joshi, Kunal1; +Cc: igt-dev

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

== Series Details ==

Series: extend kms_psr test to validate pr (rev3)
URL   : https://patchwork.freedesktop.org/series/125379/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13817 -> IGTPW_10093
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_10093 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_10093, please notify your bug team (lgci.bug.filing@intel.com) 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_10093/index.html

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

  Missing    (3): fi-kbl-soraka bat-mtlp-8 fi-snb-2520m 

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_psr@pr_cursor_blt} (NEW):
    - bat-jsl-3:          NOTRUN -> [SKIP][1] +62 other tests skip
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-jsl-3/igt@kms_psr@pr_cursor_blt.html

  * {igt@kms_psr@pr_cursor_mmap_cpu} (NEW):
    - bat-adlp-6:         NOTRUN -> [SKIP][2] +62 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adlp-6/igt@kms_psr@pr_cursor_mmap_cpu.html

  * {igt@kms_psr@pr_primary_mmap_gtt} (NEW):
    - bat-rplp-1:         NOTRUN -> [SKIP][3] +62 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-rplp-1/igt@kms_psr@pr_primary_mmap_gtt.html

  * {igt@kms_psr@pr_sprite_blt} (NEW):
    - bat-dg2-11:         NOTRUN -> [SKIP][4] +62 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-dg2-11/igt@kms_psr@pr_sprite_blt.html
    - {bat-dg2-14}:       NOTRUN -> [SKIP][5] +41 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-dg2-14/igt@kms_psr@pr_sprite_blt.html

  * {igt@kms_psr@pr_sprite_render} (NEW):
    - bat-adlp-11:        NOTRUN -> [SKIP][6] +62 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adlp-11/igt@kms_psr@pr_sprite_render.html

  * igt@kms_psr@psr2_no_drrs:
    - bat-jsl-1:          NOTRUN -> [SKIP][7] +62 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-jsl-1/igt@kms_psr@psr2_no_drrs.html

  * igt@kms_psr@psr2_primary_blt:
    - bat-dg2-9:          NOTRUN -> [SKIP][8] +62 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-dg2-9/igt@kms_psr@psr2_primary_blt.html

  * igt@kms_psr@psr2_primary_mmap_gtt:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][9] +62 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-tgl-1115g4/igt@kms_psr@psr2_primary_mmap_gtt.html

  * igt@kms_psr@psr2_primary_render:
    - bat-mtlp-6:         NOTRUN -> [SKIP][10] +62 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-mtlp-6/igt@kms_psr@psr2_primary_render.html

  * igt@kms_psr@psr2_sprite_plane_onoff:
    - bat-adlp-9:         NOTRUN -> [SKIP][11] +62 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adlp-9/igt@kms_psr@psr2_sprite_plane_onoff.html

  * igt@kms_psr@psr2_suspend:
    - bat-adln-1:         NOTRUN -> [SKIP][12] +62 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adln-1/igt@kms_psr@psr2_suspend.html

  * {igt@kms_psr@psr_primary_blt} (NEW):
    - fi-rkl-11600:       NOTRUN -> [SKIP][13] +62 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-rkl-11600/igt@kms_psr@psr_primary_blt.html
    - bat-adls-5:         NOTRUN -> [SKIP][14] +62 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adls-5/igt@kms_psr@psr_primary_blt.html

  * {igt@kms_psr@psr_primary_mmap_cpu} (NEW):
    - bat-rpls-1:         NOTRUN -> [SKIP][15] +62 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-rpls-1/igt@kms_psr@psr_primary_mmap_cpu.html

  * {igt@kms_psr@psr_sprite_blt} (NEW):
    - bat-dg1-5:          NOTRUN -> [SKIP][16] +62 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-dg1-5/igt@kms_psr@psr_sprite_blt.html

  
#### Warnings ####

  * igt@kms_psr@cursor_plane_move:
    - bat-rpls-1:         [SKIP][17] ([i915#1072]) -> [SKIP][18] +3 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-rpls-1/igt@kms_psr@cursor_plane_move.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-rpls-1/igt@kms_psr@cursor_plane_move.html

  * igt@kms_psr@primary_page_flip:
    - bat-adlp-9:         [SKIP][19] ([i915#1072]) -> [SKIP][20] +3 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-adlp-9/igt@kms_psr@primary_page_flip.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adlp-9/igt@kms_psr@primary_page_flip.html
    - fi-rkl-11600:       [SKIP][21] ([i915#1072]) -> [SKIP][22] +3 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/fi-rkl-11600/igt@kms_psr@primary_page_flip.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-rkl-11600/igt@kms_psr@primary_page_flip.html
    - bat-adls-5:         [SKIP][23] ([i915#1072]) -> [SKIP][24] +3 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-adls-5/igt@kms_psr@primary_page_flip.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adls-5/igt@kms_psr@primary_page_flip.html
    - bat-dg1-5:          [SKIP][25] ([i915#1072] / [i915#4078]) -> [SKIP][26] +3 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-dg1-5/igt@kms_psr@primary_page_flip.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-dg1-5/igt@kms_psr@primary_page_flip.html
    - bat-dg2-9:          [SKIP][27] ([i915#1072]) -> [SKIP][28] +3 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-dg2-9/igt@kms_psr@primary_page_flip.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-dg2-9/igt@kms_psr@primary_page_flip.html
    - fi-tgl-1115g4:      [SKIP][29] ([fdo#110189]) -> [SKIP][30] +3 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/fi-tgl-1115g4/igt@kms_psr@primary_page_flip.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-tgl-1115g4/igt@kms_psr@primary_page_flip.html
    - bat-mtlp-6:         [SKIP][31] ([i915#1072]) -> [SKIP][32] +3 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-mtlp-6/igt@kms_psr@primary_page_flip.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-mtlp-6/igt@kms_psr@primary_page_flip.html

  * igt@kms_psr@sprite_plane_onoff:
    - bat-dg2-11:         [SKIP][33] ([i915#1072]) -> [SKIP][34] +3 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-dg2-11/igt@kms_psr@sprite_plane_onoff.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-dg2-11/igt@kms_psr@sprite_plane_onoff.html

  
#### Suppressed ####

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

  * igt@kms_psr@psr2_sprite_mmap_cpu:
    - {bat-dg2-14}:       NOTRUN -> [SKIP][35] +20 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-dg2-14/igt@kms_psr@psr2_sprite_mmap_cpu.html

  
New tests
---------

  New tests have been introduced between CI_DRM_13817 and IGTPW_10093:

### New IGT tests (42) ###

  * igt@kms_psr@pr_basic:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_cursor_blt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_cursor_mmap_cpu:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_cursor_mmap_gtt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_cursor_plane_move:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_cursor_plane_onoff:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_cursor_render:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_dpms:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_no_drrs:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_primary_blt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_primary_mmap_cpu:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_primary_mmap_gtt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_primary_page_flip:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_primary_render:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_sprite_blt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_sprite_mmap_cpu:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_sprite_mmap_gtt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_sprite_plane_move:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_sprite_plane_onoff:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_sprite_render:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@pr_suspend:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_basic:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_cursor_blt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_cursor_mmap_cpu:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_cursor_mmap_gtt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_cursor_plane_move:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_cursor_plane_onoff:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_cursor_render:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_dpms:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_no_drrs:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_primary_blt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_primary_mmap_cpu:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_primary_mmap_gtt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_primary_page_flip:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_primary_render:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_sprite_blt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_sprite_mmap_cpu:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_sprite_mmap_gtt:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_sprite_plane_move:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_sprite_plane_onoff:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_sprite_render:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  * igt@kms_psr@psr_suspend:
    - Statuses : 35 skip(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_dsc@dsc-basic:
    - bat-adlp-6:         NOTRUN -> [SKIP][36] ([i915#3555] / [i915#3840])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adlp-6/igt@kms_dsc@dsc-basic.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-dp5:
    - bat-adlp-11:        [PASS][37] -> [DMESG-WARN][38] ([i915#6868])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-adlp-11/igt@kms_flip@basic-flip-vs-wf_vblank@b-dp5.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adlp-11/igt@kms_flip@basic-flip-vs-wf_vblank@b-dp5.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@d-dp5:
    - bat-adlp-11:        [PASS][39] -> [FAIL][40] ([i915#6121]) +1 other test fail
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-adlp-11/igt@kms_flip@basic-flip-vs-wf_vblank@d-dp5.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adlp-11/igt@kms_flip@basic-flip-vs-wf_vblank@d-dp5.html

  * igt@kms_flip@basic-plain-flip:
    - bat-adlp-11:        NOTRUN -> [SKIP][41] ([i915#3637])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-adlp-11/igt@kms_flip@basic-plain-flip.html

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

  * igt@kms_hdmi_inject@inject-audio:
    - fi-kbl-guc:         [PASS][43] -> [FAIL][44] ([IGT#3])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-c-vga-1:
    - fi-hsw-4770:        NOTRUN -> [DMESG-WARN][45] ([i915#8841]) +6 other tests dmesg-warn
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-hsw-4770/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-c-vga-1.html

  * igt@kms_psr@cursor_plane_move:
    - bat-jsl-1:          [PASS][46] -> [SKIP][47] ([fdo#112080]) +3 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-jsl-1/igt@kms_psr@cursor_plane_move.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-jsl-1/igt@kms_psr@cursor_plane_move.html

  * {igt@kms_psr@pr_cursor_blt} (NEW):
    - bat-atsm-1:         NOTRUN -> [SKIP][48] ([i915#6078]) +62 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-atsm-1/igt@kms_psr@pr_cursor_blt.html

  * {igt@kms_psr@pr_cursor_mmap_cpu} (NEW):
    - fi-skl-6600u:       NOTRUN -> [SKIP][49] ([fdo#109271]) +62 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-skl-6600u/igt@kms_psr@pr_cursor_mmap_cpu.html

  * {igt@kms_psr@pr_sprite_blt} (NEW):
    - fi-cfl-8700k:       NOTRUN -> [SKIP][50] ([fdo#109271]) +62 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-cfl-8700k/igt@kms_psr@pr_sprite_blt.html

  * {igt@kms_psr@pr_sprite_render} (NEW):
    - fi-kbl-x1275:       NOTRUN -> [SKIP][51] ([fdo#109271]) +62 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-kbl-x1275/igt@kms_psr@pr_sprite_render.html

  * {igt@kms_psr@pr_suspend} (NEW):
    - fi-skl-guc:         NOTRUN -> [SKIP][52] ([fdo#109271]) +62 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-skl-guc/igt@kms_psr@pr_suspend.html

  * igt@kms_psr@primary_page_flip:
    - fi-skl-6600u:       [PASS][53] -> [SKIP][54] ([fdo#109271]) +3 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/fi-skl-6600u/igt@kms_psr@primary_page_flip.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-skl-6600u/igt@kms_psr@primary_page_flip.html

  * igt@kms_psr@psr2_dpms:
    - fi-blb-e6850:       NOTRUN -> [SKIP][55] ([fdo#109271]) +62 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-blb-e6850/igt@kms_psr@psr2_dpms.html
    - bat-kbl-2:          NOTRUN -> [SKIP][56] ([fdo#109271]) +62 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-kbl-2/igt@kms_psr@psr2_dpms.html

  * igt@kms_psr@psr2_primary_render:
    - fi-cfl-guc:         NOTRUN -> [SKIP][57] ([fdo#109271]) +62 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-cfl-guc/igt@kms_psr@psr2_primary_render.html

  * igt@kms_psr@psr2_sprite_mmap_cpu:
    - fi-elk-e7500:       NOTRUN -> [SKIP][58] ([fdo#109271]) +62 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-elk-e7500/igt@kms_psr@psr2_sprite_mmap_cpu.html
    - fi-bsw-nick:        NOTRUN -> [SKIP][59] ([fdo#109271]) +62 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-bsw-nick/igt@kms_psr@psr2_sprite_mmap_cpu.html
    - fi-kbl-guc:         NOTRUN -> [SKIP][60] ([fdo#109271]) +62 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-kbl-guc/igt@kms_psr@psr2_sprite_mmap_cpu.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - fi-apl-guc:         NOTRUN -> [SKIP][61] ([fdo#109271]) +62 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-apl-guc/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_psr@psr2_sprite_render:
    - fi-hsw-4770:        NOTRUN -> [SKIP][62] ([fdo#109271]) +62 other tests skip
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-hsw-4770/igt@kms_psr@psr2_sprite_render.html

  * igt@kms_psr@psr2_suspend:
    - fi-cfl-8109u:       NOTRUN -> [SKIP][63] ([fdo#109271]) +62 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-cfl-8109u/igt@kms_psr@psr2_suspend.html
    - fi-kbl-7567u:       NOTRUN -> [SKIP][64] ([fdo#109271]) +62 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-kbl-7567u/igt@kms_psr@psr2_suspend.html

  * {igt@kms_psr@psr_cursor_blt} (NEW):
    - fi-ivb-3770:        NOTRUN -> [SKIP][65] ([fdo#109271]) +62 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-ivb-3770/igt@kms_psr@psr_cursor_blt.html

  * {igt@kms_psr@psr_cursor_render} (NEW):
    - fi-ilk-650:         NOTRUN -> [SKIP][66] ([fdo#109271]) +62 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-ilk-650/igt@kms_psr@psr_cursor_render.html

  * {igt@kms_psr@psr_dpms} (NEW):
    - fi-glk-j4005:       NOTRUN -> [SKIP][67] ([fdo#109271]) +62 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-glk-j4005/igt@kms_psr@psr_dpms.html

  * {igt@kms_psr@psr_sprite_blt} (NEW):
    - fi-pnv-d510:        NOTRUN -> [SKIP][68] ([fdo#109271]) +62 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-pnv-d510/igt@kms_psr@psr_sprite_blt.html

  * igt@kms_psr@sprite_plane_onoff:
    - bat-jsl-3:          [PASS][69] -> [SKIP][70] ([fdo#112080]) +3 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html

  
#### Warnings ####

  * igt@kms_psr@sprite_plane_onoff:
    - bat-atsm-1:         [SKIP][71] ([i915#1072]) -> [SKIP][72] ([i915#6078]) +3 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/bat-atsm-1/igt@kms_psr@sprite_plane_onoff.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/bat-atsm-1/igt@kms_psr@sprite_plane_onoff.html
    - fi-hsw-4770:        [SKIP][73] ([fdo#109271] / [i915#1072]) -> [SKIP][74] ([fdo#109271]) +3 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13817/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html

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

  [IGT#3]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078
  [i915#6121]: https://gitlab.freedesktop.org/drm/intel/issues/6121
  [i915#6868]: https://gitlab.freedesktop.org/drm/intel/issues/6868
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7566 -> IGTPW_10093

  CI-20190529: 20190529
  CI_DRM_13817: 1f7a04390904ad852806492c71a11828923915aa @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_10093: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/index.html
  IGT_7566: 7566


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

+igt@kms_psr@pr_basic
+igt@kms_psr@pr_cursor_blt
+igt@kms_psr@pr_cursor_mmap_cpu
+igt@kms_psr@pr_cursor_mmap_gtt
+igt@kms_psr@pr_cursor_plane_move
+igt@kms_psr@pr_cursor_plane_onoff
+igt@kms_psr@pr_cursor_render
+igt@kms_psr@pr_dpms
+igt@kms_psr@pr_no_drrs
+igt@kms_psr@pr_primary_blt
+igt@kms_psr@pr_primary_mmap_cpu
+igt@kms_psr@pr_primary_mmap_gtt
+igt@kms_psr@pr_primary_page_flip
+igt@kms_psr@pr_primary_render
+igt@kms_psr@pr_sprite_blt
+igt@kms_psr@pr_sprite_mmap_cpu
+igt@kms_psr@pr_sprite_mmap_gtt
+igt@kms_psr@pr_sprite_plane_move
+igt@kms_psr@pr_sprite_plane_onoff
+igt@kms_psr@pr_sprite_render
+igt@kms_psr@pr_suspend
+igt@kms_psr@psr_basic
+igt@kms_psr@psr_cursor_blt
+igt@kms_psr@psr_cursor_mmap_cpu
+igt@kms_psr@psr_cursor_mmap_gtt
+igt@kms_psr@psr_cursor_plane_move
+igt@kms_psr@psr_cursor_plane_onoff
+igt@kms_psr@psr_cursor_render
+igt@kms_psr@psr_dpms
+igt@kms_psr@psr_no_drrs
+igt@kms_psr@psr_primary_blt
+igt@kms_psr@psr_primary_mmap_cpu
+igt@kms_psr@psr_primary_mmap_gtt
+igt@kms_psr@psr_primary_page_flip
+igt@kms_psr@psr_primary_render
+igt@kms_psr@psr_sprite_blt
+igt@kms_psr@psr_sprite_mmap_cpu
+igt@kms_psr@psr_sprite_mmap_gtt
+igt@kms_psr@psr_sprite_plane_move
+igt@kms_psr@psr_sprite_plane_onoff
+igt@kms_psr@psr_sprite_render
+igt@kms_psr@psr_suspend
-igt@kms_frontbuffer_tracking@plane-fbc-rte
-igt@kms_psr@basic
-igt@kms_psr@cursor_blt
-igt@kms_psr@cursor_mmap_cpu
-igt@kms_psr@cursor_mmap_gtt
-igt@kms_psr@cursor_plane_move
-igt@kms_psr@cursor_plane_onoff
-igt@kms_psr@cursor_render
-igt@kms_psr@dpms
-igt@kms_psr@no_drrs
-igt@kms_psr@primary_blt
-igt@kms_psr@primary_mmap_cpu
-igt@kms_psr@primary_mmap_gtt
-igt@kms_psr@primary_page_flip
-igt@kms_psr@primary_render
-igt@kms_psr@sprite_blt
-igt@kms_psr@sprite_mmap_cpu
-igt@kms_psr@sprite_mmap_gtt
-igt@kms_psr@sprite_plane_move
-igt@kms_psr@sprite_plane_onoff
-igt@kms_psr@sprite_render
-igt@kms_psr@suspend

== Logs ==

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

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

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

* [igt-dev] ✗ CI.xeBAT: failure for extend kms_psr test to validate pr (rev3)
  2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
                   ` (7 preceding siblings ...)
  2023-10-31  9:41 ` [igt-dev] ✗ Fi.CI.BAT: failure for extend kms_psr test to validate pr (rev3) Patchwork
@ 2023-10-31  9:43 ` Patchwork
  8 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2023-10-31  9:43 UTC (permalink / raw)
  To: Joshi, Kunal1; +Cc: igt-dev

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

== Series Details ==

Series: extend kms_psr test to validate pr (rev3)
URL   : https://patchwork.freedesktop.org/series/125379/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_7566_BAT -> XEIGTPW_10093_BAT
====================================================

Summary
-------

  **FAILURE**

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

  

Participating hosts (4 -> 4)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_psr@primary_page_flip:
    - bat-adlp-7:         [PASS][1] -> [SKIP][2] +2 other tests skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7566/bat-adlp-7/igt@kms_psr@primary_page_flip.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10093/bat-adlp-7/igt@kms_psr@primary_page_flip.html

  
#### Warnings ####

  * igt@kms_psr@cursor_plane_move:
    - bat-atsm-2:         [SKIP][3] ([Intel XE#535]) -> [SKIP][4] +2 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7566/bat-atsm-2/igt@kms_psr@cursor_plane_move.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10093/bat-atsm-2/igt@kms_psr@cursor_plane_move.html

  * igt@kms_psr@primary_page_flip:
    - bat-dg2-oem2:       [SKIP][5] ([Intel XE#535]) -> [SKIP][6] +2 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7566/bat-dg2-oem2/igt@kms_psr@primary_page_flip.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10093/bat-dg2-oem2/igt@kms_psr@primary_page_flip.html

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

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

### IGT changes ###

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

  [Intel XE#524]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/524
  [Intel XE#535]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/535


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

  * IGT: IGT_7566 -> IGTPW_10093
  * Linux: xe-456-d7eb9a5c3acda8d87699bc82add7e8d88f5f4700 -> xe-457-1e652bcf7cc139244f4f8c0cd1fc184029240050

  IGTPW_10093: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10093/index.html
  IGT_7566: 7566
  xe-456-d7eb9a5c3acda8d87699bc82add7e8d88f5f4700: d7eb9a5c3acda8d87699bc82add7e8d88f5f4700
  xe-457-1e652bcf7cc139244f4f8c0cd1fc184029240050: 1e652bcf7cc139244f4f8c0cd1fc184029240050

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10093/index.html

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

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

* Re: [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
@ 2023-10-31 10:40   ` Hogander, Jouni
  2023-10-31 12:02     ` Hogander, Jouni
  0 siblings, 1 reply; 24+ messages in thread
From: Hogander, Jouni @ 2023-10-31 10:40 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R

On Tue, 2023-10-31 at 13:39 +0530, Kunal Joshi wrote:
> New debugfs directory for all DP connectors will be added
> with below patch series
> https://patchwork.freedesktop.org/series/94470/
> 
> For DP Connectors
>         /sys/kernel/debug/dri/0/DP-x/i915_psr_status
> 
> For eDP Connectors
>         /sys/kernel/debug/dri/0/i915_edp_psr_status
>                         or
>         /sys/kernel/debug/dri/0/eDP-x/i915_psr_status
> 
> v2: reuse psr_sink_support (Jouni)
> 
> Cc: Jouni Högander <jouni.hogander@intel.com>
> Cc: Animesh Manna <animesh.manna@intel.com>
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
>  lib/igt_psr.c                          | 54 ++++++++++++++++++------
> --
>  lib/igt_psr.h                          |  3 +-
>  tests/intel/kms_dirtyfb.c              |  2 +-
>  tests/intel/kms_fbcon_fbt.c            |  4 +-
>  tests/intel/kms_frontbuffer_tracking.c |  2 +-
>  tests/intel/kms_pm_dc.c                |  9 +++--
>  tests/intel/kms_psr.c                  |  2 +-
>  tests/intel/kms_psr2_sf.c              |  3 +-
>  tests/intel/kms_psr2_su.c              |  3 +-
>  tests/intel/kms_psr_stress_test.c      |  2 +-
>  tests/kms_feature_discovery.c          |  4 +-
>  11 files changed, 57 insertions(+), 31 deletions(-)
> 
> diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> index 13f7c567d..aa3ca9ddb 100644
> --- a/lib/igt_psr.c
> +++ b/lib/igt_psr.c
> @@ -192,31 +192,51 @@ bool psr_disable(int device, int debugfs_fd)
>         return psr_set(device, debugfs_fd, -1);
>  }
>  
> -bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> mode)
> +bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> mode, igt_output_t *output)
>  {
> +       char *line;
> +       char debugfs_file[128] = {0};
>         char buf[PSR_STATUS_MAX_LEN];
>         int ret;
>  
> -       ret = igt_debugfs_simple_read(debugfs_fd,
> "i915_edp_psr_status", buf,
> +       if (output)
> +               sprintf(debugfs_file, "%s/i915_psr_status", output-
> >name);
> +       else
> +               sprintf(debugfs_file, "%s", "i915_edp_psr_status");
> +
> +       ret = igt_debugfs_simple_read(debugfs_fd, debugfs_file, buf,
>                                       sizeof(buf));
>         if (ret < 1)
>                 return false;
>  
> -       if (mode == PSR_MODE_1)
> -               return strstr(buf, "Sink_Support: yes\n") ||
> -                      strstr(buf, "Sink support: yes");
> -       else
> -               /*
> -                * i915 requires PSR version 0x03 that is PSR2 + SU
> with
> -                * Y-coordinate to support PSR2
> -                *
> -                * or
> -                *
> -                * PSR version 0x4 that is PSR2 + SU w/ Y-coordinate
> and SU
> -                * Region Early Transport to support PSR2 (eDP 1.5)
> -                */
> -               return strstr(buf, "Sink support: yes [0x03]") ||
> -                      strstr(buf, "Sink support: yes [0x04]");
> +       line = strstr(buf, "Sink support: ");
> +       if (!line)
> +               return false;
> +
> +       switch (mode) {
> +               case PSR_MODE_1:
> +                       return strstr(line, "PSR = yes");
> +               case PSR_MODE_2:
> +               case PSR_MODE_2_SEL_FETCH:
> +                       /*
> +                        * i915 requires PSR version 0x03 that is
> PSR2 + SU with
> +                        * Y-coordinate to support PSR2
> +                        * or
> +                        *
> +                        * PSR version 0x4 that is PSR2 + SU w/ Y-
> coordinate and SU
> +                        * Region Early Transport to support PSR2
> (eDP 1.5)
> +                        */
> +                       return strstr(line, "PSR = yes") &&
> +                              (strstr(line, "[0x03]") ||
> strstr(line, "[0x04]"));
> +               case PR_MODE:
> +                       return strstr(line, "Panel Replay = yes");
> +               case PR_MODE_SEL_FETCH:
> +                       return strstr(line, "Panel Replay = yes") &&
> +                              strstr(buf, "PSR2 selective fetch:
> enabled");

I think this isn't yet implemented on kernel side, but I would assume
we use "selective update" and not PSR2. Selective fetch is feature in
our HW which can be used when doing selective updates. Panel isn't
aware of selective fetch done on source side.

BR,
Jouni Högander

 
> +               default:
> +                       igt_assert_f(false, "Invalid psr mode\n");
> +                       return false;
> +       }
>  }
>  
>  #define PSR2_SU_BLOCK_STR_LOOKUP "PSR2 SU blocks:\n0\t"
> diff --git a/lib/igt_psr.h b/lib/igt_psr.h
> index 243154897..e213b05e9 100644
> --- a/lib/igt_psr.h
> +++ b/lib/igt_psr.h
> @@ -27,6 +27,7 @@
>  #include "igt_debugfs.h"
>  #include "igt_core.h"
>  #include "igt_aux.h"
> +#include "igt_kms.h"
>  
>  #define PSR_STATUS_MAX_LEN 512
>  
> @@ -46,7 +47,7 @@ bool psr_wait_update(int debugfs_fd, enum psr_mode
> mode);
>  bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode);
>  bool psr_enable(int device, int debugfs_fd, enum psr_mode);
>  bool psr_disable(int device, int debugfs_fd);
> -bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> mode);
> +bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> mode, igt_output_t *output);
>  bool psr2_wait_su(int debugfs_fd, uint16_t *num_su_blocks);
>  void psr_print_debugfs(int debugfs_fd);
>  enum psr_mode psr_get_mode(int debugfs_fd);
> diff --git a/tests/intel/kms_dirtyfb.c b/tests/intel/kms_dirtyfb.c
> index cc9529178..f7ff1ac0b 100644
> --- a/tests/intel/kms_dirtyfb.c
> +++ b/tests/intel/kms_dirtyfb.c
> @@ -92,7 +92,7 @@ static bool check_support(data_t *data)
>                     DRM_MODE_CONNECTOR_eDP)
>                         return false;
>                 return psr_sink_support(data->drm_fd, data-
> >debugfs_fd,
> -                                       PSR_MODE_1);
> +                                       PSR_MODE_1, NULL);
>         case FEATURE_DRRS:
>                 return intel_is_drrs_supported(data->drm_fd, data-
> >pipe) &&
>                         intel_output_has_drrs(data->drm_fd, data-
> >output);
> diff --git a/tests/intel/kms_fbcon_fbt.c
> b/tests/intel/kms_fbcon_fbt.c
> index 8d6bb3cb6..a7f24e669 100644
> --- a/tests/intel/kms_fbcon_fbt.c
> +++ b/tests/intel/kms_fbcon_fbt.c
> @@ -269,7 +269,7 @@ static bool psr_is_disabled(int debugfs_fd)
>  
>  static bool psr_supported_on_chipset(int device, int debugfs_fd)
>  {
> -       return psr_sink_support(device, debugfs_fd, PSR_MODE_1);
> +       return psr_sink_support(device, debugfs_fd, PSR_MODE_1,
> NULL);
>  }
>  
>  static bool psr_wait_until_update(struct drm_info *drm)
> @@ -280,7 +280,7 @@ static bool psr_wait_until_update(struct drm_info
> *drm)
>  static void disable_features(int device, int debugfs_fd)
>  {
>         igt_set_module_param_int(device, "enable_fbc", 0);
> -       if (psr_sink_support(device, debugfs_fd, PSR_MODE_1))
> +       if (psr_sink_support(device, debugfs_fd, PSR_MODE_1, NULL))
>                 psr_disable(device, debugfs_fd);
>  }
>  
> diff --git a/tests/intel/kms_frontbuffer_tracking.c
> b/tests/intel/kms_frontbuffer_tracking.c
> index f90d09f9f..2d588e836 100644
> --- a/tests/intel/kms_frontbuffer_tracking.c
> +++ b/tests/intel/kms_frontbuffer_tracking.c
> @@ -1362,7 +1362,7 @@ static void setup_psr(void)
>                 return;
>         }
>  
> -       if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1)) {
> +       if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1, NULL))
> {
>                 igt_info("Can't test PSR: not supported by sink.\n");
>                 return;
>         }
> diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
> index 1e9ca5d6c..e5daacb84 100644
> --- a/tests/intel/kms_pm_dc.c
> +++ b/tests/intel/kms_pm_dc.c
> @@ -673,14 +673,16 @@ igt_main
>         igt_describe("In this test we make sure that system enters
> DC3CO "
>                      "when PSR2 is active and system is in SLEEP
> state");
>         igt_subtest("dc3co-vpb-simulation") {
> -               igt_require(psr_sink_support(data.drm_fd,
> data.debugfs_fd, PSR_MODE_2));
> +               igt_require(psr_sink_support(data.drm_fd,
> data.debugfs_fd,
> +                                            PSR_MODE_2, NULL));
>                 test_dc3co_vpb_simulation(&data);
>         }
>  
>         igt_describe("This test validates display engine entry to DC5
> state "
>                      "while PSR is active");
>         igt_subtest("dc5-psr") {
> -               igt_require(psr_sink_support(data.drm_fd,
> data.debugfs_fd, PSR_MODE_1));
> +               igt_require(psr_sink_support(data.drm_fd,
> data.debugfs_fd,
> +                                            PSR_MODE_1, NULL));
>                 data.op_psr_mode = PSR_MODE_1;
>                 psr_enable(data.drm_fd, data.debugfs_fd,
> data.op_psr_mode);
>                 test_dc_state_psr(&data, CHECK_DC5);
> @@ -689,7 +691,8 @@ igt_main
>         igt_describe("This test validates display engine entry to DC6
> state "
>                      "while PSR is active");
>         igt_subtest("dc6-psr") {
> -               igt_require(psr_sink_support(data.drm_fd,
> data.debugfs_fd, PSR_MODE_1));
> +               igt_require(psr_sink_support(data.drm_fd,
> data.debugfs_fd,
> +                                            PSR_MODE_1, NULL));
>                 data.op_psr_mode = PSR_MODE_1;
>                 psr_enable(data.drm_fd, data.debugfs_fd,
> data.op_psr_mode);
>                 igt_require_f(igt_pm_pc8_plus_residencies_enabled(dat
> a.msr_fd),
> diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
> index ffecc5222..260095aec 100644
> --- a/tests/intel/kms_psr.c
> +++ b/tests/intel/kms_psr.c
> @@ -433,7 +433,7 @@ static void fill_render(data_t *data, const
> struct igt_fb *fb,
>  static bool sink_support(data_t *data, enum psr_mode mode)
>  {
>         return data->with_psr_disabled ||
> -              psr_sink_support(data->drm_fd, data->debugfs_fd,
> mode);
> +              psr_sink_support(data->drm_fd, data->debugfs_fd, mode,
> NULL);
>  }
>  
>  static bool psr_wait_entry_if_enabled(data_t *data)
> diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
> index d7a746211..2d05f1110 100644
> --- a/tests/intel/kms_psr2_sf.c
> +++ b/tests/intel/kms_psr2_sf.c
> @@ -980,7 +980,8 @@ igt_main
>                 kmstest_set_vt_graphics_mode();
>  
>                 igt_require_f(psr_sink_support(data.drm_fd,
> -                                              data.debugfs_fd,
> PSR_MODE_2),
> +                                              data.debugfs_fd,
> PSR_MODE_2,
> +                                              NULL),
>                               "Sink does not support PSR2\n");
>  
>                 display_init(&data);
> diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c
> index 834fec1ec..2f89de435 100644
> --- a/tests/intel/kms_psr2_su.c
> +++ b/tests/intel/kms_psr2_su.c
> @@ -327,7 +327,8 @@ igt_main
>                 kmstest_set_vt_graphics_mode();
>  
>                 igt_require_f(psr_sink_support(data.drm_fd,
> -                                              data.debugfs_fd,
> PSR_MODE_2),
> +                                              data.debugfs_fd,
> +                                              PSR_MODE_2, NULL),
>                               "Sink does not support PSR2\n");
>  
>                 igt_require_f(intel_display_ver(intel_get_drm_devid(d
> ata.drm_fd)) < 13,
> diff --git a/tests/intel/kms_psr_stress_test.c
> b/tests/intel/kms_psr_stress_test.c
> index b6759eece..beded3b94 100644
> --- a/tests/intel/kms_psr_stress_test.c
> +++ b/tests/intel/kms_psr_stress_test.c
> @@ -357,7 +357,7 @@ igt_main
>                 kmstest_set_vt_graphics_mode();
>  
>                 igt_require_f(psr_sink_support(data.drm_fd,
> data.debugfs_fd,
> -                                              PSR_MODE_1),
> +                                              PSR_MODE_1, NULL),
>                               "Sink does not support PSR\n");
>  
>                 setup_output(&data);
> diff --git a/tests/kms_feature_discovery.c
> b/tests/kms_feature_discovery.c
> index 3a1f6d21d..428f97ffe 100644
> --- a/tests/kms_feature_discovery.c
> +++ b/tests/kms_feature_discovery.c
> @@ -159,12 +159,12 @@ igt_main {
>  
>                 igt_describe("Make sure that we have eDP panel with
> PSR1 support.");
>                 igt_subtest("psr1") {
> -                       igt_require(psr_sink_support(fd, debugfs_fd,
> PSR_MODE_1));
> +                       igt_require(psr_sink_support(fd, debugfs_fd,
> PSR_MODE_1, NULL));
>                 }
>  
>                 igt_describe("Make sure that we have eDP panel with
> PSR2 support.");
>                 igt_subtest("psr2") {
> -                       igt_require(psr_sink_support(fd, debugfs_fd,
> PSR_MODE_2));
> +                       igt_require(psr_sink_support(fd, debugfs_fd,
> PSR_MODE_2, NULL));
>                 }
>  
>                 igt_describe("Make sure that we have DP-MST
> configuration.");


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

* Re: [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
@ 2023-10-31 11:32   ` Hogander, Jouni
  0 siblings, 0 replies; 24+ messages in thread
From: Hogander, Jouni @ 2023-10-31 11:32 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R

On Tue, 2023-10-31 at 13:39 +0530, Kunal Joshi wrote:
> Added enum for PR
> 
> Cc: Jouni Högander <jouni.hogander@intel.com>
> Cc: Animesh Manna <animesh.manna@intel.com>
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> ---
>  lib/igt_psr.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/igt_psr.h b/lib/igt_psr.h
> index 12ffc9d6c..243154897 100644
> --- a/lib/igt_psr.h
> +++ b/lib/igt_psr.h
> @@ -34,6 +34,8 @@ enum psr_mode {
>         PSR_MODE_1,
>         PSR_MODE_2,
>         PSR_MODE_2_SEL_FETCH,
> +       PR_MODE,
> +       PR_MODE_SEL_FETCH,
>         PSR_DISABLED,
>  };
>  


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

* Re: [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check for pr compatability
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
@ 2023-10-31 11:38   ` Hogander, Jouni
  0 siblings, 0 replies; 24+ messages in thread
From: Hogander, Jouni @ 2023-10-31 11:38 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R

On Tue, 2023-10-31 at 13:39 +0530, Kunal Joshi wrote:
> Whenever PR is active, system will be in SRDENT,
> modify psr_active_check to accomadte PR_MODE
> 
> Cc: Jouni Högander <jouni.hogander@intel.com>
> Cc: Animesh Manna <animesh.manna@intel.com>
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> ---
>  lib/igt_psr.c                          | 24 +++++++++++++++---------
>  lib/igt_psr.h                          |  6 +++---
>  tests/intel/kms_dirtyfb.c              |  2 +-
>  tests/intel/kms_fbcon_fbt.c            |  4 ++--
>  tests/intel/kms_frontbuffer_tracking.c |  4 ++--
>  tests/intel/kms_pm_dc.c                |  6 +++---
>  tests/intel/kms_psr.c                  |  4 ++--
>  tests/intel/kms_psr2_sf.c              | 10 +++++-----
>  tests/intel/kms_psr2_su.c              |  4 ++--
>  tests/intel/kms_psr_stress_test.c      |  2 +-
>  10 files changed, 36 insertions(+), 30 deletions(-)
> 
> diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> index aa3ca9ddb..665b28a76 100644
> --- a/lib/igt_psr.c
> +++ b/lib/igt_psr.c
> @@ -47,13 +47,19 @@ bool psr2_selective_fetch_check(int debugfs_fd)
>         return strstr(buf, "PSR2 selective fetch: enabled");
>  }
>  
> -static bool psr_active_check(int debugfs_fd, enum psr_mode mode)
> +static bool psr_active_check(int debugfs_fd, enum psr_mode mode,
> igt_output_t *output)
>  {
> +       char debugfs_file[128] = {0};
>         char buf[PSR_STATUS_MAX_LEN];
> -       const char *state = mode == PSR_MODE_1 ? "SRDENT" :
> "DEEP_SLEEP";
> +       const char *state = mode == PSR_MODE_1 || PR_MODE ? "SRDENT"
> : "DEEP_SLEEP";
>         int ret;
>  
> -       ret = igt_debugfs_simple_read(debugfs_fd,
> "i915_edp_psr_status",
> +       if (output)
> +               sprintf(debugfs_file, "%s/i915_psr_status", output-
> >name);
> +       else
> +               sprintf(debugfs_file, "%s", "i915_edp_psr_status");
> +
> +       ret = igt_debugfs_simple_read(debugfs_fd, debugfs_file,
>                                      buf, sizeof(buf));
>         if (ret < 0) {
>                 igt_info("Could not read i915_edp_psr_status: %s\n",
> @@ -69,19 +75,19 @@ static bool psr_active_check(int debugfs_fd, enum
> psr_mode mode)
>  /*
>   * For PSR1, we wait until PSR is active. We wait until DEEP_SLEEP
> for PSR2.
>   */
> -bool psr_wait_entry(int debugfs_fd, enum psr_mode mode)
> +bool psr_wait_entry(int debugfs_fd, enum psr_mode mode, igt_output_t
> *output)
>  {
> -       return igt_wait(psr_active_check(debugfs_fd, mode), 500, 20);
> +       return igt_wait(psr_active_check(debugfs_fd, mode, output),
> 500, 20);
>  }
>  
> -bool psr_wait_update(int debugfs_fd, enum psr_mode mode)
> +bool psr_wait_update(int debugfs_fd, enum psr_mode mode,
> igt_output_t *output)
>  {
> -       return igt_wait(!psr_active_check(debugfs_fd, mode), 40, 10);
> +       return igt_wait(!psr_active_check(debugfs_fd, mode, output),
> 40, 10);
>  }
>  
> -bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode)
> +bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode,
> igt_output_t *output)
>  {
> -       return igt_wait(!psr_active_check(debugfs_fd, mode), 500,
> 10);
> +       return igt_wait(!psr_active_check(debugfs_fd, mode, output),
> 500, 10);
>  }
>  
>  static ssize_t psr_write(int debugfs_fd, const char *buf)
> diff --git a/lib/igt_psr.h b/lib/igt_psr.h
> index e213b05e9..a30330e6c 100644
> --- a/lib/igt_psr.h
> +++ b/lib/igt_psr.h
> @@ -42,9 +42,9 @@ enum psr_mode {
>  
>  bool psr_disabled_check(int debugfs_fd);
>  bool psr2_selective_fetch_check(int debugfs_fd);
> -bool psr_wait_entry(int debugfs_fd, enum psr_mode mode);
> -bool psr_wait_update(int debugfs_fd, enum psr_mode mode);
> -bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode);
> +bool psr_wait_entry(int debugfs_fd, enum psr_mode mode, igt_output_t
> *output);
> +bool psr_wait_update(int debugfs_fd, enum psr_mode mode,
> igt_output_t *output);
> +bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode,
> igt_output_t *output);
>  bool psr_enable(int device, int debugfs_fd, enum psr_mode);
>  bool psr_disable(int device, int debugfs_fd);
>  bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> mode, igt_output_t *output);
> diff --git a/tests/intel/kms_dirtyfb.c b/tests/intel/kms_dirtyfb.c
> index f7ff1ac0b..b14cc8bec 100644
> --- a/tests/intel/kms_dirtyfb.c
> +++ b/tests/intel/kms_dirtyfb.c
> @@ -135,7 +135,7 @@ static void check_feature(data_t *data)
>                              "FBC still disabled");
>                 break;
>         case FEATURE_PSR:
> -               igt_assert_f(psr_wait_entry(data->debugfs_fd,
> PSR_MODE_1),
> +               igt_assert_f(psr_wait_entry(data->debugfs_fd,
> PSR_MODE_1, NULL),
>                              "PSR still disabled\n");
>                 break;
>         case FEATURE_DRRS:
> diff --git a/tests/intel/kms_fbcon_fbt.c
> b/tests/intel/kms_fbcon_fbt.c
> index a7f24e669..4078309d9 100644
> --- a/tests/intel/kms_fbcon_fbt.c
> +++ b/tests/intel/kms_fbcon_fbt.c
> @@ -253,7 +253,7 @@ static void psr_print_status(int debugfs_fd)
>  
>  static bool psr_wait_until_enabled(int debugfs_fd)
>  {
> -       bool r = psr_wait_entry(debugfs_fd, PSR_MODE_1);
> +       bool r = psr_wait_entry(debugfs_fd, PSR_MODE_1, NULL);
>  
>         psr_print_status(debugfs_fd);
>         return r;
> @@ -274,7 +274,7 @@ static bool psr_supported_on_chipset(int device,
> int debugfs_fd)
>  
>  static bool psr_wait_until_update(struct drm_info *drm)
>  {
> -       return psr_long_wait_update(drm->debugfs_fd, PSR_MODE_1);
> +       return psr_long_wait_update(drm->debugfs_fd, PSR_MODE_1,
> NULL);
>  }
>  
>  static void disable_features(int device, int debugfs_fd)
> diff --git a/tests/intel/kms_frontbuffer_tracking.c
> b/tests/intel/kms_frontbuffer_tracking.c
> index 2d588e836..0a9033fad 100644
> --- a/tests/intel/kms_frontbuffer_tracking.c
> +++ b/tests/intel/kms_frontbuffer_tracking.c
> @@ -1563,10 +1563,10 @@ static void do_status_assertions(int flags)
>         }
>  
>         if (flags & ASSERT_PSR_ENABLED)
> -               igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1),
> +               igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1,
> NULL),
>                              "PSR still disabled\n");
>         else if (flags & ASSERT_PSR_DISABLED)
> -               igt_assert_f(psr_wait_update(drm.debugfs,
> PSR_MODE_1),
> +               igt_assert_f(psr_wait_update(drm.debugfs, PSR_MODE_1,
> NULL),
>                              "PSR still enabled\n");
>  }
>  
> diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
> index e5daacb84..a3c7c4018 100644
> --- a/tests/intel/kms_pm_dc.c
> +++ b/tests/intel/kms_pm_dc.c
> @@ -382,7 +382,7 @@ static void setup_dc3co(data_t *data)
>  {
>         data->op_psr_mode = PSR_MODE_2;
>         psr_enable(data->drm_fd, data->debugfs_fd, data-
> >op_psr_mode);
> -       igt_require_f(psr_wait_entry(data->debugfs_fd, data-
> >op_psr_mode),
> +       igt_require_f(psr_wait_entry(data->debugfs_fd, data-
> >op_psr_mode, NULL),
>                       "PSR2 is not enabled\n");
>  }
>  
> @@ -418,7 +418,7 @@ static void test_dc_state_psr(data_t *data, int
> dc_flag)
>         dc_counter_before_psr = read_dc_counter(data->debugfs_fd,
> dc_flag);
>         setup_output(data);
>         setup_primary(data);
> -       igt_assert(psr_wait_entry(data->debugfs_fd, data-
> >op_psr_mode));
> +       igt_assert(psr_wait_entry(data->debugfs_fd, data-
> >op_psr_mode, NULL));
>         check_dc_counter(data, dc_flag, dc_counter_before_psr);
>         cleanup_dc_psr(data);
>  }
> @@ -624,7 +624,7 @@ static void test_pkgc_state_psr(data_t *data)
>         prev_value = read_pkgc_counter(data->debugfs_root_fd);
>         setup_output(data);
>         setup_primary(data);
> -       igt_assert(psr_wait_entry(data->debugfs_fd, data-
> >op_psr_mode));
> +       igt_assert(psr_wait_entry(data->debugfs_fd, data-
> >op_psr_mode, NULL));
>         psr_dpms(data, DRM_MODE_DPMS_OFF);
>         igt_wait((cur_value = read_pkgc_counter(data-
> >debugfs_root_fd)) > prev_value,
>                   timeout_sec * 1000, 100);
> diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
> index 260095aec..8485e9894 100644
> --- a/tests/intel/kms_psr.c
> +++ b/tests/intel/kms_psr.c
> @@ -441,7 +441,7 @@ static bool psr_wait_entry_if_enabled(data_t
> *data)
>         if (data->with_psr_disabled)
>                 return true;
>  
> -       return psr_wait_entry(data->debugfs_fd, data->op_psr_mode);
> +       return psr_wait_entry(data->debugfs_fd, data->op_psr_mode,
> data->output);
>  }
>  
>  static bool psr_wait_update_if_enabled(data_t *data)
> @@ -449,7 +449,7 @@ static bool psr_wait_update_if_enabled(data_t
> *data)
>         if (data->with_psr_disabled)
>                 return true;
>  
> -       return psr_wait_update(data->debugfs_fd, data->op_psr_mode);
> +       return psr_wait_update(data->debugfs_fd, data->op_psr_mode,
> data->output);
>  }
>  
>  static bool psr_enable_if_enabled(data_t *data)
> diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
> index 2d05f1110..9f5186eee 100644
> --- a/tests/intel/kms_psr2_sf.c
> +++ b/tests/intel/kms_psr2_sf.c
> @@ -677,7 +677,7 @@ static void damaged_plane_move(data_t *data)
>  
>         igt_display_commit2(&data->display, COMMIT_ATOMIC);
>  
> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
> +       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
> NULL));
>  
>         expected_output(data);
>  }
> @@ -777,7 +777,7 @@ static void plane_move_continuous(data_t *data)
>  {
>         int target_x, target_y;
>  
> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
> +       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
> NULL));
>  
>         get_target_coords(data, &target_x, &target_y);
>  
> @@ -854,7 +854,7 @@ static void damaged_plane_update(data_t *data)
>         igt_plane_set_position(data->test_plane, 0, 0);
>         igt_display_commit2(&data->display, COMMIT_ATOMIC);
>  
> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
> +       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
> NULL));
>  
>         expected_output(data);
>  }
> @@ -863,7 +863,7 @@ static void run(data_t *data)
>  {
>         int i;
>  
> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
> +       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
> NULL));
>  
>         data->screen_changes = 0;
>  
> @@ -941,7 +941,7 @@ static int check_psr2_support(data_t *data)
>         int status;
>  
>         prepare(data);
> -       status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> +       status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2, NULL);
>         cleanup(data);
>  
>         return status;
> diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c
> index 2f89de435..3506409b7 100644
> --- a/tests/intel/kms_psr2_su.c
> +++ b/tests/intel/kms_psr2_su.c
> @@ -258,7 +258,7 @@ static void run(data_t *data, igt_output_t
> *output)
>  {
>         bool result = false;
>  
> -       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2));
> +       igt_assert(psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
> output));
>  
>         for (data->screen_changes = 0;
>              data->screen_changes < MAX_SCREEN_CHANGES && !result;
> @@ -304,7 +304,7 @@ static int check_psr2_support(data_t *data, enum
> pipe pipe)
>         igt_output_set_pipe(output, pipe);
>  
>         prepare(data, output);
> -       status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> +       status = psr_wait_entry(data->debugfs_fd, PSR_MODE_2,
> output);
>         cleanup(data, output);
>  
>         return status;
> diff --git a/tests/intel/kms_psr_stress_test.c
> b/tests/intel/kms_psr_stress_test.c
> index beded3b94..e3b21603a 100644
> --- a/tests/intel/kms_psr_stress_test.c
> +++ b/tests/intel/kms_psr_stress_test.c
> @@ -232,7 +232,7 @@ static void prepare(data_t *data)
>  
>         data->initial_state = psr_get_mode(data->debugfs_fd);
>         igt_require(data->initial_state != PSR_DISABLED);
> -       igt_require(psr_wait_entry(data->debugfs_fd, data-
> >initial_state));
> +       igt_require(psr_wait_entry(data->debugfs_fd, data-
> >initial_state, NULL));
>  }
>  
>  static void cleanup(data_t *data)


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

* Re: [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
@ 2023-10-31 11:42   ` Hogander, Jouni
  0 siblings, 0 replies; 24+ messages in thread
From: Hogander, Jouni @ 2023-10-31 11:42 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R

On Tue, 2023-10-31 at 13:39 +0530, Kunal Joshi wrote:
> Modified psr_set to add support PR_MODE and
> PR_MODE_SEL_FETCH
> 
> Cc: Jouni Högander <jouni.hogander@intel.com>
> Cc: Animesh Manna <animesh.manna@intel.com>
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>

Let's see what are the final values for PR in i915_edp_psr_debug
interface. 5 and 6 are ok for now:

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> ---
>  lib/igt_psr.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> index 665b28a76..c2b2a4148 100644
> --- a/lib/igt_psr.c
> +++ b/lib/igt_psr.c
> @@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd,
> int mode)
>                 case PSR_MODE_2_SEL_FETCH:
>                         debug_val = "0x4";
>                         break;
> +               case PR_MODE:
> +                       debug_val = "0x5";
> +                       break;
> +               case PR_MODE_SEL_FETCH:
> +                       debug_val = "0x6";
> +                       break;
>                 default:
>                         /* Disables PSR */
>                         debug_val = "0x1";


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

* Re: [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability
  2023-10-31 10:40   ` Hogander, Jouni
@ 2023-10-31 12:02     ` Hogander, Jouni
  0 siblings, 0 replies; 24+ messages in thread
From: Hogander, Jouni @ 2023-10-31 12:02 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R

On Tue, 2023-10-31 at 12:39 +0200, Hogander, Jouni wrote:
> On Tue, 2023-10-31 at 13:39 +0530, Kunal Joshi wrote:
> > New debugfs directory for all DP connectors will be added
> > with below patch series
> > https://patchwork.freedesktop.org/series/94470/
> > 
> > For DP Connectors
> >         /sys/kernel/debug/dri/0/DP-x/i915_psr_status
> > 
> > For eDP Connectors
> >         /sys/kernel/debug/dri/0/i915_edp_psr_status
> >                         or
> >         /sys/kernel/debug/dri/0/eDP-x/i915_psr_status
> > 
> > v2: reuse psr_sink_support (Jouni)
> > 
> > Cc: Jouni Högander <jouni.hogander@intel.com>
> > Cc: Animesh Manna <animesh.manna@intel.com>
> > Cc: Arun R Murthy <arun.r.murthy@intel.com>
> > Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> > ---
> >  lib/igt_psr.c                          | 54 ++++++++++++++++++----
> > --
> > --
> >  lib/igt_psr.h                          |  3 +-
> >  tests/intel/kms_dirtyfb.c              |  2 +-
> >  tests/intel/kms_fbcon_fbt.c            |  4 +-
> >  tests/intel/kms_frontbuffer_tracking.c |  2 +-
> >  tests/intel/kms_pm_dc.c                |  9 +++--
> >  tests/intel/kms_psr.c                  |  2 +-
> >  tests/intel/kms_psr2_sf.c              |  3 +-
> >  tests/intel/kms_psr2_su.c              |  3 +-
> >  tests/intel/kms_psr_stress_test.c      |  2 +-
> >  tests/kms_feature_discovery.c          |  4 +-
> >  11 files changed, 57 insertions(+), 31 deletions(-)
> > 
> > diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> > index 13f7c567d..aa3ca9ddb 100644
> > --- a/lib/igt_psr.c
> > +++ b/lib/igt_psr.c
> > @@ -192,31 +192,51 @@ bool psr_disable(int device, int debugfs_fd)
> >         return psr_set(device, debugfs_fd, -1);
> >  }
> >  
> > -bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> > mode)
> > +bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> > mode, igt_output_t *output)
> >  {
> > +       char *line;
> > +       char debugfs_file[128] = {0};
> >         char buf[PSR_STATUS_MAX_LEN];
> >         int ret;
> >  
> > -       ret = igt_debugfs_simple_read(debugfs_fd,
> > "i915_edp_psr_status", buf,
> > +       if (output)
> > +               sprintf(debugfs_file, "%s/i915_psr_status", output-
> > > name);
> > +       else
> > +               sprintf(debugfs_file, "%s", "i915_edp_psr_status");
> > +
> > +       ret = igt_debugfs_simple_read(debugfs_fd, debugfs_file,
> > buf,
> >                                       sizeof(buf));
> >         if (ret < 1)
> >                 return false;
> >  
> > -       if (mode == PSR_MODE_1)
> > -               return strstr(buf, "Sink_Support: yes\n") ||
> > -                      strstr(buf, "Sink support: yes");
> > -       else
> > -               /*
> > -                * i915 requires PSR version 0x03 that is PSR2 + SU
> > with
> > -                * Y-coordinate to support PSR2
> > -                *
> > -                * or
> > -                *
> > -                * PSR version 0x4 that is PSR2 + SU w/ Y-
> > coordinate
> > and SU
> > -                * Region Early Transport to support PSR2 (eDP 1.5)
> > -                */
> > -               return strstr(buf, "Sink support: yes [0x03]") ||
> > -                      strstr(buf, "Sink support: yes [0x04]");
> > +       line = strstr(buf, "Sink support: ");
> > +       if (!line)
> > +               return false;
> > +
> > +       switch (mode) {
> > +               case PSR_MODE_1:
> > +                       return strstr(line, "PSR = yes");

I think this is breaking current tests as the sink support line is like
this:

Sink support: yes [0x01]

I think we could keep them as they are currently, just add Panel replay
variants:

PR:
Sink support: Panel Replay

PR Selective update:
Sink support: Panel Replay Selective update

PSR1 + PR (not sure if such edp panel will ever exist):
Sink support: yes [0x01], Panel Replay

and so on.

BR,

Jouni Högander
> > +               case PSR_MODE_2:
> > +               case PSR_MODE_2_SEL_FETCH:
> > +                       /*
> > +                        * i915 requires PSR version 0x03 that is
> > PSR2 + SU with
> > +                        * Y-coordinate to support PSR2
> > +                        * or
> > +                        *
> > +                        * PSR version 0x4 that is PSR2 + SU w/ Y-
> > coordinate and SU
> > +                        * Region Early Transport to support PSR2
> > (eDP 1.5)
> > +                        */
> > +                       return strstr(line, "PSR = yes") &&
> > +                              (strstr(line, "[0x03]") ||
> > strstr(line, "[0x04]"));
> > +               case PR_MODE:
> > +                       return strstr(line, "Panel Replay = yes");
> > +               case PR_MODE_SEL_FETCH:
> > +                       return strstr(line, "Panel Replay = yes")
> > &&
> > +                              strstr(buf, "PSR2 selective fetch:
> > enabled");
> 
> I think this isn't yet implemented on kernel side, but I would assume
> we use "selective update" and not PSR2. Selective fetch is feature in
> our HW which can be used when doing selective updates. Panel isn't
> aware of selective fetch done on source side.
> 
> BR,
> Jouni Högander
> 
>  
> > +               default:
> > +                       igt_assert_f(false, "Invalid psr mode\n");
> > +                       return false;
> > +       }
> >  }
> >  
> >  #define PSR2_SU_BLOCK_STR_LOOKUP "PSR2 SU blocks:\n0\t"
> > diff --git a/lib/igt_psr.h b/lib/igt_psr.h
> > index 243154897..e213b05e9 100644
> > --- a/lib/igt_psr.h
> > +++ b/lib/igt_psr.h
> > @@ -27,6 +27,7 @@
> >  #include "igt_debugfs.h"
> >  #include "igt_core.h"
> >  #include "igt_aux.h"
> > +#include "igt_kms.h"
> >  
> >  #define PSR_STATUS_MAX_LEN 512
> >  
> > @@ -46,7 +47,7 @@ bool psr_wait_update(int debugfs_fd, enum
> > psr_mode
> > mode);
> >  bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode);
> >  bool psr_enable(int device, int debugfs_fd, enum psr_mode);
> >  bool psr_disable(int device, int debugfs_fd);
> > -bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> > mode);
> > +bool psr_sink_support(int device, int debugfs_fd, enum psr_mode
> > mode, igt_output_t *output);
> >  bool psr2_wait_su(int debugfs_fd, uint16_t *num_su_blocks);
> >  void psr_print_debugfs(int debugfs_fd);
> >  enum psr_mode psr_get_mode(int debugfs_fd);
> > diff --git a/tests/intel/kms_dirtyfb.c b/tests/intel/kms_dirtyfb.c
> > index cc9529178..f7ff1ac0b 100644
> > --- a/tests/intel/kms_dirtyfb.c
> > +++ b/tests/intel/kms_dirtyfb.c
> > @@ -92,7 +92,7 @@ static bool check_support(data_t *data)
> >                     DRM_MODE_CONNECTOR_eDP)
> >                         return false;
> >                 return psr_sink_support(data->drm_fd, data-
> > > debugfs_fd,
> > -                                       PSR_MODE_1);
> > +                                       PSR_MODE_1, NULL);
> >         case FEATURE_DRRS:
> >                 return intel_is_drrs_supported(data->drm_fd, data-
> > > pipe) &&
> >                         intel_output_has_drrs(data->drm_fd, data-
> > > output);
> > diff --git a/tests/intel/kms_fbcon_fbt.c
> > b/tests/intel/kms_fbcon_fbt.c
> > index 8d6bb3cb6..a7f24e669 100644
> > --- a/tests/intel/kms_fbcon_fbt.c
> > +++ b/tests/intel/kms_fbcon_fbt.c
> > @@ -269,7 +269,7 @@ static bool psr_is_disabled(int debugfs_fd)
> >  
> >  static bool psr_supported_on_chipset(int device, int debugfs_fd)
> >  {
> > -       return psr_sink_support(device, debugfs_fd, PSR_MODE_1);
> > +       return psr_sink_support(device, debugfs_fd, PSR_MODE_1,
> > NULL);
> >  }
> >  
> >  static bool psr_wait_until_update(struct drm_info *drm)
> > @@ -280,7 +280,7 @@ static bool psr_wait_until_update(struct
> > drm_info
> > *drm)
> >  static void disable_features(int device, int debugfs_fd)
> >  {
> >         igt_set_module_param_int(device, "enable_fbc", 0);
> > -       if (psr_sink_support(device, debugfs_fd, PSR_MODE_1))
> > +       if (psr_sink_support(device, debugfs_fd, PSR_MODE_1, NULL))
> >                 psr_disable(device, debugfs_fd);
> >  }
> >  
> > diff --git a/tests/intel/kms_frontbuffer_tracking.c
> > b/tests/intel/kms_frontbuffer_tracking.c
> > index f90d09f9f..2d588e836 100644
> > --- a/tests/intel/kms_frontbuffer_tracking.c
> > +++ b/tests/intel/kms_frontbuffer_tracking.c
> > @@ -1362,7 +1362,7 @@ static void setup_psr(void)
> >                 return;
> >         }
> >  
> > -       if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1)) {
> > +       if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1,
> > NULL))
> > {
> >                 igt_info("Can't test PSR: not supported by
> > sink.\n");
> >                 return;
> >         }
> > diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
> > index 1e9ca5d6c..e5daacb84 100644
> > --- a/tests/intel/kms_pm_dc.c
> > +++ b/tests/intel/kms_pm_dc.c
> > @@ -673,14 +673,16 @@ igt_main
> >         igt_describe("In this test we make sure that system enters
> > DC3CO "
> >                      "when PSR2 is active and system is in SLEEP
> > state");
> >         igt_subtest("dc3co-vpb-simulation") {
> > -               igt_require(psr_sink_support(data.drm_fd,
> > data.debugfs_fd, PSR_MODE_2));
> > +               igt_require(psr_sink_support(data.drm_fd,
> > data.debugfs_fd,
> > +                                            PSR_MODE_2, NULL));
> >                 test_dc3co_vpb_simulation(&data);
> >         }
> >  
> >         igt_describe("This test validates display engine entry to
> > DC5
> > state "
> >                      "while PSR is active");
> >         igt_subtest("dc5-psr") {
> > -               igt_require(psr_sink_support(data.drm_fd,
> > data.debugfs_fd, PSR_MODE_1));
> > +               igt_require(psr_sink_support(data.drm_fd,
> > data.debugfs_fd,
> > +                                            PSR_MODE_1, NULL));
> >                 data.op_psr_mode = PSR_MODE_1;
> >                 psr_enable(data.drm_fd, data.debugfs_fd,
> > data.op_psr_mode);
> >                 test_dc_state_psr(&data, CHECK_DC5);
> > @@ -689,7 +691,8 @@ igt_main
> >         igt_describe("This test validates display engine entry to
> > DC6
> > state "
> >                      "while PSR is active");
> >         igt_subtest("dc6-psr") {
> > -               igt_require(psr_sink_support(data.drm_fd,
> > data.debugfs_fd, PSR_MODE_1));
> > +               igt_require(psr_sink_support(data.drm_fd,
> > data.debugfs_fd,
> > +                                            PSR_MODE_1, NULL));
> >                 data.op_psr_mode = PSR_MODE_1;
> >                 psr_enable(data.drm_fd, data.debugfs_fd,
> > data.op_psr_mode);
> >                 igt_require_f(igt_pm_pc8_plus_residencies_enabled(d
> > at
> > a.msr_fd),
> > diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
> > index ffecc5222..260095aec 100644
> > --- a/tests/intel/kms_psr.c
> > +++ b/tests/intel/kms_psr.c
> > @@ -433,7 +433,7 @@ static void fill_render(data_t *data, const
> > struct igt_fb *fb,
> >  static bool sink_support(data_t *data, enum psr_mode mode)
> >  {
> >         return data->with_psr_disabled ||
> > -              psr_sink_support(data->drm_fd, data->debugfs_fd,
> > mode);
> > +              psr_sink_support(data->drm_fd, data->debugfs_fd,
> > mode,
> > NULL);
> >  }
> >  
> >  static bool psr_wait_entry_if_enabled(data_t *data)
> > diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
> > index d7a746211..2d05f1110 100644
> > --- a/tests/intel/kms_psr2_sf.c
> > +++ b/tests/intel/kms_psr2_sf.c
> > @@ -980,7 +980,8 @@ igt_main
> >                 kmstest_set_vt_graphics_mode();
> >  
> >                 igt_require_f(psr_sink_support(data.drm_fd,
> > -                                              data.debugfs_fd,
> > PSR_MODE_2),
> > +                                              data.debugfs_fd,
> > PSR_MODE_2,
> > +                                              NULL),
> >                               "Sink does not support PSR2\n");
> >  
> >                 display_init(&data);
> > diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c
> > index 834fec1ec..2f89de435 100644
> > --- a/tests/intel/kms_psr2_su.c
> > +++ b/tests/intel/kms_psr2_su.c
> > @@ -327,7 +327,8 @@ igt_main
> >                 kmstest_set_vt_graphics_mode();
> >  
> >                 igt_require_f(psr_sink_support(data.drm_fd,
> > -                                              data.debugfs_fd,
> > PSR_MODE_2),
> > +                                              data.debugfs_fd,
> > +                                              PSR_MODE_2, NULL),
> >                               "Sink does not support PSR2\n");
> >  
> >                 igt_require_f(intel_display_ver(intel_get_drm_devid
> > (d
> > ata.drm_fd)) < 13,
> > diff --git a/tests/intel/kms_psr_stress_test.c
> > b/tests/intel/kms_psr_stress_test.c
> > index b6759eece..beded3b94 100644
> > --- a/tests/intel/kms_psr_stress_test.c
> > +++ b/tests/intel/kms_psr_stress_test.c
> > @@ -357,7 +357,7 @@ igt_main
> >                 kmstest_set_vt_graphics_mode();
> >  
> >                 igt_require_f(psr_sink_support(data.drm_fd,
> > data.debugfs_fd,
> > -                                              PSR_MODE_1),
> > +                                              PSR_MODE_1, NULL),
> >                               "Sink does not support PSR\n");
> >  
> >                 setup_output(&data);
> > diff --git a/tests/kms_feature_discovery.c
> > b/tests/kms_feature_discovery.c
> > index 3a1f6d21d..428f97ffe 100644
> > --- a/tests/kms_feature_discovery.c
> > +++ b/tests/kms_feature_discovery.c
> > @@ -159,12 +159,12 @@ igt_main {
> >  
> >                 igt_describe("Make sure that we have eDP panel with
> > PSR1 support.");
> >                 igt_subtest("psr1") {
> > -                       igt_require(psr_sink_support(fd,
> > debugfs_fd,
> > PSR_MODE_1));
> > +                       igt_require(psr_sink_support(fd,
> > debugfs_fd,
> > PSR_MODE_1, NULL));
> >                 }
> >  
> >                 igt_describe("Make sure that we have eDP panel with
> > PSR2 support.");
> >                 igt_subtest("psr2") {
> > -                       igt_require(psr_sink_support(fd,
> > debugfs_fd,
> > PSR_MODE_2));
> > +                       igt_require(psr_sink_support(fd,
> > debugfs_fd,
> > PSR_MODE_2, NULL));
> >                 }
> >  
> >                 igt_describe("Make sure that we have DP-MST
> > configuration.");
> 


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

* Re: [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode for pr compatability
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
@ 2023-10-31 12:06   ` Hogander, Jouni
  0 siblings, 0 replies; 24+ messages in thread
From: Hogander, Jouni @ 2023-10-31 12:06 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R

On Tue, 2023-10-31 at 13:39 +0530, Kunal Joshi wrote:
> Modified psr_get_mode for PR_MODE
> 
> Cc: Jouni Högander <jouni.hogander@intel.com>
> Cc: Animesh Manna <animesh.manna@intel.com>
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
>  lib/igt_psr.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> index c2b2a4148..bddf80d6a 100644
> --- a/lib/igt_psr.c
> +++ b/lib/igt_psr.c
> @@ -382,7 +382,9 @@ enum psr_mode psr_get_mode(int debugfs_fd)
>                 return PSR_DISABLED;
>         }
>  
> -       if (strstr(buf, "PSR2 selective fetch: enabled"))
> +       if (strstr(buf, "Panel Replay Enabled"))
> +               return PR_MODE;
> +       else if (strstr(buf, "PSR2 selective fetch: enabled"))
>                 return PSR_MODE_2_SEL_FETCH;
>         else if (strstr(buf, "PSR2 enabled"))
>                 return PSR_MODE_2;

You are missing Panel Replay Selective update. I would assume format
like this:
for PR Selective update:

Sink support: Panel Replay Selective update
PSR mode: Panel Replay Selective update enabled
Source PSR ctl: enabled [0xc2004a99]
Source PSR status: DEEP_SLEEP [0x80000100]
Busy frontbuffer bits: 0x00000000
Performance counter: 0
Frame:	PSR2 SU blocks:
0	0
1	0
2	0
3	0
4	0
5	0
6	0
7	0
PSR2 selective fetch: enabled

and PR:

Sink support: Panel Replay
PSR mode: Panel Replay enabled
PSR sink not reliable: no

BR,

Jouni Högander

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

* Re: [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr
  2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
@ 2023-10-31 12:23   ` Hogander, Jouni
  0 siblings, 0 replies; 24+ messages in thread
From: Hogander, Jouni @ 2023-10-31 12:23 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R

On Tue, 2023-10-31 at 13:39 +0530, Kunal Joshi wrote:
> Modified kms_psr to have support for PR.
> 
> v2: remove set_output and have outputs (Jouni)
> v3: loop over connected outputs (Jouni)
> 
> Cc: Jouni Högander <jouni.hogander@intel.com>
> Cc: Animesh Manna <animesh.manna@intel.com>
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
>  tests/intel/kms_psr.c | 381 +++++++++++++++++++++++++++++++---------
> --
>  1 file changed, 286 insertions(+), 95 deletions(-)
> 
> diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
> index 8485e9894..feb24329f 100644
> --- a/tests/intel/kms_psr.c
> +++ b/tests/intel/kms_psr.c
> @@ -25,7 +25,7 @@
>  /**
>   * TEST: kms psr
>   * Category: Display
> - * Description: Tests behaviour of PSR & PSR2
> + * Description: Tests behaviour of PSR & PSR2 & PR
>   */
>  
>  #include "igt.h"
> @@ -39,14 +39,14 @@
>  #include "xe/xe_query.h"
>  
>  /**
> - * SUBTEST: basic
> + * SUBTEST: psr_basic
>   * Description: Basic check for psr if it is detecting changes made
> in planes
>   * Driver requirement: i915, xe
>   * Functionality: psr
>   * Mega feature: PSR
>   * Test category: functionality test
>   *
> - * SUBTEST: %s_%s
> + * SUBTEST: psr_%s_%s
>   * Description: Check if psr is detecting memory mapping, rendering
> and plane
>   *              operations performed on %arg[1]
>   * Driver requirement: i915
> @@ -67,7 +67,7 @@
>   */
>  
>  /**
> - * SUBTEST: sprite_plane_move
> + * SUBTEST: psr_sprite_plane_move
>   * Description: Check if psr is detecting memory mapping, rendering
> and plane
>   *              operations performed on sprite planes
>   * Driver requirement: i915, xe
> @@ -75,7 +75,7 @@
>   * Mega feature: PSR
>   * Test category: functionality test
>   *
> - * SUBTEST: %s_%s
> + * SUBTEST: psr_%s_%s
>   * Description: Check if psr is detecting memory mapping, rendering
> and plane
>   *              operations performed on %arg[1] planes
>   * Driver requirement: i915, xe
> @@ -96,7 +96,7 @@
>   */
>  
>  /**
> - * SUBTEST: primary_%s
> + * SUBTEST: psr_primary_%s
>   * Description: Check if psr is detecting memory mapping, rendering
> and plane
>   *              operations performed on %arg[1] planes
>   * Driver requirement: i915, xe
> @@ -111,7 +111,7 @@
>   */
>  
>  /**
> - * SUBTEST: dpms
> + * SUBTEST: psr_dpms
>   * Description: Check if psr is detecting changes when rendering
> operation is
>   *              performed  with dpms enabled or disabled
>   * Driver requirement: i915, xe
> @@ -119,14 +119,14 @@
>   * Mega feature: PSR
>   * Test category: functionality test
>   *
> - * SUBTEST: no_drrs
> + * SUBTEST: psr_no_drrs
>   * Description: Check if psr is detecting changes when drrs is
> disabled
>   * Driver requirement: i915, xe
>   * Functionality: drrs, psr
>   * Mega feature: PSR
>   * Test category: functionality test
>   *
> - * SUBTEST: suspend
> + * SUBTEST: psr_suspend
>   * Description: Check if psr is detecting changes when plane
> operation
>   *              is performed with suspend resume cycles
>   * Driver requirement: i915, xe
> @@ -229,6 +229,112 @@
>   * @plane_move:         Move plane position
>   */
>  
> +/**
> + * SUBTEST: pr_dpms
> + * Description: Check if pr is detecting changes when rendering
> operation
> + *              is performed with dpms enabled or disabled
> + * Driver requirement: i915, xe
> + * Functionality: dpms, pr
> + * Mega feature: Panel Replay
> + * Test category: functionality test
> + */
> +
> +/**
> + * SUBTEST: pr_no_drrs
> + * Description: Check if pr is detecting changes when drrs is
> disabled
> + * Driver requirement: i915, xe
> + * Functionality: drrs, pr
> + * Mega feature: Panel Replay
> + * Test category: functionality test
> + */
> +
> +/**
> + * SUBTEST: pr_suspend
> + * Description: Check if pr is detecting changes when plane
> operation is
> + *              performed with suspend resume cycles
> + * Driver requirement: i915, xe
> + * Functionality: pr, suspend
> + * Mega feature: Panel Replay
> + * Test category: functionality test
> + */
> +
> +/**
> + * SUBTEST: pr_basic
> + * Description: Basic check for pr if it is detecting changes made
> in planes
> + * Driver requirement: i915, xe
> + * Functionality: pr
> + * Mega feature: Panel Replay
> + * Test category: functionality test
> + */
> +
> +/**
> + * SUBTEST: pr_%s_%s
> + * Description: Check if pr is detecting memory mapping, rendering
> and plane
> + *              operations performed on %arg[1] planes
> + * Driver requirement: i915
> + * Functionality: kms_core, plane, pr
> + * Mega feature: Panel Replay
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @cursor:             Cursor plane
> + * @primary:            Primary plane
> + * @sprite:             Sprite plane
> + *
> + * arg[2]:
> + *
> + * @mmap_cpu:           MMAP CPU
> + * @mmap_gtt:           MMAP GTT
> + */
> +
> +/**
> + * SUBTEST: pr_primary_page_flip
> + * Description: Check if pr is detecting memory mapping, rendering
> and plane
> + *              operations performed on primary planes
> + * Driver requirement: i915, xe
> + * Functionality: plane, pr
> + * Mega feature: Panel Replay
> + * Test category: functionality test
> + */
> +
> +/**
> + * SUBTEST: pr_primary_%s
> + * Description: Check if pr is detecting memory mapping, rendering
> and plane
> + *              operations performed on primary planes
> + * Driver requirement: i915, xe
> + * Functionality: kms_core, plane, pr
> + * Mega feature: Panel Replay
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @blt:                Blitter
> + * @render:             Render
> + */
> +
> +/**
> + * SUBTEST: pr_%s_%s
> + * Description: Check if pr is detecting memory mapping, rendering
> and plane
> + *              operations performed on %arg[1] planes
> + * Driver requirement: i915, xe
> + * Functionality: kms_core, plane, pr
> + * Mega feature: Panel Replay
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @cursor:             Cursor plane
> + * @sprite:             Sprite plane
> + *
> + * arg[2]:
> + *
> + * @blt:                Blitter
> + * @render:             Render
> + * @plane_onoff:        Plane On off
> + * @plane_move:         Move plane position
> + */
> +
>  enum operations {
>         PAGE_FLIP,
>         MMAP_GTT,
> @@ -271,7 +377,9 @@ typedef struct {
>         drmModeModeInfo *mode;
>         igt_output_t *output;
>         bool with_psr_disabled;
> +       bool supports_psr;
>         bool supports_psr2;
> +       bool supports_pr;
>  } data_t;
>  
>  static void create_cursor_fb(data_t *data)
> @@ -289,36 +397,34 @@ static void create_cursor_fb(data_t *data)
>         igt_put_cairo_ctx(cr);
>  }
>  
> -static void setup_output(data_t *data)
> +static void set_output_supports(data_t *data)
>  {
> -       igt_display_t *display = &data->display;
>         igt_output_t *output;
> -       enum pipe pipe;
> -
> -       for_each_pipe_with_valid_output(display, pipe, output) {
> -               drmModeConnectorPtr c = output->config.connector;
>  
> -               if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
> -                       continue;
> -
> -               igt_display_reset(display);
> -               igt_output_set_pipe(output, pipe);
> -               if (!i915_pipe_output_combo_valid(display))
> -                       continue;
> -
> -               data->crtc_id = output->config.crtc->crtc_id;
> -               data->output = output;
> -
> -               return;
> +       for_each_connected_output(&data->display, output) {
> +                if(psr_sink_support(data->drm_fd, data->debugfs_fd,
> +                                    PSR_MODE_2, output))
> +                {
> +                        data->supports_psr2 = true;
> +                        igt_debug("PSR_2 supported on %s\n", output-
> >name);
> +                }
> +               else if(psr_sink_support(data->drm_fd, data-
> >debugfs_fd,
> +                                   PSR_MODE_1, output))
> +               {
> +                       data->supports_psr = true;
> +                       igt_debug("PSR_1 supported on %s\n", output-
> >name);
> +               }
> +               else if(psr_sink_support(data->drm_fd, data-
> >debugfs_fd,
> +                                    PR_MODE, output))
> +                {
> +                        data->supports_pr = true;
> +                       igt_debug("PR supported on %s\n", output-
> >name);
> +                }
> +               else
> +                       igt_debug("PSR/PSR2/PR not supported on
> %s\n", output->name);
>         }
>  }
>  
> -static void display_init(data_t *data)
> -{
> -       igt_display_require(&data->display, data->drm_fd);
> -       setup_output(data);
> -}
> -
>  static void display_fini(data_t *data)
>  {
>         igt_display_fini(&data->display);
> @@ -502,7 +608,7 @@ static void fb_dirty_fb_ioctl(data_t *data,
> struct igt_fb *fb)
>  }
>  
>  /**
> - * SUBTEST: cursor_plane_move
> + * SUBTEST: psr_cursor_plane_move
>   * Description: Check if psr is detecting the plane operations
> performed on
>   *             cursor planes
>   * Driver requirement: i915, xe
> @@ -510,7 +616,7 @@ static void fb_dirty_fb_ioctl(data_t *data,
> struct igt_fb *fb)
>   * Functionality: psr
>   * Mega feature: PSR
>   *
> - * SUBTEST: primary_page_flip
> + * SUBTEST: psr_primary_page_flip
>   * Description: Check if psr is detecting page-flipping operations
> performed
>   *             on primary planes
>   * Driver requirement: i915, xe
> @@ -518,7 +624,7 @@ static void fb_dirty_fb_ioctl(data_t *data,
> struct igt_fb *fb)
>   * Functionality: psr
>   * Mega feature: PSR
>   *
> - * SUBTEST: sprite_plane_onoff
> + * SUBTEST: psr_sprite_plane_onoff
>   * Description: Check if psr is detecting the plane operations
> performed on
>   *             sprite planes
>   * Driver requirement: i915, xe
> @@ -683,15 +789,36 @@ static void setup_test_plane(data_t *data, int
> test_plane)
>         igt_display_commit(&data->display);
>  }
>  
> +static enum pipe get_pipe_for_output(igt_display_t *display,
> +                                    igt_output_t *output)
> +{
> +        enum pipe pipe;
> +
> +        for_each_pipe(display, pipe) {
> +                if (igt_pipe_connector_valid(pipe, output)) {
> +                        return pipe;
> +                }
> +        }
> +
> +        igt_assert_f(false, "No pipe found for output %s\n",
> +                     igt_output_name(output));
> +}
> +
>  static void test_setup(data_t *data)
>  {
> +       enum pipe pipe;
>         drmModeConnectorPtr connector;
>         bool psr_entered = false;
>  
>         igt_require_f(data->output,
>                       "No available output found\n");
>  
> +       data->crtc_id = data->output->config.crtc->crtc_id;
>         connector = data->output->config.connector;
> +       pipe = get_pipe_for_output(&data->display, data->output);
> +       igt_output_set_pipe(data->output, pipe);
> +       igt_require_f(i915_pipe_output_combo_valid(&data->display),
> +                     "output pipe combo not valid\n");
>  
>         for (int i = 0; i < connector->count_modes; i++) {
>                 data->mode = &connector->modes[i];
> @@ -747,115 +874,179 @@ data_t data = {};
>  
>  igt_main_args("", long_options, help_str, opt_handler, &data)
>  {
> +       int z;
>         enum operations op;
> -       const char *append_subtest_name[2] = {
> -               "",
> -               "psr2_"
> +       const char *append_subtest_name[3] = {
> +               "psr_",
> +               "psr2_",
> +               "pr_"
>         };
> +       int modes[] = {PSR_MODE_1, PSR_MODE_2, PR_MODE};
> +       igt_output_t *output;
>  
>         igt_fixture {
>                 data.drm_fd = drm_open_driver_master(DRIVER_INTEL |
> DRIVER_XE);
>                 data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
>                 kmstest_set_vt_graphics_mode();
>                 data.devid = intel_get_drm_devid(data.drm_fd);
> +               data.bops = buf_ops_create(data.drm_fd);
> +               igt_display_require(&data.display, data.drm_fd);
> +               set_output_supports(&data);
> +               data.supports_psr2 = data.supports_psr2 |
> sink_support(&data, PSR_MODE_2);
>  
> -               igt_require_f(sink_support(&data, PSR_MODE_1),
> -                             "Sink does not support PSR\n");
> +                igt_require_f(data.supports_psr ||
> data.supports_psr2 || data.supports_pr,
> +                              "Sink does not support
> PSR/PSR2/PR\n");

Change set_output_supports() as output_supports_psr and just loop
through outputs there. if none of them support pr/psr/psr2 return
false. Then:

igt_require_f(output_supports_psr(&data), "Sink does not support
PSR/PSR2/PR\n");

BR,

Jouni Högander
>  
> -               data.supports_psr2 = sink_support(&data, PSR_MODE_2);
> -               data.bops = buf_ops_create(data.drm_fd);
> -               display_init(&data);
>         }
>  
> -       for (data.op_psr_mode = PSR_MODE_1; data.op_psr_mode <=
> PSR_MODE_2;
> -            data.op_psr_mode++) {
> +       for (z = 0; z < ARRAY_SIZE(modes); z++) {
> +               data.op_psr_mode = modes[z];
> > -            data.op_psr_mode++)
> {            igt_subtest_f("%sbasic",
> append_subtest_name[data.op_psr_mode]) {
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       test_setup(&data);
> -                       test_cleanup(&data);
> +               igt_subtest_with_dynamic_f("%sbasic",
> append_subtest_name[z]) {
> +                       for_each_connected_output(&data.display,
> output) {
> +                               if (!psr_sink_support(data.drm_fd,
> data.debugfs_fd,
> +                                                    
> data.op_psr_mode, output))
> +                                       continue;
> +                               igt_display_reset(&data.display);
> +                               data.output = output;
> +                               igt_dynamic_f("%s", data.output-
> >name) {
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                       test_setup(&data);
> +                                       test_cleanup(&data);
> +                               }
> +                       }
>                 }
>  
>                 igt_describe("Check if psr is detecting changes when
> drrs is disabled");
> -               igt_subtest_f("%sno_drrs",
> append_subtest_name[data.op_psr_mode]) {
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       test_setup(&data);
> -                       igt_assert(drrs_disabled(&data));
> -                       test_cleanup(&data);
> +               igt_subtest_with_dynamic_f("%sno_drrs",
> append_subtest_name[z]) {
> +                       for_each_connected_output(&data.display,
> output) {
> +                               if (!psr_sink_support(data.drm_fd,
> data.debugfs_fd,
> +                                                    
> data.op_psr_mode, output))
> +                                       continue;
> +                                igt_display_reset(&data.display);
> +                                data.output = output;
> +                                igt_dynamic_f("%s", data.output-
> >name) {
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                       test_setup(&data);
> +                                       igt_assert(drrs_disabled(&dat
> a));
> +                                       test_cleanup(&data);
> +                               }
> +                       }
>                 }
>  
>                 for (op = PAGE_FLIP; op <= RENDER; op++) {
>                         igt_describe("Check if psr is detecting page-
> flipping,memory mapping and "
>                                         "rendering operations
> performed on primary planes");
> -                       igt_subtest_f("%sprimary_%s",
> -                                    
> append_subtest_name[data.op_psr_mode],
> +                       igt_subtest_with_dynamic_f("%sprimary_%s",
> +                                     append_subtest_name[z],
>                                       op_str(op)) {
>                                 igt_skip_on(is_xe_device(data.drm_fd)
> &&
>                                             (op == MMAP_CPU || op ==
> MMAP_GTT));
> -
> -                               data.op = op;
> -                               data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> -                               test_setup(&data);
> -                               run_test(&data);
> -                               test_cleanup(&data);
> +                               for_each_connected_output(&data.displ
> ay, output) {
> +                                       if
> (!psr_sink_support(data.drm_fd, data.debugfs_fd,
> +                                                            
> data.op_psr_mode, output))
> +                                               continue;
> +                                       igt_display_reset(&data.displ
> ay);
> +                                       data.output = output;
> +                                       igt_dynamic_f("%s",
> data.output->name) {
> +                                               data.op = op;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                               test_setup(&data);
> +                                               run_test(&data);
> +                                               test_cleanup(&data);
> +                                       }
> +                               }
>                         }
>                 }
>  
>                 for (op = MMAP_GTT; op <= PLANE_ONOFF; op++) {
>                         igt_describe("Check if psr is detecting
> memory mapping,rendering "
>                                         "and plane operations
> performed on sprite planes");
> -                       igt_subtest_f("%ssprite_%s",
> -                                    
> append_subtest_name[data.op_psr_mode],
> +                       igt_subtest_with_dynamic_f("%ssprite_%s",
> +                                     append_subtest_name[z],
>                                       op_str(op)) {
>                                 igt_skip_on(is_xe_device(data.drm_fd)
> &&
>                                             (op == MMAP_CPU || op ==
> MMAP_GTT));
> -
> -                               data.op = op;
> -                               data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> -                               test_setup(&data);
> -                               run_test(&data);
> -                               test_cleanup(&data);
> +                               for_each_connected_output(&data.displ
> ay, output) {
> +                                       if
> (!psr_sink_support(data.drm_fd, data.debugfs_fd,
> +                                                            
> data.op_psr_mode, output))
> +                                               continue;
> +                                       igt_display_reset(&data.displ
> ay);
> +                                       data.output = output;
> +                                       igt_dynamic_f("%s",
> data.output->name) {
> +                                               data.op = op;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                               test_setup(&data);
> +                                               run_test(&data);
> +                                               test_cleanup(&data);
> +                                       }
> +                               }
>                         }
>  
>                         igt_describe("Check if psr is detecting
> memory mapping, rendering "
>                                         "and plane operations
> performed on cursor planes");
> -                       igt_subtest_f("%scursor_%s",
> -                                    
> append_subtest_name[data.op_psr_mode],
> +                       igt_subtest_with_dynamic_f("%scursor_%s",
> +                                     append_subtest_name[z],
>                                       op_str(op)) {
>                                 igt_skip_on(is_xe_device(data.drm_fd)
> &&
>                                             (op == MMAP_CPU || op ==
> MMAP_GTT));
> -
> -                               data.op = op;
> -                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> -                               test_setup(&data);
> -                               run_test(&data);
> -                               test_cleanup(&data);
> +                               for_each_connected_output(&data.displ
> ay, output) {
> +                                       if
> (!psr_sink_support(data.drm_fd, data.debugfs_fd,
> +                                                            
> data.op_psr_mode, output))
> +                                               continue;
> +                                       igt_display_reset(&data.displ
> ay);
> +                                       data.output = output;
> +                                       igt_dynamic_f("%s",
> data.output->name) {
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               test_setup(&data);
> +                                               run_test(&data);
> +                                               test_cleanup(&data);
> +                                       }
> +                               }
>                         }
>                 }
>  
>                 igt_describe("Check if psr is detecting changes when
> rendering operation is performed"
>                                 "  with dpms enabled or disabled");
> -               igt_subtest_f("%sdpms",
> append_subtest_name[data.op_psr_mode]) {
> -                       data.op = RENDER;
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       test_setup(&data);
> -                       dpms_off_on(&data);
> -                       run_test(&data);
> -                       test_cleanup(&data);
> +               igt_subtest_with_dynamic_f("%sdpms",
> append_subtest_name[z]) {
> +                       for_each_connected_output(&data.display,
> output) {
> +                               if (!psr_sink_support(data.drm_fd,
> data.debugfs_fd,
> +                                                    
> data.op_psr_mode, output))
> +                                       continue;
> +                                igt_display_reset(&data.display);
> +                                data.output = output;
> +                                igt_dynamic_f("%s", data.output-
> >name) {
> +                                       data.op = RENDER;
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                       test_setup(&data);
> +                                       dpms_off_on(&data);
> +                                       run_test(&data);
> +                                       test_cleanup(&data);
> +                               }
> +                       }
>                 }
>  
>                 igt_describe("Check if psr is detecting changes when
> plane operation is performed "
>                                 "with suspend resume cycles");
> -               igt_subtest_f("%ssuspend",
> append_subtest_name[data.op_psr_mode]) {
> -                       data.op = PLANE_ONOFF;
> -                       data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -                       test_setup(&data);
> -
>                        igt_system_suspend_autoresume(SUSPEND_STATE_MEM
> ,
> -                                                    
> SUSPEND_TEST_NONE);
> -                       igt_assert(psr_wait_entry_if_enabled(&data));
> -                       run_test(&data);
> -                       test_cleanup(&data);
> +               igt_subtest_with_dynamic_f("%ssuspend",
> append_subtest_name[z]) {
> +                       for_each_connected_output(&data.display,
> output) {
> +                               if (!psr_sink_support(data.drm_fd,
> data.debugfs_fd,
> +                                                    
> data.op_psr_mode, output))
> +                                       continue;
> +                                igt_display_reset(&data.display);
> +                                data.output = output;
> +                                igt_dynamic_f("%s", data.output-
> >name) {
> +                                       data.op = PLANE_ONOFF;
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                       test_setup(&data);
> +                                       igt_system_suspend_autoresume
> (SUSPEND_STATE_MEM,
> +                                                                    
> SUSPEND_TEST_NONE);
> +                                       igt_assert(psr_wait_entry_if_
> enabled(&data));
> +                                       run_test(&data);
> +                                       test_cleanup(&data);
> +                               }
> +                       }
>                 }
>         }
>  


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

* [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-11-09  3:36 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
@ 2023-11-09  3:37 ` Kunal Joshi
  0 siblings, 0 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-11-09  3:37 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_set to add support PR_MODE and
PR_MODE_SEL_FETCH

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
---
 lib/igt_psr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 818151228..df1007628 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd, int mode)
 		case PSR_MODE_2_SEL_FETCH:
 			debug_val = "0x4";
 			break;
+		case PR_MODE:
+			debug_val = "0x5";
+			break;
+		case PR_MODE_SEL_FETCH:
+			debug_val = "0x6";
+			break;
 		default:
 			/* Disables PSR */
 			debug_val = "0x1";
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-11-09  6:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
@ 2023-11-09  6:09 ` Kunal Joshi
  0 siblings, 0 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-11-09  6:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_set to add support PR_MODE and
PR_MODE_SEL_FETCH

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
---
 lib/igt_psr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 818151228..df1007628 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd, int mode)
 		case PSR_MODE_2_SEL_FETCH:
 			debug_val = "0x4";
 			break;
+		case PR_MODE:
+			debug_val = "0x5";
+			break;
+		case PR_MODE_SEL_FETCH:
+			debug_val = "0x6";
+			break;
 		default:
 			/* Disables PSR */
 			debug_val = "0x1";
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-11-10  7:16 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
@ 2023-11-10  7:16 ` Kunal Joshi
  0 siblings, 0 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-11-10  7:16 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_set to add support PR_MODE and
PR_MODE_SEL_FETCH

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
---
 lib/igt_psr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 6ac197fd0..41097b496 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd, int mode)
 		case PSR_MODE_2_SEL_FETCH:
 			debug_val = "0x4";
 			break;
+		case PR_MODE:
+			debug_val = "0x5";
+			break;
+		case PR_MODE_SEL_FETCH:
+			debug_val = "0x6";
+			break;
 		default:
 			/* Disables PSR */
 			debug_val = "0x1";
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-11-10  8:15 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
@ 2023-11-10  8:15 ` Kunal Joshi
  0 siblings, 0 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-11-10  8:15 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_set to add support PR_MODE and
PR_MODE_SEL_FETCH

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
---
 lib/igt_psr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index ee931c410..cd6a5dd5d 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd, int mode)
 		case PSR_MODE_2_SEL_FETCH:
 			debug_val = "0x4";
 			break;
+		case PR_MODE:
+			debug_val = "0x5";
+			break;
+		case PR_MODE_SEL_FETCH:
+			debug_val = "0x6";
+			break;
 		default:
 			/* Disables PSR */
 			debug_val = "0x1";
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-11-10  9:43 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
@ 2023-11-10  9:43 ` Kunal Joshi
  0 siblings, 0 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-11-10  9:43 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_set to add support PR_MODE and
PR_MODE_SEL_FETCH

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
---
 lib/igt_psr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 6f1886938..a974036fd 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd, int mode)
 		case PSR_MODE_2_SEL_FETCH:
 			debug_val = "0x4";
 			break;
+		case PR_MODE:
+			debug_val = "0x5";
+			break;
+		case PR_MODE_SEL_FETCH:
+			debug_val = "0x6";
+			break;
 		default:
 			/* Disables PSR */
 			debug_val = "0x1";
-- 
2.25.1

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

* [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability
  2023-11-10  9:52 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
@ 2023-11-10  9:52 ` Kunal Joshi
  0 siblings, 0 replies; 24+ messages in thread
From: Kunal Joshi @ 2023-11-10  9:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy

Modified psr_set to add support PR_MODE and
PR_MODE_SEL_FETCH

Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
---
 lib/igt_psr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 6f1886938..a974036fd 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -168,6 +168,12 @@ static bool psr_set(int device, int debugfs_fd, int mode)
 		case PSR_MODE_2_SEL_FETCH:
 			debug_val = "0x4";
 			break;
+		case PR_MODE:
+			debug_val = "0x5";
+			break;
+		case PR_MODE_SEL_FETCH:
+			debug_val = "0x6";
+			break;
 		default:
 			/* Disables PSR */
 			debug_val = "0x1";
-- 
2.25.1

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

end of thread, other threads:[~2023-11-10  9:44 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-31  8:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
2023-10-31 11:32   ` Hogander, Jouni
2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
2023-10-31 10:40   ` Hogander, Jouni
2023-10-31 12:02     ` Hogander, Jouni
2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
2023-10-31 11:38   ` Hogander, Jouni
2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
2023-10-31 11:42   ` Hogander, Jouni
2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
2023-10-31 12:06   ` Hogander, Jouni
2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
2023-10-31 12:23   ` Hogander, Jouni
2023-10-31  8:09 ` [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE Kunal Joshi
2023-10-31  9:41 ` [igt-dev] ✗ Fi.CI.BAT: failure for extend kms_psr test to validate pr (rev3) Patchwork
2023-10-31  9:43 ` [igt-dev] ✗ CI.xeBAT: " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2023-11-10  9:52 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
2023-11-10  9:52 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability Kunal Joshi
2023-11-10  9:43 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
2023-11-10  9:43 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability Kunal Joshi
2023-11-10  8:15 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
2023-11-10  8:15 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability Kunal Joshi
2023-11-10  7:16 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
2023-11-10  7:16 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability Kunal Joshi
2023-11-09  6:09 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
2023-11-09  6:09 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability Kunal Joshi
2023-11-09  3:36 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
2023-11-09  3:37 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability Kunal Joshi
2023-10-25 14:27 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
2023-10-25 14:27 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set for pr compatability Kunal Joshi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox