forked from rpms/plymouth
Add patches from upstream fixing details view on kernels build with
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
This commit is contained in:
parent
61f6bb5711
commit
ccb48d1b6d
@ -0,0 +1,36 @@
|
|||||||
|
From eb147e52b123070ab8839c3f59aaecc43fcc8652 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Mon, 25 Jun 2018 22:02:07 +0200
|
||||||
|
Subject: [PATCH 1/3] renderer: support reactivating renderer without closing
|
||||||
|
it first
|
||||||
|
|
||||||
|
At the moment, ply_renderer_activate() doesn't work immediately following
|
||||||
|
ply_renderer_deactivate(). This is because the renderer isn't marked
|
||||||
|
inactive until it's closed.
|
||||||
|
|
||||||
|
This commit marks the renderer inactive when it's deactivated.
|
||||||
|
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=107047
|
||||||
|
---
|
||||||
|
src/libply-splash-core/ply-renderer.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/libply-splash-core/ply-renderer.c b/src/libply-splash-core/ply-renderer.c
|
||||||
|
index b9059ef..ecf7082 100644
|
||||||
|
--- a/src/libply-splash-core/ply-renderer.c
|
||||||
|
+++ b/src/libply-splash-core/ply-renderer.c
|
||||||
|
@@ -314,7 +314,8 @@ ply_renderer_deactivate (ply_renderer_t *renderer)
|
||||||
|
{
|
||||||
|
assert (renderer->plugin_interface != NULL);
|
||||||
|
|
||||||
|
- return renderer->plugin_interface->deactivate (renderer->backend);
|
||||||
|
+ renderer->plugin_interface->deactivate (renderer->backend);
|
||||||
|
+ renderer->is_active = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
--
|
||||||
|
2.17.1
|
||||||
|
|
@ -0,0 +1,61 @@
|
|||||||
|
From 778e0fb77a9dfb85270242f1238eba237488eb48 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Mon, 25 Jun 2018 16:55:39 +0200
|
||||||
|
Subject: [PATCH 2/3] main: move ply_device_manager_deactivate_renderers() into
|
||||||
|
hide_splash()
|
||||||
|
|
||||||
|
hide_splash() should be the counter-part of show_splash(). show_splash()
|
||||||
|
calls ply_device_manager_activate_renderers() (through show_theme()).
|
||||||
|
|
||||||
|
2 of the 3 callers of hide_splash() are already calling
|
||||||
|
ply_device_manager_deactivate_renderers() directly before calling
|
||||||
|
hide_splash(). This commit moves the deactivate call into hide_splash()
|
||||||
|
so that it also gets called from the 3th code-path, which is when
|
||||||
|
the user hits the escape to key to toggle from the splash to details.
|
||||||
|
|
||||||
|
It's important that plymouth deactivates its renderers before going
|
||||||
|
to details, because those renderers can block the kernel from
|
||||||
|
initializing fbcon, which the kernel will start doing lazily in the
|
||||||
|
future:
|
||||||
|
|
||||||
|
https://lkml.org/lkml/2018/6/26/489.
|
||||||
|
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=107047
|
||||||
|
---
|
||||||
|
src/main.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/main.c b/src/main.c
|
||||||
|
index 841fe6b..ff02ea6 100644
|
||||||
|
--- a/src/main.c
|
||||||
|
+++ b/src/main.c
|
||||||
|
@@ -1174,6 +1174,8 @@ quit_splash (state_t *state)
|
||||||
|
static void
|
||||||
|
hide_splash (state_t *state)
|
||||||
|
{
|
||||||
|
+ ply_device_manager_deactivate_renderers (state->device_manager);
|
||||||
|
+
|
||||||
|
state->is_shown = false;
|
||||||
|
|
||||||
|
cancel_pending_delayed_show (state);
|
||||||
|
@@ -1193,7 +1195,6 @@ dump_details_and_quit_splash (state_t *state)
|
||||||
|
state->showing_details = false;
|
||||||
|
toggle_between_splash_and_details (state);
|
||||||
|
|
||||||
|
- ply_device_manager_deactivate_renderers (state->device_manager);
|
||||||
|
hide_splash (state);
|
||||||
|
quit_splash (state);
|
||||||
|
}
|
||||||
|
@@ -1291,7 +1292,6 @@ on_boot_splash_idle (state_t *state)
|
||||||
|
if (state->quit_trigger != NULL) {
|
||||||
|
if (!state->should_retain_splash) {
|
||||||
|
ply_trace ("hiding splash");
|
||||||
|
- ply_device_manager_deactivate_renderers (state->device_manager);
|
||||||
|
hide_splash (state);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.17.1
|
||||||
|
|
@ -0,0 +1,66 @@
|
|||||||
|
From 353d12806adf6be4d051d491a2af28e3b24b3063 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Mon, 2 Jul 2018 09:39:12 +0200
|
||||||
|
Subject: [PATCH 3/3] show_theme: Only activate renderers if the splash uses
|
||||||
|
pixel-displays
|
||||||
|
|
||||||
|
Since commit eb147e52b123 ("renderer: support reactivating renderer without
|
||||||
|
closing it first"), the show_theme() call done by
|
||||||
|
toggle_between_splash_and_details() will reactivate the renderers after
|
||||||
|
switching to details mode, causing the drm renderer to switch the screen
|
||||||
|
from text to graphics mode hiding the details being logged on the console.
|
||||||
|
|
||||||
|
This commit fixes this by making show_theme() not call
|
||||||
|
ply_device_manager_activate_renderers() if the splash does not uses
|
||||||
|
pixel-displays.
|
||||||
|
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
---
|
||||||
|
src/libply-splash-core/ply-boot-splash.c | 5 +++++
|
||||||
|
src/libply-splash-core/ply-boot-splash.h | 1 +
|
||||||
|
src/main.c | 3 ++-
|
||||||
|
3 files changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/libply-splash-core/ply-boot-splash.c b/src/libply-splash-core/ply-boot-splash.c
|
||||||
|
index 87a7a0c..7888785 100644
|
||||||
|
--- a/src/libply-splash-core/ply-boot-splash.c
|
||||||
|
+++ b/src/libply-splash-core/ply-boot-splash.c
|
||||||
|
@@ -695,4 +695,9 @@ ply_boot_splash_become_idle (ply_boot_splash_t *splash,
|
||||||
|
splash->plugin_interface->become_idle (splash->plugin, splash->idle_trigger);
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool ply_boot_splash_uses_pixel_displays (ply_boot_splash_t *splash)
|
||||||
|
+{
|
||||||
|
+ return splash->plugin_interface->add_pixel_display != NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */
|
||||||
|
diff --git a/src/libply-splash-core/ply-boot-splash.h b/src/libply-splash-core/ply-boot-splash.h
|
||||||
|
index b66ca47..0bdbe96 100644
|
||||||
|
--- a/src/libply-splash-core/ply-boot-splash.h
|
||||||
|
+++ b/src/libply-splash-core/ply-boot-splash.h
|
||||||
|
@@ -89,6 +89,7 @@ void ply_boot_splash_attach_progress (ply_boot_splash_t *splash,
|
||||||
|
void ply_boot_splash_become_idle (ply_boot_splash_t *splash,
|
||||||
|
ply_boot_splash_on_idle_handler_t idle_handler,
|
||||||
|
void *user_data);
|
||||||
|
+bool ply_boot_splash_uses_pixel_displays (ply_boot_splash_t *splash);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
diff --git a/src/main.c b/src/main.c
|
||||||
|
index ff02ea6..13848c1 100644
|
||||||
|
--- a/src/main.c
|
||||||
|
+++ b/src/main.c
|
||||||
|
@@ -1763,7 +1763,8 @@ show_theme (state_t *state,
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
attach_splash_to_devices (state, splash);
|
||||||
|
- ply_device_manager_activate_renderers (state->device_manager);
|
||||||
|
+ if (ply_boot_splash_uses_pixel_displays (splash))
|
||||||
|
+ ply_device_manager_activate_renderers (state->device_manager);
|
||||||
|
|
||||||
|
splash_mode = get_splash_mode_from_mode (state->mode);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.17.1
|
||||||
|
|
@ -16,7 +16,7 @@
|
|||||||
Summary: Graphical Boot Animation and Logger
|
Summary: Graphical Boot Animation and Logger
|
||||||
Name: plymouth
|
Name: plymouth
|
||||||
Version: 0.9.3
|
Version: 0.9.3
|
||||||
Release: 9%{?snapshot_rel}%{?dist}
|
Release: 10%{?snapshot_rel}%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://www.freedesktop.org/wiki/Software/Plymouth
|
URL: http://www.freedesktop.org/wiki/Software/Plymouth
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
@ -43,6 +43,12 @@ Patch8: 0001-device-manager-skip-graphical-renderer-setup-when-de.patch
|
|||||||
# Patch from upstream fixes boot with rhgb but no renderers available
|
# Patch from upstream fixes boot with rhgb but no renderers available
|
||||||
Patch9: 0001-device-manager-fall-back-to-text-mode-if-graphical-d.patch
|
Patch9: 0001-device-manager-fall-back-to-text-mode-if-graphical-d.patch
|
||||||
|
|
||||||
|
# Patches from upstream to fix details view on kernels build with
|
||||||
|
# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||||
|
Patch10: 0001-renderer-support-reactivating-renderer-without-closi.patch
|
||||||
|
Patch11: 0002-main-move-ply_device_manager_deactivate_renderers-in.patch
|
||||||
|
Patch12: 0003-show_theme-Only-activate-renderers-if-the-splash-use.patch
|
||||||
|
|
||||||
BuildRequires: pkgconfig(libdrm)
|
BuildRequires: pkgconfig(libdrm)
|
||||||
BuildRequires: pkgconfig(libudev)
|
BuildRequires: pkgconfig(libudev)
|
||||||
BuildRequires: kernel-headers
|
BuildRequires: kernel-headers
|
||||||
@ -464,6 +470,10 @@ fi
|
|||||||
%files system-theme
|
%files system-theme
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jul 02 2018 Hans de Goede <jwrdegoede@fedoraproject.org> - 0.9.3-10
|
||||||
|
- Add patches from upstream fixing details view on kernels build with
|
||||||
|
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
|
||||||
|
|
||||||
* Wed Jun 06 2018 Adam Williamson <awilliam@redhat.com> - 0.9.3-9
|
* Wed Jun 06 2018 Adam Williamson <awilliam@redhat.com> - 0.9.3-9
|
||||||
- Backport patch to avoid loading renderers on non-rhgb boot
|
- Backport patch to avoid loading renderers on non-rhgb boot
|
||||||
- Backport patch to handle 'rhgb' but no renderers available
|
- Backport patch to handle 'rhgb' but no renderers available
|
||||||
|
Loading…
Reference in New Issue
Block a user