summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/devicediscovery
diff options
context:
space:
mode:
Diffstat (limited to 'src/platformsupport/devicediscovery')
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_p.h3
-rw-r--r--src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp12
2 files changed, 12 insertions, 3 deletions
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_p.h b/src/platformsupport/devicediscovery/qdevicediscovery_p.h
index c78c57b86f..d9bd9a78e4 100644
--- a/src/platformsupport/devicediscovery/qdevicediscovery_p.h
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_p.h
@@ -72,7 +72,8 @@ public:
Device_Touchscreen = 0x04,
Device_Keyboard = 0x08,
Device_DRM = 0x10,
- Device_Tablet = 0x20,
+ Device_DRM_PrimaryGPU = 0x20,
+ Device_Tablet = 0x40,
Device_InputMask = Device_Mouse | Device_Touchpad | Device_Touchscreen | Device_Keyboard | Device_Tablet,
Device_VideoMask = Device_DRM
};
diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp b/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp
index 9e0ce47e18..ac902b4140 100644
--- a/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp
+++ b/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp
@@ -149,8 +149,16 @@ QStringList QDeviceDiscovery::scanConnectedDevices()
QString candidate = QString::fromUtf8(udev_device_get_devnode(udevice));
if ((m_types & Device_InputMask) && candidate.startsWith(QLatin1String(QT_EVDEV_DEVICE)))
devices << candidate;
- if ((m_types & Device_VideoMask) && candidate.startsWith(QLatin1String(QT_DRM_DEVICE)))
- devices << candidate;
+ if ((m_types & Device_VideoMask) && candidate.startsWith(QLatin1String(QT_DRM_DEVICE))) {
+ if (m_types & Device_DRM_PrimaryGPU) {
+ udev_device *pci = udev_device_get_parent_with_subsystem_devtype(udevice, "pci", 0);
+ if (pci) {
+ if (qstrcmp(udev_device_get_sysattr_value(pci, "boot_vga"), "1") == 0)
+ devices << candidate;
+ }
+ } else
+ devices << candidate;
+ }
udev_device_unref(udevice);
}