efi/earlycon: Speed up scrolling by disregarding empty space
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 8 Dec 2022 22:12:17 +0000 (00:12 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Tue, 10 Jan 2023 14:16:12 +0000 (15:16 +0100)
commit2a5b4ccf0de17e47e9ad13ee0fda9436d5de0a35
treeddea0d79cd6463d3e3f12a6af19ac8da6c7ae0ee
parentb7a1cd243839cc1459fbc83a7a62e3b57f29f497
efi/earlycon: Speed up scrolling by disregarding empty space

Currently the scroll copies the full screen which is slow on high
resolution displays. At the same time, most of the screen is an empty
space which has no need to be copied over and over.

Optimize the scrolling algorithm by caching the x coordinates of the
last printed lines and scroll in accordance with the maximum x in that
cache.

On my Microsoft Surface Book (the first version) this produces a
significant speedup of the console 90 seconds vs. 168 seconds with the
kernel command line having

ignore_loglevel earlycon=efifb keep_bootcon

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/earlycon.c