You need to sign in or sign up before continuing.
提交 47a3f292 编写于 作者: H Helge Deller 提交者: Zheng Zengkai

fbcon: Fix accelerated fbdev scrolling while logo is still shown

stable inclusion
from stable-v5.10.137
commit d65c3fcd6dfaa94e35672bfcbe4ebf0bd5159d2e
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I60PLB

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d65c3fcd6dfaa94e35672bfcbe4ebf0bd5159d2e

--------------------------------

commit 3866cba8 upstream.

There is no need to directly skip over to the SCROLL_REDRAW case while
the logo is still shown.

When using DRM, this change has no effect because the code will reach
the SCROLL_REDRAW case immediately anyway.

But if you run an accelerated fbdev driver and have
FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION enabled, console scrolling is
slowed down by factors so that it feels as if you use a 9600 baud
terminal.

So, drop those unnecessary checks and speed up fbdev console
acceleration during bootup.

Cc: stable@vger.kernel.org # v5.10+
Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: NHelge Deller <deller@gmx.de>
Link: https://patchwork.freedesktop.org/patch/msgid/YpkYxk7wsBPx3po+@p100Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
Reviewed-by: NWei Li <liwei391@huawei.com>
上级 1d43dc2c
...@@ -1719,8 +1719,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b, ...@@ -1719,8 +1719,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
case SM_UP: case SM_UP:
if (count > vc->vc_rows) /* Maximum realistic size */ if (count > vc->vc_rows) /* Maximum realistic size */
count = vc->vc_rows; count = vc->vc_rows;
if (logo_shown >= 0)
goto redraw_up;
switch (fb_scrollmode(p)) { switch (fb_scrollmode(p)) {
case SCROLL_MOVE: case SCROLL_MOVE:
fbcon_redraw_blit(vc, info, p, t, b - t - count, fbcon_redraw_blit(vc, info, p, t, b - t - count,
...@@ -1809,8 +1807,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b, ...@@ -1809,8 +1807,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
case SM_DOWN: case SM_DOWN:
if (count > vc->vc_rows) /* Maximum realistic size */ if (count > vc->vc_rows) /* Maximum realistic size */
count = vc->vc_rows; count = vc->vc_rows;
if (logo_shown >= 0)
goto redraw_down;
switch (fb_scrollmode(p)) { switch (fb_scrollmode(p)) {
case SCROLL_MOVE: case SCROLL_MOVE:
fbcon_redraw_blit(vc, info, p, b - 1, b - t - count, fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册