qtbase: workaround for incorrect DRM device

EGLFS queries DRM device path to be used, but his can occasionally
be incorrect. Allow use of kms.conf (via QT_QPA_EGLFS_KMS_CONFIG)
to be used to override the device.

Task-number: QTBUG-131887
Pick-to: 6.9
Change-Id: Ica0a572c02fafee9f2333a5d2eacd73d12864d8b
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
This commit is contained in:
Samuli Piippo 2024-12-17 11:49:02 +00:00
parent 69ede9570f
commit 0e9320d12e
2 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,40 @@
From 971b6e89947bd9e600a980e0e77f0d117ced8683 Mon Sep 17 00:00:00 2001
From: Samuli Piippo <samuli.piippo@qt.io>
Date: Mon, 9 Dec 2024 11:12:02 +0200
Subject: [PATCH] kms: allow DRM device path to be overridden
The backend-provided DRM device might not be the right one,
so allow kms config to override it.
Task-number: QTBUG-131887
Change-Id: Ied744ae7015eae64f4556f1528e0dbe8ae69d206
Upstream-Status: Pending
---
src/platformsupport/kmsconvenience/qkmsdevice.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/platformsupport/kmsconvenience/qkmsdevice.cpp b/src/platformsupport/kmsconvenience/qkmsdevice.cpp
index e49022d06ec..dc109aeb561 100644
--- a/src/platformsupport/kmsconvenience/qkmsdevice.cpp
+++ b/src/platformsupport/kmsconvenience/qkmsdevice.cpp
@@ -549,13 +549,13 @@ QKmsDevice::QKmsDevice(QKmsScreenConfig *screenConfig, const QString &path)
, m_has_atomic_support(false)
, m_crtc_allocator(0)
{
- if (m_path.isEmpty()) {
+ if (!m_screenConfig->devicePath().isEmpty()) {
m_path = m_screenConfig->devicePath();
qCDebug(qLcKmsDebug, "Using DRM device %s specified in config file", qPrintable(m_path));
- if (m_path.isEmpty())
- qFatal("No DRM device given");
- } else {
+ } else if (!m_path.isEmpty()) {
qCDebug(qLcKmsDebug, "Using backend-provided DRM device %s", qPrintable(m_path));
+ } else {
+ qFatal("No DRM device given");
}
}
--
2.43.0

View File

@ -22,6 +22,7 @@ SRC_URI += "\
file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
file://0004-Fix-qt.toolchain.cmake-for-SDK-use.patch \
file://0005-testlib-don-t-track-the-build-or-source-directories.patch \
file://0006-kms-allow-DRM-device-path-to-be-overridden.patch \
"
DEPENDS += "\