Blame SOURCES/0005-ply-device-manager-verify_add_or_change-Move-local_c.patch

01bb59
From 406376fbe89078678d68392ea76151ecb4f0e30a Mon Sep 17 00:00:00 2001
01bb59
From: Hans de Goede <hdegoede@redhat.com>
01bb59
Date: Mon, 28 Feb 2022 16:36:58 +0100
01bb59
Subject: [PATCH 5/6] ply-device-manager: verify_add_or_change(): Move
01bb59
 local_console_is_text check
01bb59
01bb59
Move the local_console_is_text check outside of the
01bb59
"if (subsytem == SUBSYSTEM_DRM)" block.
01bb59
01bb59
This check is equally relevant for SUBSYSTEM_FRAME_BUFFER.
01bb59
01bb59
Note by itself this is a no-op since verify_add_or_change() *always*
01bb59
returns false for SUBSYSTEM_FRAME_BUFFER devices.
01bb59
01bb59
This is a preparation patch for making verify_add_or_change() not
01bb59
return false when manager->device_timeout_elapsed is set.
01bb59
01bb59
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
01bb59
---
01bb59
 src/libply-splash-core/ply-device-manager.c | 10 +++++-----
01bb59
 1 file changed, 5 insertions(+), 5 deletions(-)
01bb59
01bb59
diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
01bb59
index 6b7ccd6..bff4982 100644
01bb59
--- a/src/libply-splash-core/ply-device-manager.c
01bb59
+++ b/src/libply-splash-core/ply-device-manager.c
01bb59
@@ -423,68 +423,68 @@ on_drm_udev_add_or_change (ply_device_manager_t *manager,
01bb59
                 /* We also try to create the renderer again on change events,
01bb59
                  * renderer creation fails when no outputs are connected and
01bb59
                  * this may have changed.
01bb59
                  */
01bb59
                 create_devices_for_udev_device (manager, device);
01bb59
                 return;
01bb59
         }
01bb59
 
01bb59
         /* Renderer exists, bail if this is not a change event */
01bb59
         if (strcmp (action, "change"))
01bb59
                 return;
01bb59
 
01bb59
         changed = ply_renderer_handle_change_event (renderer);
01bb59
         if (changed) {
01bb59
                 free_displays_for_renderer (manager, renderer);
01bb59
                 create_pixel_displays_for_renderer (manager, renderer);
01bb59
         }
01bb59
 }
01bb59
 
01bb59
 static bool
01bb59
 verify_add_or_change (ply_device_manager_t *manager,
01bb59
                       const char           *action,
01bb59
                       const char           *device_path,
01bb59
                       struct udev_device   *device)
01bb59
 {
01bb59
         const char *subsystem = udev_device_get_subsystem (device);
01bb59
 
01bb59
         if (strcmp (action, "add") && strcmp (action, "change"))
01bb59
                 return false;
01bb59
 
01bb59
+        if (manager->local_console_managed && manager->local_console_is_text) {
01bb59
+                ply_trace ("ignoring since we're already using text splash for local console");
01bb59
+                return false;
01bb59
+        }
01bb59
+
01bb59
         subsystem = udev_device_get_subsystem (device);
01bb59
 
01bb59
         if (strcmp (subsystem, SUBSYSTEM_DRM) == 0) {
01bb59
-                if (manager->local_console_managed && manager->local_console_is_text) {
01bb59
-                        ply_trace ("ignoring since we're already using text splash for local console");
01bb59
-                        return false;
01bb59
-                }
01bb59
-
01bb59
                 if (!verify_drm_device (device)) {
01bb59
                         ply_trace ("ignoring since we only handle SimpleDRM devices after timeout");
01bb59
                         return false;
01bb59
                 }
01bb59
         } else {
01bb59
                 ply_trace ("ignoring since we only handle subsystem %s devices after timeout", subsystem);
01bb59
                 return false;
01bb59
         }
01bb59
 
01bb59
         return true;
01bb59
 }
01bb59
 
01bb59
 static bool
01bb59
 duplicate_device_path (ply_list_t *events, const char *device_path)
01bb59
 {
01bb59
         struct udev_device *device;
01bb59
         ply_list_node_t *node;
01bb59
 
01bb59
         for (node = ply_list_get_first_node (events);
01bb59
              node; node = ply_list_get_next_node (events, node)) {
01bb59
                 device = ply_list_node_get_data (node);
01bb59
 
01bb59
                 if (strcmp (udev_device_get_devnode (device), device_path) == 0)
01bb59
                         return true;
01bb59
         }
01bb59
 
01bb59
         return false;
01bb59
 }
01bb59
 
01bb59
 static void
01bb59
-- 
01bb59
2.37.0.rc1
01bb59