summaryrefslogtreecommitdiffstats
path: root/utils/kmscon/patches/101-drm-node-without-resources-has-no-displays.patch
blob: 38bbe1485ceb0866384be83c000341d41399f0f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
From 69f643f87db21db2820ead3efff8f08c712fa2dc Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
Date: Thu, 24 Sep 2026 22:43:44 +0100
Subject: [PATCH] drm: treat a node without resources as having no displays

A render-only drm node has neither crtcs nor connectors, and
drmModeGetResources returns NULL for it. The hotplug path logged that
as an error and returned -EACCES, and since it runs from the poll
handler the result was a tight error loop: on an rk3588, where panthor
takes card0 and the display controller card1, kmscon wrote 776 error
lines in eighty seconds while the console itself worked fine on card1.

Such a node simply has no displays to offer, so say so once at debug
level and carry on.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
 src/video/drm_shared.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/src/video/drm_shared.c
+++ b/src/video/drm_shared.c
@@ -1462,8 +1462,10 @@ int drm_video_hotplug(struct video *vide
 
 	res = drmModeGetResources(vdrm->fd);
 	if (!res) {
-		log_err("cannot retrieve drm resources");
-		return -EACCES;
+		/* A render-only node carries no crtcs or connectors. */
+		log_debug("no drm resources on %s, no displays here",
+			  vdrm->name);
+		return 0;
 	}
 
 	shl_dlist_for_each(iter, &video->displays)