Accepting request 889267 from home:qzhao:branches:Base:System

Pickup plymouth-only_use_fb_for_cirrus_bochs.patch: Currently our kernel hardware support need this fix, and boo#1172028 will be fix seperately (bnc#888590 boo#1172028 bsc#1181913).

OBS-URL: https://build.opensuse.org/request/show/889267
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=298
This commit is contained in:
Cliff Zhao 2021-04-29 11:05:32 +00:00 committed by Git OBS Bridge
parent 41bf0d857f
commit 03826f648a
4 changed files with 54 additions and 19 deletions

View File

@ -1,13 +0,0 @@
diff -Nura plymouth-0.9.5+git20201026+53c83cc/src/libply-splash-core/ply-device-manager.c plymouth-0.9.5+git20201026+53c83cc_new/src/libply-splash-core/ply-device-manager.c
--- plymouth-0.9.5+git20201026+53c83cc/src/libply-splash-core/ply-device-manager.c 2021-04-29 17:14:25.680003513 +0800
+++ plymouth-0.9.5+git20201026+53c83cc_new/src/libply-splash-core/ply-device-manager.c 2021-04-29 17:17:27.379610273 +0800
@@ -280,7 +280,8 @@
} else if (strcmp (subsystem, SUBSYSTEM_FRAME_BUFFER) == 0) {
ply_trace ("found frame buffer device %s", device_path);
if (!fb_device_has_drm_device (manager, device))
- renderer_type = PLY_RENDERER_TYPE_FRAME_BUFFER;
+ /* renderer_type = PLY_RENDERER_TYPE_FRAME_BUFFER; */
+ ply_trace ("avoiding use of framebuffer to not block DRM drivers from working");
else
ply_trace ("ignoring, since there's a DRM device associated with it");
}

View File

@ -0,0 +1,47 @@
From: Fabian Vogt <fvogt@suse.com>
Subject: force fb for cirrus and bochs, force drm otherwise
References: bsc#888590, bsc#980750
DRM does not work well with cirrus and bochs (no display) but the framebuffer driver
prevents DRM drivers from loading.
As we need to support cirrus for libvirt and bochs for QEMU, we cannot just remove support for frame-buffer.
Index: plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-core/ply-device-manager.c
===================================================================
--- plymouth-0.9.3+git20180807.7663b0c.orig/src/libply-splash-core/ply-device-manager.c 2018-08-07 17:41:15.000000000 +0200
+++ plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-core/ply-device-manager.c 2018-08-17 19:58:41.178821647 +0200
@@ -228,13 +228,33 @@ create_devices_for_udev_device (ply_devi
subsystem = udev_device_get_subsystem (device);
ply_trace ("device subsystem is %s", subsystem);
+ const char *card_vendor = udev_device_get_sysattr_value (device, "device/vendor");
+ const char *card_device = udev_device_get_sysattr_value (device, "device/device");
+ bool use_fb = false;
+ if (card_vendor) {
+ /* Cirrus */
+ if (strcmp ("0x1013", card_vendor) == 0)
+ use_fb = true;
+ /* "Technical Corp", also used by bochs */
+ else if (strcmp ("0x1234", card_vendor) == 0)
+ use_fb = strcmp("0x1111", card_device) == 0;
+ }
+
if (subsystem != NULL && strcmp (subsystem, SUBSYSTEM_DRM) == 0) {
ply_trace ("found DRM device %s", device_path);
renderer_type = PLY_RENDERER_TYPE_DRM;
+ if (use_fb) {
+ ply_trace ("forcing use of framebuffer for cirrusdrmfb");
+ renderer_type = PLY_RENDERER_TYPE_NONE;
+ }
} else if (strcmp (subsystem, SUBSYSTEM_FRAME_BUFFER) == 0) {
ply_trace ("found frame buffer device %s", device_path);
- if (!fb_device_has_drm_device (manager, device))
+ if (use_fb) {
renderer_type = PLY_RENDERER_TYPE_FRAME_BUFFER;
+ }
+ else if (!fb_device_has_drm_device (manager, device)) {
+ ply_trace ("avoiding use of framebuffer to not block DRM drivers from working");
+ }
else
ply_trace ("ignoring, since there's a DRM device associated with it");
}

View File

@ -1,8 +1,9 @@
-------------------------------------------------------------------
Wed Feb 24 08:25:42 UTC 2021 - Stefan Dirsch <sndirsch@suse.com>
Wed Feb 24 08:25:42 UTC 2021 - Cliff Zhao <qzhao@suse.com>
- Add plymouth-nolonger-use-framebuffer-lab-needed.patch: Make
plymouth nolonger use framebuffer(bnc#1181913).
- Pickup plymouth-only_use_fb_for_cirrus_bochs.patch: Currently our
kernel hardware support need this fix, and boo#1172028 will be
fix seperately (bnc#888590 boo#1172028 bsc#1181913).
-------------------------------------------------------------------
Sat Feb 13 14:25:36 UTC 2021 - Arjen de Korte <suse+build@de-korte.org>

View File

@ -47,8 +47,8 @@ Patch3: plymouth-manpages.patch
Patch4: plymouth-no-longer-modify-conf-to-drop-isopensuse-macro.patch
# PATCH-FIX-OPENSUSE plymouth-disable-fedora-logo.patch qzhao@opensuse.org -- Disable the fedora logo reference which is not in openSUSE.
Patch6: plymouth-disable-fedora-logo.patch
# PATCH-FIX-OPENSUSE plymouth-nolonger-use-framebuffer-lab-needed.patch bnc#1181913 sndirsch@suse.com -- Make plymouth nolonger use framebuffer.
Patch7: plymouth-nolonger-use-framebuffer-lab-needed.patch
# PATCH-FIX-OPENSUSE plymouth-only_use_fb_for_cirrus_bochs.patch bnc#888590 boo#1172028 bsc#1181913 fvogt@suse.com -- force fb for cirrus and bochs, force drm otherwise. replace removal of framebuffer driver and plymouth-ignore-cirrusdrm.patch with single patch.
Patch7: plymouth-only_use_fb_for_cirrus_bochs.patch
# PATCH-FIX-UPSTREAM 0001-Add-label-ft-plugin.patch boo#959986 fvogt@suse.com -- add ability to output text in initrd needed for encryption.
Patch1000: 0001-Add-label-ft-plugin.patch
# PATCH-FIX-UPSTREAM 0002-Install-label-ft-plugin-into-initrd-if-available.patch boo#959986 fvogt@suse.com -- add ability to output text in initrd needed for encryption.