From 884c33835556c2485596be4bb53e57e6c37e202f Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Mon, 9 Dec 2024 11:12:02 +0200 Subject: [PATCH] egldevice: allow DRM device path to be overridden MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The backend-provided DRM device might not be the right one, so allow kms config to override it. Pick-to: 6.8 Task-number: QTBUG-131887 Change-Id: Ied744ae7015eae64f4556f1528e0dbe8ae69d206 Reviewed-by: Pasi Petäjäjärvi (cherry picked from commit c3bbbb22b8bc920e4937cf640fd1d2df3b0f9205) Reviewed-by: Qt Cherry-pick Bot --- .../qeglfskmsegldeviceintegration.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp index a213bc9bba0..ece19f46a49 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp @@ -225,11 +225,18 @@ QKmsDevice *QEglFSKmsEglDeviceIntegration::createDevice() if (Q_UNLIKELY(!query_egl_device())) qFatal("Could not set up EGL device!"); - const char *deviceName = m_funcs->query_device_string(m_egl_device, EGL_DRM_DEVICE_FILE_EXT); - if (Q_UNLIKELY(!deviceName)) - qFatal("Failed to query device name from EGLDevice"); + QString path = screenConfig()->devicePath(); + if (!path.isEmpty()) { + qCDebug(qLcEglfsKmsDebug) << "EGLDevice: Using DRM device" << path + << "specified in config file"; + } else { + path = QLatin1StringView( + m_funcs->query_device_string(m_egl_device, EGL_DRM_DEVICE_FILE_EXT)); + if (Q_UNLIKELY(path.isEmpty())) + qFatal("Failed to query device name from EGLDevice"); + } - return new QEglFSKmsEglDevice(this, screenConfig(), QLatin1StringView(deviceName)); + return new QEglFSKmsEglDevice(this, screenConfig(), path); } bool QEglFSKmsEglDeviceIntegration::query_egl_device()