[psplash,RFC,13/14] psplash-drm.c: Allocate resources only for the first connector

Message ID 20220425075954.10427-14-vasyl.vavrychuk@opensynergy.com
State New
Headers show
Series Implement DRM backend | expand

Commit Message

Vasyl Vavrychuk April 25, 2022, 7:59 a.m. UTC
Since splash screen is shown only on the first scanout, there is no need
to allocate resources for next connectors.

Signed-off-by: Vasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
---
 psplash-drm.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Patch

diff --git a/psplash-drm.c b/psplash-drm.c
index 2468cf1..5e56286 100644
--- a/psplash-drm.c
+++ b/psplash-drm.c
@@ -39,6 +39,8 @@ 
 #include <xf86drmMode.h>
 #include "psplash-drm.h"
 
+#define MIN(a,b) ((a) < (b) ? (a) : (b))
+
 struct modeset_dev;
 static int modeset_find_crtc(int fd, drmModeRes *res, drmModeConnector *conn,
 			     struct modeset_dev *dev);
@@ -196,8 +198,10 @@  static int modeset_prepare(int fd)
 		return -errno;
 	}
 
-	/* iterate all connectors */
-	for (i = 0; i < res->count_connectors; ++i) {
+	/* ~iterate all connectors~ - Use first connector if present. It is
+	   optimization related workaround since psplash supports drawing splash
+	   screen on one scanout anyway. */
+	for (i = 0; i < MIN(res->count_connectors, 1); ++i) {
 		/* get information for each connector */
 		conn = drmModeGetConnector(fd, res->connectors[i]);
 		if (!conn) {