• H
    fbcon: Only defer console takeover if the current console driver is the dummycon · bedb38fc
    Hans de Goede 提交于
    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: NHans de Goede <hdegoede@redhat.com>
    Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    bedb38fc
fbcon.c 90.3 KB