forked from pool/plymouth
6ce78afa6b
a real daemon, fixes bnc#889757 and probably others. Patch by Werner. OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=155
33 lines
1.5 KiB
Diff
33 lines
1.5 KiB
Diff
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!");
|
|
|