Message ID | YpkYxk7wsBPx3po+@p100 |
---|---|
State | New |
Headers | show |
Series | fbcon: Fix accelerated fbdev scrolling while logo is still shown | expand |
On Thu, Jun 02, 2022 at 10:08:38PM +0200, Helge Deller wrote: > 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. > > Signed-off-by: Helge Deller <deller@gmx.de> > Cc: stable@vger.kernel.org I'm not entirely sure this is 100% perfect, but I don't think it'll make anything worse, so Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> I'm assuming you'll push this to drm-misc-fixes? I pinged drm-misc maintainers to make sure that tree is forwarded to -rc1. -Daniel > > diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c > index c2f9e5711c39..8eb5b73e98bc 100644 > --- a/drivers/video/fbdev/core/fbcon.c > +++ b/drivers/video/fbdev/core/fbcon.c > @@ -1706,8 +1706,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b, > case SM_UP: > if (count > vc->vc_rows) /* Maximum realistic size */ > count = vc->vc_rows; > - if (logo_shown >= 0) > - goto redraw_up; > switch (fb_scrollmode(p)) { > case SCROLL_MOVE: > fbcon_redraw_blit(vc, info, p, t, b - t - count, > @@ -1796,8 +1794,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b, > case SM_DOWN: > if (count > vc->vc_rows) /* Maximum realistic size */ > count = vc->vc_rows; > - if (logo_shown >= 0) > - goto redraw_down; > switch (fb_scrollmode(p)) { > case SCROLL_MOVE: > fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index c2f9e5711c39..8eb5b73e98bc 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -1706,8 +1706,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b, case SM_UP: if (count > vc->vc_rows) /* Maximum realistic size */ count = vc->vc_rows; - if (logo_shown >= 0) - goto redraw_up; switch (fb_scrollmode(p)) { case SCROLL_MOVE: fbcon_redraw_blit(vc, info, p, t, b - t - count, @@ -1796,8 +1794,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b, case SM_DOWN: if (count > vc->vc_rows) /* Maximum realistic size */ count = vc->vc_rows; - if (logo_shown >= 0) - goto redraw_down; switch (fb_scrollmode(p)) { case SCROLL_MOVE: fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
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. Signed-off-by: Helge Deller <deller@gmx.de> Cc: stable@vger.kernel.org