plymouth/plymouth-ignore-cirrusdrm.patch

33 lines
1.5 KiB
Diff
Raw Normal View History

Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
===================================================================
--- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.c
+++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
@@ -123,6 +123,9 @@ fb_device_has_drm_device (ply_device_man
const char *id_path;
bool has_drm_device = false;
+ const char *card_name = udev_device_get_sysattr_value (fb_device, "name");
+ ply_trace("First method gives us: %s", card_name);
+
/* We want to see if the framebuffer is associated with a DRM-capable
* graphics card, if it is, we'll use the DRM device */
card_matches = udev_enumerate_new (manager->udev_context);
@@ -149,8 +152,15 @@ fb_device_has_drm_device (ply_device_man
card_path = udev_list_entry_get_name (card_entry);
card_device = udev_device_new_from_syspath (manager->udev_context, card_path);
card_node = udev_device_get_devnode (card_device);
- if (card_node != NULL)
- has_drm_device = true;
+ if (card_node != NULL) {
+ /* don't consider drm driver for cirrus usable */
+ const char *card_name = udev_device_get_sysattr_value (card_device, "name");
+ ply_trace("Second method gives us: %s", card_name);
+ if (card_name && strcmp ("cirrusdrmfb", card_name) == 0)
+ has_drm_device = false;
+ else
+ has_drm_device = true;
+ }
else
ply_trace ("no card node!");