[PATCH i-g-t] tests/kms_sysfs_edid_timing: Skip the first detect
Khaled Almahallawy
khaled.almahallawy at intel.com
Sat May 18 00:33:45 UTC 2024
It is observed in some chrome devices that the first detect take a
long time due to PPS. In another device it was found the eDP panel
misbehaving and keep sending multiple long HPD during PPS which
trigger HPD storm warning. This first detect will always exceeds the
THRESHOLD_PER_CONNECTOR and will cause the test to fail.
Avoid that by skipping the measurement for the first detect.
Also adding more debug logs in the test and kernel to be able to
correlate the results.
Fixes: VLK-52052, VLK-56861
Cc: Swati Sharma <swati2.sharma at intel.com>
Cc: Mark Yacoub <markyacoub at chromium.org>
Cc: Shawn Lee <shawn.c.lee at intel.com>
Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Signed-off-by: Khaled Almahallawy <khaled.almahallawy at intel.com>
---
tests/kms_sysfs_edid_timing.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/tests/kms_sysfs_edid_timing.c b/tests/kms_sysfs_edid_timing.c
index dbc66c876..b7832dd83 100644
--- a/tests/kms_sysfs_edid_timing.c
+++ b/tests/kms_sysfs_edid_timing.c
@@ -50,7 +50,7 @@
#define THRESHOLD_PER_CONNECTOR 150
#define THRESHOLD_PER_CONNECTOR_MEAN 140
#define THRESHOLD_ALL_CONNECTORS_MEAN 100
-#define CHECK_TIMES 15
+#define CHECK_TIMES 16
IGT_TEST_DESCRIPTION("This test checks the time it takes to reprobe each "
"connector and fails if either the time it takes for "
@@ -89,15 +89,25 @@ igt_simple_main
for (i = 0; i < CHECK_TIMES; i++) {
struct timespec ts = {};
int fd;
+ uint64_t current;
if ((fd = open(path, O_WRONLY)) < 0)
continue;
+ igt_kmsg(KMSG_DEBUG "%s: start detect\n", path);
igt_nsec_elapsed(&ts);
igt_ignore_warn(write(fd, "detect\n", 7));
- igt_mean_add(&mean, igt_nsec_elapsed(&ts));
-
+ current = igt_nsec_elapsed(&ts);
+ igt_kmsg(KMSG_DEBUG "%s: end detect\n", path);
close(fd);
+
+ /* Skip first detect */
+ if(i == 0)
+ continue;
+
+ igt_mean_add(&mean, current);
+ igt_debug("%s: i=%d current=%02fdms mean.max=%02fms mean.min=%02fms\n",
+ de->d_name, i, current/1e6, mean.max/1e6, mean.min/1e6);
}
igt_debug("%s: mean.max %.2fns, %.2fus, %.2fms, "
--
2.34.1
More information about the igt-dev
mailing list