• D
    fbcon: fix situation where fbcon gets deinitialised and can't reinit. · 32b98bf8
    Dave Airlie 提交于
    Situation as follow:
    2 GPUs + vesafb + kms.
    
    GPU 1 is primary, vesafb binds to it as fb0
    radeon loads
    GPU 0 loads as fb1
    GPU 1 loads, vesafb gets kicked off which causes fb0 to unbind
    console, which causes the dummy console to rebind.
    
    this means fbcon_deinit gets called, which calls fbcon_exit
    since the console isn't bound anymore and we set fbcon_has_exited.
    
    GPU 1 creates a new fb0 which is primary and we want to be console.
    fbcon_fb_registered gets called sets the primary up and calls set_con2fb_map,
    however as fbcon_has_exited is set nothing further ever happens.
    
    This patch bypasses the fbcon_has_exited and checks if the console is unbound,
    if its unbound it calls the fbcon_takeover which calls the vt layer to
    call the fbcon_startup method and everthing works.
    Signed-off-by: NDave Airlie <airlied@redhat.com>
    Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
    32b98bf8
fbcon.c 86.7 KB