summaryrefslogtreecommitdiff
path: root/src/backends/native/meta-monitor-manager-kms.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/native/meta-monitor-manager-kms.c')
-rw-r--r--src/backends/native/meta-monitor-manager-kms.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
index 6c7a87f01..df71d7e19 100644
--- a/src/backends/native/meta-monitor-manager-kms.c
+++ b/src/backends/native/meta-monitor-manager-kms.c
@@ -663,7 +663,8 @@ meta_monitor_manager_kms_initable_init (GInitable *initable,
primary_gpu_path,
error);
g_list_free_full (gpu_paths, g_free);
- if (!manager_kms->primary_gpu)
+ if (!manager_kms->primary_gpu ||
+ !meta_gpu_kms_can_have_outputs (manager_kms->primary_gpu, error))
return FALSE;
meta_monitor_manager_kms_connect_uevent_handler (manager_kms);
@@ -686,6 +687,14 @@ meta_monitor_manager_kms_initable_init (GInitable *initable,
continue;
}
+ if (!meta_gpu_kms_can_have_outputs (gpu_kms, &secondary_error))
+ {
+ g_warning ("Couldn't add secondary gpu '%s': %s",
+ gpu_path, secondary_error->message);
+ g_clear_object (&gpu_kms);
+ continue;
+ }
+
meta_monitor_manager_add_gpu (META_MONITOR_MANAGER (manager_kms),
META_GPU (gpu_kms));
}