diff --git a/data/61-mutter.rules b/data/61-mutter.rules index e2901a284..bfe63a8e9 100644 --- a/data/61-mutter.rules +++ b/data/61-mutter.rules @@ -1,3 +1,4 @@ DRIVERS=="i915", SUBSYSTEM=="drm", TAG+="mutter-device-disable-kms-modifiers" DRIVERS=="nouveau", SUBSYSTEM=="drm", TAG+="mutter-device-disable-kms-modifiers" DRIVERS=="amdgpu", SUBSYSTEM=="drm", TAG+="mutter-device-disable-kms-modifiers" +DRIVER=="vkms", SUBSYSTEM=="platform", TAG+="mutter-device-ignore" diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c index f907acd96..0fcc00c91 100644 --- a/src/backends/native/meta-backend-native.c +++ b/src/backends/native/meta-backend-native.c @@ -468,6 +468,12 @@ on_udev_device_added (MetaUdev *udev, } } + if (meta_is_udev_device_ignore (device)) + { + g_message ("Ignoring DRM device '%s' (from udev rule)", device_path); + return; + } + new_gpu_kms = create_gpu_from_udev_device (native, device, &error); if (!new_gpu_kms) { diff --git a/src/backends/native/meta-udev.c b/src/backends/native/meta-udev.c index de05e2e4e..9fd84e98b 100644 --- a/src/backends/native/meta-udev.c +++ b/src/backends/native/meta-udev.c @@ -102,6 +102,12 @@ meta_is_udev_device_disable_modifiers (GUdevDevice *device) "mutter-device-disable-kms-modifiers"); } +gboolean +meta_is_udev_device_ignore (GUdevDevice *device) +{ + return meta_has_udev_device_tag (device, "mutter-device-ignore"); +} + gboolean meta_is_udev_device_preferred_primary (GUdevDevice *device) { diff --git a/src/backends/native/meta-udev.h b/src/backends/native/meta-udev.h index 360e06213..7b179329e 100644 --- a/src/backends/native/meta-udev.h +++ b/src/backends/native/meta-udev.h @@ -34,6 +34,8 @@ gboolean meta_is_udev_device_boot_vga (GUdevDevice *device); gboolean meta_is_udev_device_disable_modifiers (GUdevDevice *device); +gboolean meta_is_udev_device_ignore (GUdevDevice *device); + gboolean meta_is_udev_device_preferred_primary (GUdevDevice *device); gboolean meta_udev_is_drm_device (MetaUdev *udev,