console/fbcon: Add support for deferred console takeover
authorHans de Goede <hdegoede@redhat.com>
Thu, 28 Jun 2018 13:20:30 +0000 (15:20 +0200)
committerBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Thu, 28 Jun 2018 13:20:30 +0000 (15:20 +0200)
commit83d83bebf40132e2d55ec58af666713cc76f9764
tree8539ca6adfd8778e9c73111e23770adc7b04beb2
parent3bd3a0e330aae4fffa8028aba2407ef615ab040b
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>
Documentation/fb/fbcon.txt
drivers/video/console/Kconfig
drivers/video/console/dummycon.c
drivers/video/fbdev/core/fbcon.c
include/linux/console.h