* [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr
@ 2023-10-25 14:27 Kunal Joshi
0 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-10-25 14:27 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 | 411 +++++++++++++++++++------
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, 484 insertions(+), 152 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 15+ 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
0 siblings, 0 replies; 15+ 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] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr
@ 2023-11-09 3:36 Kunal Joshi
0 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-09 3:36 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 | 90 ++++--
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 | 393 ++++++++++++++++++-------
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, 461 insertions(+), 159 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr
@ 2023-11-09 6:09 Kunal Joshi
0 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-09 6: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 | 90 ++++--
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 | 393 ++++++++++++++++++-------
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, 461 insertions(+), 159 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr
@ 2023-11-10 7:16 Kunal Joshi
0 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 7:16 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 | 92 ++++--
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 | 393 ++++++++++++++++++-------
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, 463 insertions(+), 159 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr
@ 2023-11-10 8:15 Kunal Joshi
0 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 8:15 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 | 89 ++++--
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 | 371 ++++++++++++++++++-------
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, 439 insertions(+), 158 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr
@ 2023-11-10 9:43 Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
` (6 more replies)
0 siblings, 7 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 9:43 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 | 89 ++++--
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 | 411 ++++++++++++++++---------
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, 440 insertions(+), 197 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay
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
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
` (5 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 9:43 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>
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,
};
--
2.25.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support 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 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
@ 2023-11-10 9:43 ` Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
` (4 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 9:43 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)
v3: backward compatbility (Jouni)
v4: missed backward compatibilty for PSR2
v5: removed mode PR_MODE_SEL_FETCH (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>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
---
lib/igt_psr.c | 55 ++++++++++++++++++--------
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, 58 insertions(+), 31 deletions(-)
diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 13f7c567d..6590815fa 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -192,31 +192,52 @@ 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") ||
+ strstr(buf, "Sink_Support: yes\n") ||
+ strstr(buf, "Sink support: 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(buf, "Sink support: yes [0x03]") ||
+ strstr(buf, "Sink support: yes [0x04]") ||
+ (strstr(line, "PSR = yes") &&
+ (strstr(line, "[0x03]") || strstr(line, "[0x04]")));
+ case PR_MODE:
+ return strstr(line, "Panel Replay = yes");
+ 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 be340a997..3cfa22bbf 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -1383,7 +1383,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] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check 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 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
@ 2023-11-10 9:43 ` Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
` (3 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 9:43 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
v2: corrected ternary check
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 6590815fa..6f1886938 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 || mode == 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 3cfa22bbf..e5f139195 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -1584,10 +1584,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] 15+ 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
` (2 preceding siblings ...)
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
@ 2023-11-10 9:43 ` Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
` (2 subsequent siblings)
6 siblings, 0 replies; 15+ 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] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode 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
` (3 preceding siblings ...)
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
@ 2023-11-10 9:43 ` Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE Kunal Joshi
6 siblings, 0 replies; 15+ 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_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>
Reviewed-by: Jouni Högander <jouni.hogander@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 a974036fd..c9fd3ee58 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -383,7 +383,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] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr
2023-11-10 9:43 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
` (4 preceding siblings ...)
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
@ 2023-11-10 9:43 ` Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE Kunal Joshi
6 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 9:43 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)
v4: shorten output_supports_psr (Jouni)
remove unused data members (Jouni)
v5: removed opt no-psr (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 | 407 ++++++++++++++++++++++++++++--------------
1 file changed, 271 insertions(+), 136 deletions(-)
diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
index 8485e9894..9b1f9983a 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,
@@ -270,8 +376,6 @@ typedef struct {
int mod_stride;
drmModeModeInfo *mode;
igt_output_t *output;
- bool with_psr_disabled;
- bool supports_psr2;
} data_t;
static void create_cursor_fb(data_t *data)
@@ -289,34 +393,20 @@ static void create_cursor_fb(data_t *data)
igt_put_cairo_ctx(cr);
}
-static void setup_output(data_t *data)
+static bool output_supports_psr(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) ||
+ psr_sink_support(data->drm_fd, data->debugfs_fd,
+ PSR_MODE_1, output) ||
+ psr_sink_support(data->drm_fd, data->debugfs_fd,
+ PR_MODE, output))
+ return true;
}
-}
-
-static void display_init(data_t *data)
-{
- igt_display_require(&data->display, data->drm_fd);
- setup_output(data);
+ return false;
}
static void display_fini(data_t *data)
@@ -432,31 +522,21 @@ 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, NULL);
+ return psr_sink_support(data->drm_fd, data->debugfs_fd, mode, NULL);
}
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, data->output);
}
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, data->output);
}
static bool psr_enable_if_enabled(data_t *data)
{
- if (data->with_psr_disabled)
- return true;
-
return psr_enable(data->drm_fd, data->debugfs_fd, data->op_psr_mode);
}
@@ -502,7 +582,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 +590,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 +598,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,14 +763,35 @@ 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");
+ 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");
+ data->crtc_id = data->output->config.crtc->crtc_id;
connector = data->output->config.connector;
for (int i = 0; i < connector->count_modes; i++) {
@@ -700,9 +801,6 @@ static void test_setup(data_t *data)
igt_output_override_mode(data->output, data->mode);
- if (data->op_psr_mode == PSR_MODE_2)
- igt_require(data->supports_psr2);
-
psr_enable_if_enabled(data);
setup_test_plane(data, data->test_plane_id);
if (psr_wait_entry_if_enabled(data)) {
@@ -722,146 +820,183 @@ static void dpms_off_on(data_t *data)
DRM_MODE_DPMS_ON);
}
-static int opt_handler(int opt, int opt_index, void *_data)
-{
- data_t *data = _data;
-
- switch (opt) {
- case 'n':
- data->with_psr_disabled = true;
- break;
- default:
- return IGT_OPT_HANDLER_ERROR;
- }
-
- return IGT_OPT_HANDLER_SUCCESS;
-}
-
-const char *help_str =
- " --no-psr\tRun test without PSR/PSR2.";
-static struct option long_options[] = {
- {"no-psr", 0, 0, 'n'},
- { 0, 0, 0, 0 }
-};
data_t data = {};
-igt_main_args("", long_options, help_str, opt_handler, &data)
+igt_main
{
+ 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);
-
- igt_require_f(sink_support(&data, PSR_MODE_1),
- "Sink does not support PSR\n");
-
- data.supports_psr2 = sink_support(&data, PSR_MODE_2);
data.bops = buf_ops_create(data.drm_fd);
- display_init(&data);
+ igt_display_require(&data.display, data.drm_fd);
+ igt_require_f(output_supports_psr(&data), "Sink does not support PSR/PSR2/PR\n");
}
- 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);
+ }
+ }
}
}
igt_fixture {
- if (!data.with_psr_disabled)
- psr_disable(data.drm_fd, data.debugfs_fd);
+ psr_disable(data.drm_fd, data.debugfs_fd);
close(data.debugfs_fd);
buf_ops_destroy(data.bops);
--
2.25.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE
2023-11-10 9:43 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
` (5 preceding siblings ...)
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
@ 2023-11-10 9:43 ` Kunal Joshi
6 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 9:43 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] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr
@ 2023-11-10 9:52 Kunal Joshi
0 siblings, 0 replies; 15+ messages in thread
From: Kunal Joshi @ 2023-11-10 9:52 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 | 89 ++++--
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 | 414 ++++++++++++++++---------
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, 439 insertions(+), 201 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2023-11-10 9:44 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
2023-11-10 9:43 ` [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE Kunal Joshi
-- 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 8:15 Kunal Joshi
2023-11-10 7:16 Kunal Joshi
2023-11-09 6:09 Kunal Joshi
2023-11-09 3:36 Kunal Joshi
2023-10-31 8:09 Kunal Joshi
2023-10-25 14:27 Kunal Joshi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox