* [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay
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
2023-11-10 8:15 ` [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, 0 replies; 21+ messages in thread
From: Kunal Joshi @ 2023-11-10 8:15 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] 21+ messages in thread* [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support 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 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
@ 2023-11-10 8:15 ` Kunal Joshi
2023-11-10 8:11 ` Hogander, Jouni
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
` (6 subsequent siblings)
8 siblings, 1 reply; 21+ messages in thread
From: Kunal Joshi @ 2023-11-10 8:15 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>
---
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] 21+ messages in thread* Re: [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
@ 2023-11-10 8:11 ` Hogander, Jouni
0 siblings, 0 replies; 21+ messages in thread
From: Hogander, Jouni @ 2023-11-10 8:11 UTC (permalink / raw)
To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R
On Fri, 2023-11-10 at 13:45 +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)
> 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(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] 21+ messages in thread
* [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check 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 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_psr: added enum for panel replay Kunal Joshi
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_psr: modified psr_sink_support for pr compatability Kunal Joshi
@ 2023-11-10 8:15 ` Kunal Joshi
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
` (5 subsequent siblings)
8 siblings, 0 replies; 21+ messages in thread
From: Kunal Joshi @ 2023-11-10 8:15 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>
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..ee931c410 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 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] 21+ 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
` (2 preceding siblings ...)
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check " Kunal Joshi
@ 2023-11-10 8:15 ` Kunal Joshi
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
` (4 subsequent siblings)
8 siblings, 0 replies; 21+ 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] 21+ messages in thread* [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode 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
` (3 preceding siblings ...)
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 4/7] lib/igt_psr: modified psr_set " Kunal Joshi
@ 2023-11-10 8:15 ` Kunal Joshi
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
` (3 subsequent siblings)
8 siblings, 0 replies; 21+ 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_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 cd6a5dd5d..3e2c8808b 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] 21+ messages in thread* [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr
2023-11-10 8:15 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
` (4 preceding siblings ...)
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 5/7] lib/igt_psr: modified psr_get_mode " Kunal Joshi
@ 2023-11-10 8:15 ` Kunal Joshi
2023-11-10 8:14 ` Hogander, Jouni
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE Kunal Joshi
` (2 subsequent siblings)
8 siblings, 1 reply; 21+ messages in thread
From: Kunal Joshi @ 2023-11-10 8:15 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)
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 | 365 +++++++++++++++++++++++++++++++-----------
1 file changed, 269 insertions(+), 96 deletions(-)
diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
index 8485e9894..793d5de6c 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,
@@ -289,34 +395,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)
@@ -502,7 +594,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 +602,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 +610,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 +775,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++) {
@@ -747,115 +860,175 @@ 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);
-
- 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);
+ data.supports_psr2 = data.supports_psr2 | sink_support(&data, PSR_MODE_2);
+ 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);
+ }
+ }
}
}
--
2.25.1
^ permalink raw reply related [flat|nested] 21+ messages in thread* Re: [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
@ 2023-11-10 8:14 ` Hogander, Jouni
2023-11-10 8:25 ` Joshi, Kunal1
0 siblings, 1 reply; 21+ messages in thread
From: Hogander, Jouni @ 2023-11-10 8:14 UTC (permalink / raw)
To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R
On Fri, 2023-11-10 at 13:45 +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)
> v4: shorten output_supports_psr (Jouni)
> remove unused data members (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 | 365 +++++++++++++++++++++++++++++++---------
> --
> 1 file changed, 269 insertions(+), 96 deletions(-)
>
> diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
> index 8485e9894..793d5de6c 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,
> @@ -289,34 +395,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)
> @@ -502,7 +594,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 +602,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 +610,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 +775,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++) {
> @@ -747,115 +860,175 @@ 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);
> -
> - 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);
> + data.supports_psr2 = data.supports_psr2 |
> sink_support(&data, PSR_MODE_2);
You need to drop this line as well. Otherwise it wont build.
BR,
Jouni Högander
> + 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(&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] 21+ messages in thread* Re: [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr
2023-11-10 8:14 ` Hogander, Jouni
@ 2023-11-10 8:25 ` Joshi, Kunal1
0 siblings, 0 replies; 21+ messages in thread
From: Joshi, Kunal1 @ 2023-11-10 8:25 UTC (permalink / raw)
To: Hogander, Jouni, igt-dev@lists.freedesktop.org; +Cc: Murthy, Arun R
>> + igt_display_require(&data.display, data.drm_fd);
>> + data.supports_psr2 = data.supports_psr2 |
>> sink_support(&data, PSR_MODE_2);
> You need to drop this line as well. Otherwise it wont build.
>
> BR,
>
> Jouni Högander
Hello Jouni,
this was present in the legacy code and I didn't remove this,
It's used in test_setup function,
if (data->op_psr_mode == PSR_MODE_2)
igt_require(data->supports_psr2);
But now this logic is redundant so will remove this.
Thanks and Regards
Kunal Joshi
^ permalink raw reply [flat|nested] 21+ messages in thread
* [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE
2023-11-10 8:15 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
` (5 preceding siblings ...)
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr Kunal Joshi
@ 2023-11-10 8:15 ` Kunal Joshi
2023-11-10 9:08 ` [igt-dev] ✗ CI.xeBAT: failure for extend kms_psr test to validate pr (rev7) Patchwork
2023-11-10 9:25 ` [igt-dev] ✗ Fi.CI.BAT: " Patchwork
8 siblings, 0 replies; 21+ messages in thread
From: Kunal Joshi @ 2023-11-10 8:15 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] 21+ messages in thread* [igt-dev] ✗ CI.xeBAT: failure for extend kms_psr test to validate pr (rev7)
2023-11-10 8:15 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
` (6 preceding siblings ...)
2023-11-10 8:15 ` [igt-dev] [PATCH i-g-t 7/7] HAX PATCH DO NOT MERGE Kunal Joshi
@ 2023-11-10 9:08 ` Patchwork
2023-11-10 9:25 ` [igt-dev] ✗ Fi.CI.BAT: " Patchwork
8 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2023-11-10 9:08 UTC (permalink / raw)
To: Joshi, Kunal1; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 3250 bytes --]
== Series Details ==
Series: extend kms_psr test to validate pr (rev7)
URL : https://patchwork.freedesktop.org/series/125379/
State : failure
== Summary ==
CI Bug Log - changes from XEIGT_7582_BAT -> XEIGTPW_10159_BAT
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with XEIGTPW_10159_BAT absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in XEIGTPW_10159_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 (3 -> 3)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_10159_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_7582/bat-adlp-7/igt@kms_psr@primary_page_flip.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10159/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_7582/bat-atsm-2/igt@kms_psr@cursor_plane_move.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10159/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_7582/bat-dg2-oem2/igt@kms_psr@primary_page_flip.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10159/bat-dg2-oem2/igt@kms_psr@primary_page_flip.html
Known issues
------------
Here are the changes found in XEIGTPW_10159_BAT that come from known issues:
### IGT changes ###
#### Warnings ####
* igt@kms_frontbuffer_tracking@basic:
- bat-adlp-7: [FAIL][7] ([Intel XE#616] / [Intel XE#750]) -> [DMESG-FAIL][8] ([Intel XE#282] / [i915#2017])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10159/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html
[Intel XE#282]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/282
[Intel XE#535]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/535
[Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
[Intel XE#750]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/750
[i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017
Build changes
-------------
* IGT: IGT_7582 -> IGTPW_10159
IGTPW_10159: 10159
IGT_7582: 453b9df12fbc9fff561bdb4eb97992983e74c3d4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-485-b3890fb4386dcef68a96888141c4cc773f6241ce: b3890fb4386dcef68a96888141c4cc773f6241ce
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10159/index.html
[-- Attachment #2: Type: text/html, Size: 3971 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread* [igt-dev] ✗ Fi.CI.BAT: failure for extend kms_psr test to validate pr (rev7)
2023-11-10 8:15 [igt-dev] [PATCH i-g-t 0/7] extend kms_psr test to validate pr Kunal Joshi
` (7 preceding siblings ...)
2023-11-10 9:08 ` [igt-dev] ✗ CI.xeBAT: failure for extend kms_psr test to validate pr (rev7) Patchwork
@ 2023-11-10 9:25 ` Patchwork
8 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2023-11-10 9:25 UTC (permalink / raw)
To: Joshi, Kunal1; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 23660 bytes --]
== Series Details ==
Series: extend kms_psr test to validate pr (rev7)
URL : https://patchwork.freedesktop.org/series/125379/
State : failure
== Summary ==
CI Bug Log - changes from IGT_7582 -> IGTPW_10159
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_10159 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_10159, 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_10159/index.html
Participating hosts (34 -> 32)
------------------------------
Missing (2): bat-dg2-9 bat-adlp-11
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_10159:
### IGT changes ###
#### Possible regressions ####
* igt@i915_selftest@live@gt_pm:
- bat-adls-5: [PASS][1] -> [DMESG-FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-adls-5/igt@i915_selftest@live@gt_pm.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adls-5/igt@i915_selftest@live@gt_pm.html
* {igt@kms_psr@pr_cursor_blt} (NEW):
- bat-jsl-3: NOTRUN -> [SKIP][3] +41 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-jsl-3/igt@kms_psr@pr_cursor_blt.html
* {igt@kms_psr@pr_cursor_mmap_cpu} (NEW):
- bat-adlp-6: NOTRUN -> [SKIP][4] +20 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adlp-6/igt@kms_psr@pr_cursor_mmap_cpu.html
* {igt@kms_psr@pr_primary_mmap_cpu} (NEW):
- bat-adls-5: NOTRUN -> [SKIP][5] +20 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adls-5/igt@kms_psr@pr_primary_mmap_cpu.html
- bat-adln-1: NOTRUN -> [SKIP][6] +20 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adln-1/igt@kms_psr@pr_primary_mmap_cpu.html
* {igt@kms_psr@pr_primary_mmap_gtt} (NEW):
- bat-rplp-1: NOTRUN -> [SKIP][7] +62 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-rplp-1/igt@kms_psr@pr_primary_mmap_gtt.html
* {igt@kms_psr@pr_sprite_blt} (NEW):
- bat-dg2-11: NOTRUN -> [SKIP][8] +62 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-dg2-11/igt@kms_psr@pr_sprite_blt.html
- {bat-dg2-14}: NOTRUN -> [SKIP][9] +41 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-dg2-14/igt@kms_psr@pr_sprite_blt.html
* igt@kms_psr@primary_page_flip:
- bat-adls-5: [PASS][10] -> [SKIP][11] +3 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-adls-5/igt@kms_psr@primary_page_flip.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adls-5/igt@kms_psr@primary_page_flip.html
* {igt@kms_psr@psr2_cursor_plane_move@edp-1} (NEW):
- bat-adlp-6: NOTRUN -> [FAIL][12] +20 other tests fail
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adlp-6/igt@kms_psr@psr2_cursor_plane_move@edp-1.html
* {igt@kms_psr@psr2_cursor_plane_onoff@edp-1} (NEW):
- bat-adln-1: NOTRUN -> [FAIL][13] +20 other tests fail
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adln-1/igt@kms_psr@psr2_cursor_plane_onoff@edp-1.html
* igt@kms_psr@psr2_primary_mmap_gtt:
- fi-tgl-1115g4: NOTRUN -> [SKIP][14] +62 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-tgl-1115g4/igt@kms_psr@psr2_primary_mmap_gtt.html
* igt@kms_psr@psr2_primary_render:
- bat-mtlp-6: NOTRUN -> [SKIP][15] +62 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-mtlp-6/igt@kms_psr@psr2_primary_render.html
* igt@kms_psr@psr2_sprite_plane_onoff:
- bat-adlp-9: NOTRUN -> [SKIP][16] +62 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adlp-9/igt@kms_psr@psr2_sprite_plane_onoff.html
* {igt@kms_psr@psr_primary_blt} (NEW):
- fi-rkl-11600: NOTRUN -> [SKIP][17] +62 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-rkl-11600/igt@kms_psr@psr_primary_blt.html
* {igt@kms_psr@psr_primary_mmap_cpu} (NEW):
- bat-rpls-1: NOTRUN -> [SKIP][18] +62 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-rpls-1/igt@kms_psr@psr_primary_mmap_cpu.html
* {igt@kms_psr@psr_suspend} (NEW):
- bat-adlm-1: NOTRUN -> [SKIP][19] +62 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adlm-1/igt@kms_psr@psr_suspend.html
#### Warnings ####
* igt@kms_psr@cursor_plane_move:
- bat-adlm-1: [SKIP][20] ([i915#1072]) -> [SKIP][21] +3 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-adlm-1/igt@kms_psr@cursor_plane_move.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adlm-1/igt@kms_psr@cursor_plane_move.html
- bat-rpls-1: [SKIP][22] ([i915#1072]) -> [SKIP][23] +3 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-rpls-1/igt@kms_psr@cursor_plane_move.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-rpls-1/igt@kms_psr@cursor_plane_move.html
* igt@kms_psr@primary_page_flip:
- bat-adlp-9: [SKIP][24] ([i915#1072]) -> [SKIP][25] +3 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-adlp-9/igt@kms_psr@primary_page_flip.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-adlp-9/igt@kms_psr@primary_page_flip.html
- fi-rkl-11600: [SKIP][26] ([i915#1072]) -> [SKIP][27] +3 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/fi-rkl-11600/igt@kms_psr@primary_page_flip.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-rkl-11600/igt@kms_psr@primary_page_flip.html
- fi-tgl-1115g4: [SKIP][28] ([fdo#110189]) -> [SKIP][29] +3 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/fi-tgl-1115g4/igt@kms_psr@primary_page_flip.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-tgl-1115g4/igt@kms_psr@primary_page_flip.html
- bat-mtlp-6: [SKIP][30] ([i915#1072]) -> [SKIP][31] +3 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-mtlp-6/igt@kms_psr@primary_page_flip.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-mtlp-6/igt@kms_psr@primary_page_flip.html
* igt@kms_psr@sprite_plane_onoff:
- bat-dg2-11: [SKIP][32] ([i915#1072]) -> [SKIP][33] +3 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-dg2-11/igt@kms_psr@sprite_plane_onoff.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/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][34] +20 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-dg2-14/igt@kms_psr@psr2_sprite_mmap_cpu.html
New tests
---------
New tests have been introduced between IGT_7582 and IGTPW_10159:
### New IGT tests (84) ###
* igt@kms_psr@pr_basic:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_cursor_blt:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_cursor_mmap_cpu:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_cursor_mmap_gtt:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_cursor_plane_move:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_cursor_plane_onoff:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_cursor_render:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_dpms:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_no_drrs:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_primary_blt:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_primary_mmap_cpu:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_primary_mmap_gtt:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_primary_page_flip:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_primary_render:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_sprite_blt:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_sprite_mmap_cpu:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_sprite_mmap_gtt:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_sprite_plane_move:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_sprite_plane_onoff:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_sprite_render:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@pr_suspend:
- Statuses : 31 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_basic@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_cursor_blt@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_cursor_mmap_cpu@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_cursor_mmap_gtt@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_cursor_plane_move@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_cursor_plane_onoff@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_cursor_render@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_dpms@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_no_drrs@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_primary_blt@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_primary_mmap_cpu@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_primary_mmap_gtt@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_primary_page_flip@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_primary_render@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_sprite_blt@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_sprite_mmap_cpu@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_sprite_mmap_gtt@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_sprite_plane_move@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_sprite_plane_onoff@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_sprite_render@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr2_suspend@edp-1:
- Statuses : 2 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_basic:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_basic@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_blt:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_blt@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_mmap_cpu:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_mmap_cpu@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_mmap_gtt:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_mmap_gtt@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_plane_move:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_plane_move@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_plane_onoff:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_plane_onoff@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_render:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_cursor_render@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_dpms:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_dpms@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_no_drrs:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_no_drrs@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_blt:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_blt@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_mmap_cpu:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_mmap_cpu@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_mmap_gtt:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_mmap_gtt@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_page_flip:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_page_flip@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_render:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_primary_render@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_blt:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_blt@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_mmap_cpu:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_mmap_cpu@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_mmap_gtt:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_mmap_gtt@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_plane_move:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_plane_move@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_plane_onoff:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_plane_onoff@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_render:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_sprite_render@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_suspend:
- Statuses : 26 skip(s)
- Exec time: [0.0] s
* igt@kms_psr@psr_suspend@edp-1:
- Statuses : 5 pass(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_10159 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s0@smem:
- bat-jsl-3: [PASS][35] -> [INCOMPLETE][36] ([i915#9275])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-jsl-3/igt@gem_exec_suspend@basic-s0@smem.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-jsl-3/igt@gem_exec_suspend@basic-s0@smem.html
* igt@i915_suspend@basic-s3-without-i915:
- bat-jsl-3: [PASS][37] -> [FAIL][38] ([fdo#103375])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-jsl-3/igt@i915_suspend@basic-s3-without-i915.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-jsl-3/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770: NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#5190])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-hsw-4770/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
- bat-dg2-11: NOTRUN -> [SKIP][40] ([i915#1845] / [i915#9197]) +2 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
* {igt@kms_psr@pr_cursor_blt} (NEW):
- bat-atsm-1: NOTRUN -> [SKIP][41] ([i915#6078]) +62 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-atsm-1/igt@kms_psr@pr_cursor_blt.html
* {igt@kms_psr@pr_cursor_mmap_cpu} (NEW):
- fi-skl-6600u: NOTRUN -> [SKIP][42] ([fdo#109271]) +41 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-skl-6600u/igt@kms_psr@pr_cursor_mmap_cpu.html
* {igt@kms_psr@pr_sprite_blt} (NEW):
- fi-cfl-8700k: NOTRUN -> [SKIP][43] ([fdo#109271]) +62 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-cfl-8700k/igt@kms_psr@pr_sprite_blt.html
* {igt@kms_psr@pr_sprite_render} (NEW):
- fi-kbl-x1275: NOTRUN -> [SKIP][44] ([fdo#109271]) +62 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-kbl-x1275/igt@kms_psr@pr_sprite_render.html
* {igt@kms_psr@pr_suspend} (NEW):
- fi-skl-guc: NOTRUN -> [SKIP][45] ([fdo#109271]) +62 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-skl-guc/igt@kms_psr@pr_suspend.html
* igt@kms_psr@primary_page_flip:
- fi-skl-6600u: [PASS][46] -> [SKIP][47] ([fdo#109271]) +3 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/fi-skl-6600u/igt@kms_psr@primary_page_flip.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-skl-6600u/igt@kms_psr@primary_page_flip.html
* igt@kms_psr@psr2_dpms:
- fi-blb-e6850: NOTRUN -> [SKIP][48] ([fdo#109271]) +62 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-blb-e6850/igt@kms_psr@psr2_dpms.html
* igt@kms_psr@psr2_primary_render:
- fi-cfl-guc: NOTRUN -> [SKIP][49] ([fdo#109271]) +62 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-cfl-guc/igt@kms_psr@psr2_primary_render.html
* igt@kms_psr@psr2_sprite_mmap_cpu:
- fi-elk-e7500: NOTRUN -> [SKIP][50] ([fdo#109271]) +62 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-elk-e7500/igt@kms_psr@psr2_sprite_mmap_cpu.html
- fi-bsw-nick: NOTRUN -> [SKIP][51] ([fdo#109271]) +62 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-bsw-nick/igt@kms_psr@psr2_sprite_mmap_cpu.html
- fi-kbl-guc: NOTRUN -> [SKIP][52] ([fdo#109271]) +62 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-kbl-guc/igt@kms_psr@psr2_sprite_mmap_cpu.html
* igt@kms_psr@psr2_sprite_plane_move:
- fi-apl-guc: NOTRUN -> [SKIP][53] ([fdo#109271]) +62 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-apl-guc/igt@kms_psr@psr2_sprite_plane_move.html
* igt@kms_psr@psr2_sprite_render:
- fi-hsw-4770: NOTRUN -> [SKIP][54] ([fdo#109271]) +79 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-hsw-4770/igt@kms_psr@psr2_sprite_render.html
* igt@kms_psr@psr2_suspend:
- fi-cfl-8109u: NOTRUN -> [SKIP][55] ([fdo#109271]) +62 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-cfl-8109u/igt@kms_psr@psr2_suspend.html
- fi-kbl-7567u: NOTRUN -> [SKIP][56] ([fdo#109271]) +62 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-kbl-7567u/igt@kms_psr@psr2_suspend.html
* {igt@kms_psr@psr_cursor_blt} (NEW):
- fi-ivb-3770: NOTRUN -> [SKIP][57] ([fdo#109271]) +62 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-ivb-3770/igt@kms_psr@psr_cursor_blt.html
* {igt@kms_psr@psr_cursor_render} (NEW):
- fi-ilk-650: NOTRUN -> [SKIP][58] ([fdo#109271]) +62 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-ilk-650/igt@kms_psr@psr_cursor_render.html
* {igt@kms_psr@psr_dpms} (NEW):
- fi-glk-j4005: NOTRUN -> [SKIP][59] ([fdo#109271]) +62 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-glk-j4005/igt@kms_psr@psr_dpms.html
* {igt@kms_psr@psr_sprite_blt} (NEW):
- fi-pnv-d510: NOTRUN -> [SKIP][60] ([fdo#109271]) +62 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/fi-pnv-d510/igt@kms_psr@psr_sprite_blt.html
* igt@kms_psr@sprite_plane_onoff:
- bat-jsl-3: [PASS][61] -> [SKIP][62] ([fdo#112080]) +3 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html
#### Possible fixes ####
* igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
- bat-rplp-1: [ABORT][63] ([i915#8668]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html
#### Warnings ####
* igt@kms_psr@sprite_plane_onoff:
- bat-atsm-1: [SKIP][65] ([i915#1072]) -> [SKIP][66] ([i915#6078]) +3 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7582/bat-atsm-1/igt@kms_psr@sprite_plane_onoff.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/bat-atsm-1/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).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[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#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078
[i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
[i915#9197]: https://gitlab.freedesktop.org/drm/intel/issues/9197
[i915#9275]: https://gitlab.freedesktop.org/drm/intel/issues/9275
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7582 -> IGTPW_10159
CI-20190529: 20190529
CI_DRM_13859: 9155ae0ae05f320d84eaf2c4e81413bf937a5f3c @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_10159: 10159
IGT_7582: 453b9df12fbc9fff561bdb4eb97992983e74c3d4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10159/index.html
[-- Attachment #2: Type: text/html, Size: 29762 bytes --]
^ permalink raw reply [flat|nested] 21+ 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: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; 21+ messages in thread
From: Kunal Joshi @ 2023-11-10 9:52 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] 21+ 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 ` Kunal Joshi
0 siblings, 0 replies; 21+ 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] 21+ messages in thread
* [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check 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; 21+ messages in thread
From: Kunal Joshi @ 2023-11-10 7:16 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>
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 41c765c9b..6ac197fd0 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 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] 21+ messages in thread
* [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check 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; 21+ messages in thread
From: Kunal Joshi @ 2023-11-09 6: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>
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 054622d79..818151228 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 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] 21+ messages in thread
* [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check 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; 21+ messages in thread
From: Kunal Joshi @ 2023-11-09 3:37 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>
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 054622d79..818151228 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 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] 21+ 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 ` Kunal Joshi
2023-10-31 11:38 ` Hogander, Jouni
0 siblings, 1 reply; 21+ 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] 21+ 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 for pr compatability Kunal Joshi
@ 2023-10-31 11:38 ` Hogander, Jouni
0 siblings, 0 replies; 21+ 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] 21+ messages in thread
* [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: modified psr_active_check 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; 21+ messages in thread
From: Kunal Joshi @ 2023-10-25 14:27 UTC (permalink / raw)
To: igt-dev; +Cc: Kunal Joshi, Arun R Murthy
Whenever PR is acrive, 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] 21+ messages in thread