diff options
Diffstat (limited to 'src/backends/native/meta-monitor-manager-kms.c')
-rw-r--r-- | src/backends/native/meta-monitor-manager-kms.c | 11 |
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)); } |