mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
* Prepare xu4 edge for 5.16.y, move current of imx6 to 5.15.y and edge to 5.16.y - fix bootsplash on 5.16.y * rk322x: advance current to 5.15 and edge to 5.16 * rockchip: advance current kernel to 5.15, edge to 5.16 * - adjust configs - fix bootsplash patches - adjust aufs * Switch sunxi / sunxi64 current to 5.15.y, edge to 5.16.y - cleanup bootsplash patches - adjust configs * Update mvebu64 Co-authored-by: Paolo Sabatino <paolo.sabatino@gmail.com>
133 lines
4.3 KiB
Diff
133 lines
4.3 KiB
Diff
From abd60692635211581dec506af647ac9295d21d69 Mon Sep 17 00:00:00 2001
|
|
From: Igor Pecovnik <igor.pecovnik@gmail.com>
|
|
Date: Thu, 10 Feb 2022 16:48:23 +0100
|
|
Subject: [PATCH 2/2] Revert "Revert "fbcon: Disable accelerated scrolling""
|
|
|
|
This reverts commit ba724328faffc640b7772c953bd061bf6c4d39cd.
|
|
---
|
|
Documentation/gpu/todo.rst | 21 +++++++++++++++
|
|
drivers/video/fbdev/core/fbcon.c | 45 ++++++--------------------------
|
|
2 files changed, 29 insertions(+), 37 deletions(-)
|
|
|
|
diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
|
|
index 01fb97dd2dd0..6613543955e9 100644
|
|
--- a/Documentation/gpu/todo.rst
|
|
+++ b/Documentation/gpu/todo.rst
|
|
@@ -311,6 +311,27 @@ Contact: Daniel Vetter, Noralf Tronnes
|
|
|
|
Level: Advanced
|
|
|
|
+Garbage collect fbdev scrolling acceleration
|
|
+--------------------------------------------
|
|
+
|
|
+Scroll acceleration is disabled in fbcon by hard-wiring p->scrollmode =
|
|
+SCROLL_REDRAW. There's a ton of code this will allow us to remove:
|
|
+
|
|
+- lots of code in fbcon.c
|
|
+
|
|
+- a bunch of the hooks in fbcon_ops, maybe the remaining hooks could be called
|
|
+ directly instead of the function table (with a switch on p->rotate)
|
|
+
|
|
+- fb_copyarea is unused after this, and can be deleted from all drivers
|
|
+
|
|
+Note that not all acceleration code can be deleted, since clearing and cursor
|
|
+support is still accelerated, which might be good candidates for further
|
|
+deletion projects.
|
|
+
|
|
+Contact: Daniel Vetter
|
|
+
|
|
+Level: Intermediate
|
|
+
|
|
idr_init_base()
|
|
---------------
|
|
|
|
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
|
|
index 0cc2a36b674a..fc34caddf9cf 100644
|
|
--- a/drivers/video/fbdev/core/fbcon.c
|
|
+++ b/drivers/video/fbdev/core/fbcon.c
|
|
@@ -1025,7 +1025,7 @@ static void fbcon_init(struct vc_data *vc, int init)
|
|
struct vc_data *svc = *default_mode;
|
|
struct fbcon_display *t, *p = &fb_display[vc->vc_num];
|
|
int logo = 1, new_rows, new_cols, rows, cols;
|
|
- int cap, ret;
|
|
+ int ret;
|
|
|
|
if (WARN_ON(info_idx == -1))
|
|
return;
|
|
@@ -1034,7 +1034,6 @@ static void fbcon_init(struct vc_data *vc, int init)
|
|
con2fb_map[vc->vc_num] = info_idx;
|
|
|
|
info = registered_fb[con2fb_map[vc->vc_num]];
|
|
- cap = info->flags;
|
|
|
|
if (logo_shown < 0 && console_loglevel <= CONSOLE_LOGLEVEL_QUIET)
|
|
logo_shown = FBCON_LOGO_DONTSHOW;
|
|
@@ -1136,11 +1135,13 @@ static void fbcon_init(struct vc_data *vc, int init)
|
|
|
|
ops->graphics = 0;
|
|
|
|
- if ((cap & FBINFO_HWACCEL_COPYAREA) &&
|
|
- !(cap & FBINFO_HWACCEL_DISABLED))
|
|
- p->scrollmode = SCROLL_MOVE;
|
|
- else /* default to something safe */
|
|
- p->scrollmode = SCROLL_REDRAW;
|
|
+ /*
|
|
+ * No more hw acceleration for fbcon.
|
|
+ *
|
|
+ * FIXME: Garbage collect all the now dead code after sufficient time
|
|
+ * has passed.
|
|
+ */
|
|
+ p->scrollmode = SCROLL_REDRAW;
|
|
|
|
/*
|
|
* ++guenther: console.c:vc_allocate() relies on initializing
|
|
@@ -1952,45 +1953,15 @@ static void updatescrollmode(struct fbcon_display *p,
|
|
{
|
|
struct fbcon_ops *ops = info->fbcon_par;
|
|
int fh = vc->vc_font.height;
|
|
- int cap = info->flags;
|
|
- u16 t = 0;
|
|
- int ypan = FBCON_SWAP(ops->rotate, info->fix.ypanstep,
|
|
- info->fix.xpanstep);
|
|
- int ywrap = FBCON_SWAP(ops->rotate, info->fix.ywrapstep, t);
|
|
int yres = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
|
|
int vyres = FBCON_SWAP(ops->rotate, info->var.yres_virtual,
|
|
info->var.xres_virtual);
|
|
- int good_pan = (cap & FBINFO_HWACCEL_YPAN) &&
|
|
- divides(ypan, vc->vc_font.height) && vyres > yres;
|
|
- int good_wrap = (cap & FBINFO_HWACCEL_YWRAP) &&
|
|
- divides(ywrap, vc->vc_font.height) &&
|
|
- divides(vc->vc_font.height, vyres) &&
|
|
- divides(vc->vc_font.height, yres);
|
|
- int reading_fast = cap & FBINFO_READS_FAST;
|
|
- int fast_copyarea = (cap & FBINFO_HWACCEL_COPYAREA) &&
|
|
- !(cap & FBINFO_HWACCEL_DISABLED);
|
|
- int fast_imageblit = (cap & FBINFO_HWACCEL_IMAGEBLIT) &&
|
|
- !(cap & FBINFO_HWACCEL_DISABLED);
|
|
|
|
p->vrows = vyres/fh;
|
|
if (yres > (fh * (vc->vc_rows + 1)))
|
|
p->vrows -= (yres - (fh * vc->vc_rows)) / fh;
|
|
if ((yres % fh) && (vyres % fh < yres % fh))
|
|
p->vrows--;
|
|
-
|
|
- if (good_wrap || good_pan) {
|
|
- if (reading_fast || fast_copyarea)
|
|
- p->scrollmode = good_wrap ?
|
|
- SCROLL_WRAP_MOVE : SCROLL_PAN_MOVE;
|
|
- else
|
|
- p->scrollmode = good_wrap ? SCROLL_REDRAW :
|
|
- SCROLL_PAN_REDRAW;
|
|
- } else {
|
|
- if (reading_fast || (fast_copyarea && !fast_imageblit))
|
|
- p->scrollmode = SCROLL_MOVE;
|
|
- else
|
|
- p->scrollmode = SCROLL_REDRAW;
|
|
- }
|
|
}
|
|
|
|
#define PITCH(w) (((w) + 7) >> 3)
|
|
--
|
|
2.25.1
|
|
|