summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/eglfs/deviceintegration
diff options
context:
space:
mode:
authorPasi Petäjäjärvi <pasi.petajajarvi@qt.io>2021-03-30 17:40:03 +0300
committerPasi Petäjäjärvi <pasi.petajajarvi@qt.io>2021-04-01 06:37:35 +0000
commitd8347bd9fe6914cd8c9da4bbfebfa9fb230ef114 (patch)
treed9cedefb4f943722bbc061b26ac3855a02135dc5 /src/plugins/platforms/eglfs/deviceintegration
parentaa84de1afa78cf4b63239b35a4b65f1c9c4eab6c (diff)
eglfs: Newer Nvidia libdrm provide device instead driver module name
In newer Nvidia proprietary libdrm binaries display device name is actual device and not driver module name. Check which provided device name has been returned with EGL_DRM_DEVICE_FILE_EXT to choose correct function to open device. Pick-to: 5.15 Fixes: QTBUG-91184 Change-Id: I95f907dfa30057da0dca4ff32e0605c6bb10e0a5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/plugins/platforms/eglfs/deviceintegration')
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp
index 81ce7e1d71..749750042c 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp
@@ -58,7 +58,12 @@ bool QEglFSKmsEglDevice::open()
{
Q_ASSERT(fd() == -1);
- int fd = drmOpen(devicePath().toLocal8Bit().constData(), nullptr);
+ int fd = -1;
+
+ if (devicePath().compare("drm-nvdc") == 0)
+ fd = drmOpen(devicePath().toLocal8Bit().constData(), nullptr);
+ else
+ fd = qt_safe_open(devicePath().toLocal8Bit().constData(), O_RDWR);
if (Q_UNLIKELY(fd < 0))
qFatal("Could not open DRM (NV) device");