[PATCH i-g-t v2] tests/kms_sysfs_edid_timing: Skip the first detect

Khaled Almahallawy khaled.almahallawy at intel.com
Thu May 23 00:04:09 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.

v2: Add comment summarize why skip first detect (Manasi)
    Fix commit message and check code formatting (Kamil)

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>
Reviewed-by: Manasi Navare <navaremanasi at chromium.org>
Signed-off-by: Khaled Almahallawy <khaled.almahallawy at intel.com>
---
 tests/kms_sysfs_edid_timing.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/tests/kms_sysfs_edid_timing.c b/tests/kms_sysfs_edid_timing.c
index dbc66c876..763d36d32 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,28 @@ 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 to account for slower PPS or
+			 * misbehaving panel that has non-standard HPDs behavior
+			 */
+			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