diff options
Diffstat (limited to '0009-fbcon-Only-defer-console-takeover-if-the-current-con.patch')
-rw-r--r-- | 0009-fbcon-Only-defer-console-takeover-if-the-current-con.patch | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/0009-fbcon-Only-defer-console-takeover-if-the-current-con.patch b/0009-fbcon-Only-defer-console-takeover-if-the-current-con.patch deleted file mode 100644 index 8735a62eb..000000000 --- a/0009-fbcon-Only-defer-console-takeover-if-the-current-con.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 317b698406457eb97277d4220126683a59c74fd8 Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Wed, 1 Aug 2018 15:19:52 +0200 -Subject: [PATCH] fbcon: Only defer console takeover if the current - console driver is the dummycon - -We rely on dummycon's output notifier mechanism to defer the takeover. - -If say vgacon is the current console driver then dummycon will never get -used so its output notifier will also never get called and fbcon never -takes over. This commit fixes this by only deferring the console takeover -if the current console driver is the dummycon driver. - -This commit also moves the entirety of fbcon_start under the console_lock, -since the conswitchp which fbcon_start now checks is protected by it. - -This commit also inlines fbcon_register_output_notifier, since we now -need a #ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER in fbcon_start -anyways because of the write access to the deferred_takeover variable, -this has the added advantage that it puts the -dummycon_register_output_notifier() call directly after the "conswitchp != -&dummy_con" comparison making it clear why that check is there. - -Note the arch setup code will set conswitchp to either dummy_con or -vga_con, in the cases where it gets set to vga_con even though their is -no vga_con present we rely on vga_con_startup() to set conswitchp to -dummy_con. vga_con_startup() is guaranteed to happen before -fb_console_init() as it gets called as a console_initcall where as -fb_console_init() gets called as a subsys_initcall. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - drivers/video/fbdev/core/fbcon.c | 24 ++++++++++-------------- - 1 file changed, 10 insertions(+), 14 deletions(-) - -diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c -index e30d3a138c97..ef8b2d0b7071 100644 ---- a/drivers/video/fbdev/core/fbcon.c -+++ b/drivers/video/fbdev/core/fbcon.c -@@ -3612,38 +3612,34 @@ static int fbcon_output_notifier(struct notifier_block *nb, - - return NOTIFY_OK; - } -- --static void fbcon_register_output_notifier(void) --{ -- fbcon_output_nb.notifier_call = fbcon_output_notifier; -- dummycon_register_output_notifier(&fbcon_output_nb); --} --#else --static inline void fbcon_register_output_notifier(void) {} - #endif - - static void fbcon_start(void) - { -+ WARN_CONSOLE_UNLOCKED(); -+ -+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER -+ if (conswitchp != &dummy_con) -+ deferred_takeover = false; -+ - if (deferred_takeover) { -- fbcon_register_output_notifier(); -+ fbcon_output_nb.notifier_call = fbcon_output_notifier; -+ dummycon_register_output_notifier(&fbcon_output_nb); - return; - } -+#endif - - if (num_registered_fb) { - int i; - -- console_lock(); -- - for (i = 0; i < FB_MAX; i++) { - if (registered_fb[i] != NULL) { - info_idx = i; - break; - } - } - - do_fbcon_takeover(0); -- console_unlock(); -- - } - } - -@@ -3724,8 +3720,8 @@ void __init fb_console_init(void) - for (i = 0; i < MAX_NR_CONSOLES; i++) - con2fb_map[i] = -1; - -- console_unlock(); - fbcon_start(); -+ console_unlock(); - } - - #ifdef MODULE --- -2.18.0 - |