Skip to content
  • Andy Shevchenko's avatar
    efi/earlycon: Remap entire framebuffer after page initialization · b418d660
    Andy Shevchenko authored
    When commit:
    
      69c1f396
    
     ("efi/x86: Convert x86 EFI earlyprintk into generic earlycon implementation")
    
    moved the x86 specific EFI earlyprintk implementation to a shared location,
    it also tweaked the behaviour. In particular, it dropped a trick with full
    framebuffer remapping after page initialization, leading to two regressions:
    
      1) very slow scrolling after page initialization,
      2) kernel hang when the 'keep_bootcon' command line argument is passed.
    
    Putting the tweak back fixes #2 and mitigates #1, i.e., it limits the slow
    behavior to the early boot stages, presumably due to eliminating heavy
    map()/unmap() operations per each pixel line on the screen.
    
     [ ardb: ensure efifb is unmapped again unless keep_bootcon is in effect. ]
     [ mingo: speling fixes. ]
    
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Cc: Arvind Sankar <nivedita@alum.mit.edu>
    Cc: Bhupesh Sharma <bhsharma@redhat.com>
    Cc: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
    Cc: linux-efi@vger.kernel.org
    Fixes: 69c1f396 ("efi/x86: Convert x86 EFI earlyprintk into generic earlycon implementation")
    Link: https://lkml.kernel.org/r/20191206165542.31469-7-ardb@kernel.org
    
    
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    b418d660