2014-09-12 14:52:26 +02:00
|
|
|
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!");
|
|
|
|
|