[PATCH libdrm] modetest: Try and open device using drmOpenDevice first

Marek Vasut marex at denx.de
Mon May 22 00:45:13 UTC 2023


This way, it is possible to use modetest -D to specify a card in /dev/dri/cardN
which is esp. useful on systems which have multiple cards, with identical modules
and where it is otherwise impossible to discern the different cards via drmOpen().
One such example is i.MX8M Plus, which has three such cards, one for DSI, one for
LVDS, and one for HDMI.

Signed-off-by: Marek Vasut <marex at denx.de>
---
 tests/util/kms.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tests/util/kms.c b/tests/util/kms.c
index 34a84180..31087522 100644
--- a/tests/util/kms.c
+++ b/tests/util/kms.c
@@ -38,6 +38,7 @@
  */
 
 #include <errno.h>
+#include <fcntl.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -142,6 +143,16 @@ int util_open(const char *device, const char *module)
 	} else {
 		unsigned int i;
 
+		printf("trying to open device '%s'...", device);
+
+		fd = open(device, O_RDWR | O_CLOEXEC);
+		if (fd < 0) {
+			printf("failed\n");
+		} else {
+			printf("done\n");
+			return fd;
+		}
+
 		for (i = 0; i < ARRAY_SIZE(modules); i++) {
 			printf("trying to open device '%s'...", modules[i]);
 
-- 
2.39.2



More information about the dri-devel mailing list