Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Louis Chauvet <louis.chauvet@bootlin.com>
To: igt-dev@lists.freedesktop.org, ihf@google.com,
	markyacoub@google.com,  thomas.petazzoni@bootlin.com,
	Louis Chauvet <louis.chauvet@bootlin.com>
Subject: [PATCH i-g-t RFC 09/13] tests/chamelium: Introduce 4k stress edid
Date: Wed, 05 Jun 2024 16:30:21 +0200	[thread overview]
Message-ID: <20240605-dev-remove-static-ports-v1-9-665f25b7a4db@bootlin.com> (raw)
In-Reply-To: <20240605-dev-remove-static-ports-v1-0-665f25b7a4db@bootlin.com>

Introduce some helpers to uses monitor edid and upload them to the
chamelium.

Complement the EDID test to also test 4k screens. The current database
contains EDID for HDMI and DP ports.

Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
 tests/chamelium/v3/kms_chamelium_v3_edid.c | 45 ++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/tests/chamelium/v3/kms_chamelium_v3_edid.c b/tests/chamelium/v3/kms_chamelium_v3_edid.c
index acf62ba78a32..76bdddd81174 100644
--- a/tests/chamelium/v3/kms_chamelium_v3_edid.c
+++ b/tests/chamelium/v3/kms_chamelium_v3_edid.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: MIT
 
 #include <igt.h>
+#include "monitor_edids/monitor_edids_helper.h"
 #include "chamelium/v3/igt_chamelium.h"
 
 static void collect_and_compare_edid(int drm_fd,
@@ -54,6 +55,22 @@ static void igt_custom_edid_type_read(int drm_fd, struct igt_chamelium_rpc *cham
 	upload_and_read_edid(drm_fd, chamelium, port_mapping, igt_kms_get_custom_edid(edid));
 }
 
+static void edid_stress_resolution(int drm_fd, struct igt_chamelium_rpc *chamelium,
+				   struct chamelium_rpc_port_mapping *port_mapping,
+				   monitor_edid edids_list[],
+				   size_t edids_list_len)
+{
+	for (int i = 0; i < edids_list_len; i++) {
+		struct edid *edid = edid_from_monitor_edid(&edids_list[i]);
+
+		igt_info("Testing out the EDID for %s\n",
+			 monitor_edid_get_name(&edids_list[i]));
+		upload_and_read_edid(drm_fd, chamelium, port_mapping, edid);
+		free(edid);
+	}
+}
+
+
 igt_main {
 	struct igt_chamelium_rpc *chamelium;
 	int drm_fd;
@@ -86,6 +103,34 @@ igt_main {
 		}
 	}
 
+	igt_describe("Read many different 4k EDID from the chamelium");
+	igt_subtest_with_dynamic("edid-stress-4k") {
+		struct chamelium_rpc_port_mapping *port, *tmp;
+
+		igt_list_for_each_entry_safe(port, tmp, chamelium_rpc_get_port_mapping(chamelium),
+					     link) {
+			igt_dynamic_f("port-%d", port->port_id) {
+				drmModeConnectorPtr connector;
+				size_t edid_count;
+				char *name;
+
+				name = chamelium_get_port_name_rpc(chamelium, port->port_id);
+				igt_info("Testing port %s (%s)\n", port->connector_name, name);
+				free(name);
+
+				connector = chamelium_rpc_port_mapping_get_connector(port, drm_fd);
+				igt_assert(connector);
+				edid_stress_resolution(drm_fd, chamelium, port,
+						       get_edid_for_connector_type(connector->connector_type,
+										   &edid_count,
+										   true),
+						       edid_count);
+
+				drmModeFreeConnector(connector);
+			}
+		}
+	}
+
 	igt_fixture {
 		chamelium_rpc_uninit(chamelium);
 		drm_close_driver(drm_fd);

-- 
2.43.2


  parent reply	other threads:[~2024-06-05 14:30 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-05 14:30 [PATCH i-g-t RFC 00/13] tests/chamelium: Integrate the chamelium v3 Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 01/13] tests/chamelium: Extract chamelium v2 tests into its own directory Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 02/13] lib/chamelium: Extract chamelium v2 wrapper " Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 03/13] lib/chamelium: Change build options to split chamelium v2 and v3 Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 04/13] lib/chamelium: Introduce the foundation for the chamelium v3 library Louis Chauvet
2024-06-11 16:45   ` Kamil Konieczny
2024-06-05 14:30 ` [PATCH i-g-t RFC 05/13] lib/chamelium: Implement all RPC calls for the chamelium v3 Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 06/13] lib/chamelium: Introduce a simple chamelium v3 test Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 07/13] tests/chamelium: Introduce basic edid test Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 08/13] lib/monitor_edids: Introduce helpers to get EDID from a monitor EDID Louis Chauvet
2024-06-05 14:30 ` Louis Chauvet [this message]
2024-06-05 14:30 ` [PATCH i-g-t RFC 10/13] tests/chamelium: Introduce non-4k stress edid Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 11/13] tests/chamelium: Introduce test resolution Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 12/13] tests/chamelium: Introduce test sleep Louis Chauvet
2024-06-05 14:30 ` [PATCH i-g-t RFC 13/13] tests/chamelium: Add MST test Louis Chauvet
2024-06-05 16:36 ` ✗ Fi.CI.BUILD: failure for tests/chamelium: Integrate the chamelium v3 Patchwork
2024-06-07 19:05 ` ✗ GitLab.Pipeline: warning " Patchwork
2024-06-11 16:51 ` [PATCH i-g-t RFC 00/13] " Kamil Konieczny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240605-dev-remove-static-ports-v1-9-665f25b7a4db@bootlin.com \
    --to=louis.chauvet@bootlin.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=ihf@google.com \
    --cc=markyacoub@google.com \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox