mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 06:21:31 +00:00
console/fbcon: Add support for deferred console takeover
Currently fbcon claims fbdevs as soon as they are registered and takes over the console as soon as the first fbdev gets registered. This behavior is undesirable in cases where a smooth graphical bootup is desired, in such cases we typically want the contents of the framebuffer (typically a vendor logo) to stay in place as is. The current solution for this problem (on embedded systems) is to not enable fbcon. This commit adds a new FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER config option, which when enabled defers fbcon taking over the console from the dummy console until the first text is displayed on the console. Together with the "quiet" kernel commandline option, this allows fbcon to still be used together with a smooth graphical bootup, having it take over the console as soon as e.g. an error message is logged. Note the choice to detect the first console output in the dummycon driver, rather then handling this entirely inside the fbcon code, was made after 2 failed attempts to handle this entirely inside the fbcon code. The fbcon code is woven quite tightly into the console code, making this to only feasible option. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
This commit is contained in:
parent
3bd3a0e330
commit
83d83bebf4
5 changed files with 154 additions and 8 deletions
|
@ -21,6 +21,7 @@ struct console_font_op;
|
|||
struct console_font;
|
||||
struct module;
|
||||
struct tty_struct;
|
||||
struct notifier_block;
|
||||
|
||||
/*
|
||||
* this is what the terminal answers to a ESC-Z or csi0c query.
|
||||
|
@ -220,4 +221,8 @@ static inline bool vgacon_text_force(void) { return false; }
|
|||
|
||||
extern void console_init(void);
|
||||
|
||||
/* For deferred console takeover */
|
||||
void dummycon_register_output_notifier(struct notifier_block *nb);
|
||||
void dummycon_unregister_output_notifier(struct notifier_block *nb);
|
||||
|
||||
#endif /* _LINUX_CONSOLE_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue