]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
drm: don't light up unlit monitors
authorRay Strode <rstrode@redhat.com>
Wed, 9 Mar 2011 22:22:03 +0000 (17:22 -0500)
committerRay Strode <rstrode@redhat.com>
Wed, 9 Mar 2011 22:22:03 +0000 (17:22 -0500)
If a monitor is dark when plymouth is started, we shouldn't
try to light it up.  There are rules on which outputs can be
attached to which controllers and we're very likely to break
those rules just assigning things willy-nilly.

The kernel should set us up in the way it thinks is best anyway.
There's no reason to second guess the kernel here.

src/plugins/renderers/drm/plugin.c

index 0180cdd125d714bd75de150fa809ddb5ad634462..a418a598bd699211478dd909bbf7ee3606831e89 100644 (file)
@@ -620,36 +620,10 @@ close_device (ply_renderer_backend_t *backend)
   unload_driver (backend);
 }
 
-static bool
-controller_is_available (ply_renderer_backend_t *backend,
-                         uint32_t                controller_id)
-{
-  ply_list_node_t *node;
-
-  node = ply_list_get_first_node (backend->heads);
-  while (node != NULL)
-    {
-      ply_list_node_t *next_node;
-      ply_renderer_head_t *head;
-
-      head = (ply_renderer_head_t *) ply_list_node_get_data (node);
-      next_node = ply_list_get_next_node (backend->heads, node);
-
-      if (head->controller_id == controller_id)
-        return false;
-
-      node = next_node;
-    }
-
-  return true;
-}
-
 static drmModeCrtc *
 find_controller_for_encoder (ply_renderer_backend_t *backend,
                              drmModeEncoder         *encoder)
 {
-  int i;
-  uint32_t possible_crtcs;
   drmModeCrtc *controller;
 
   controller = NULL;
@@ -667,81 +641,6 @@ find_controller_for_encoder (ply_renderer_backend_t *backend,
         }
     }
 
-  /* Monitor cable is plugged in, but the monitor isn't lit
-   * yet. Let's pick an available controller and light it up
-   * ourselves.
-   */
-  for (i = 0,
-       possible_crtcs = encoder->possible_crtcs;
-       possible_crtcs != 0x0;
-       i++, possible_crtcs >>= 1)
-    {
-      /* controller isn't compatible with encoder
-       */
-      if ((possible_crtcs & 0x1) == 0)
-        continue;
-
-      /* controller is already being used
-       */
-      if (!controller_is_available (backend, backend->resources->crtcs[i]))
-        continue;
-
-      assert (i < backend->resources->count_crtcs);
-      controller = drmModeGetCrtc (backend->device_fd,
-                                   backend->resources->crtcs[i]);
-
-      if (controller != NULL)
-        break;
-    }
-
-  return controller;
-}
-
-static bool
-encoder_is_available (ply_renderer_backend_t *backend,
-                      uint32_t                encoder_id)
-{
-  ply_list_node_t *node;
-
-  node = ply_list_get_first_node (backend->heads);
-  while (node != NULL)
-    {
-      ply_list_node_t *next_node;
-      ply_renderer_head_t *head;
-
-      head = (ply_renderer_head_t *) ply_list_node_get_data (node);
-      next_node = ply_list_get_next_node (backend->heads, node);
-
-      if (head->encoder_id == encoder_id)
-        return false;
-
-      node = next_node;
-    }
-
-  return true;
-}
-
-static drmModeEncoder *
-find_unused_encoder_for_connector (ply_renderer_backend_t *backend,
-                                   drmModeConnector       *connector)
-{
-  int i;
-  drmModeEncoder *encoder;
-
-  for (i = 0; i < connector->count_encoders; i++)
-    {
-      encoder = drmModeGetEncoder (backend->device_fd,
-                                   connector->encoders[i]);
-
-      if (encoder == NULL)
-        continue;
-
-      if (encoder_is_available (backend, encoder->encoder_id))
-        return encoder;
-
-      drmModeFreeEncoder (encoder);
-    }
-
   return NULL;
 }
 
@@ -768,9 +667,7 @@ find_encoder_for_connector (ply_renderer_backend_t *backend,
       drmModeFreeEncoder (encoder);
     }
 
-  /* No encoder yet, pick one
-   */
-  return find_unused_encoder_for_connector (backend, connector);
+  return NULL;
 }
 
 static bool