Star64_linux/drivers/video/fbdev
Daniel Vetter 39aead8373 fbcon: Disable accelerated scrolling
So ever since syzbot discovered fbcon, we have solid proof that it's
full of bugs. And often the solution is to just delete code and remove
features, e.g.  50145474f6 ("fbcon: remove soft scrollback code").

Now the problem is that most modern-ish drivers really only treat
fbcon as an dumb kernel console until userspace takes over, and Oops
printer for some emergencies. Looking at drm drivers and the basic
vesa/efi fbdev drivers shows that only 3 drivers support any kind of
acceleration:

- nouveau, seems to be enabled by default
- omapdrm, when a DMM remapper exists using remapper rewriting for
  y/xpanning
- gma500, but that is getting deleted now for the GTT remapper trick,
  and the accelerated copyarea never set the FBINFO_HWACCEL_COPYAREA
  flag, so unused (and could be deleted already I think).

No other driver supportes accelerated fbcon. And fbcon is the only
user of this accel code (it's not exposed as uapi through ioctls),
which means we could garbage collect fairly enormous amounts of code
if we kill this.

Plus because syzbot only runs on virtual hardware, and none of the
drivers for that have acceleration, we'd remove a huge gap in testing.
And there's no other even remotely comprehensive testing aside from
syzbot.

This patch here just disables the acceleration code by always
redrawing when scrolling. The plan is that once this has been merged
for well over a year in released kernels, we can start to go around
and delete a lot of code.

v2:
- Drop a few more unused local variables, somehow I missed the
compiler warnings (Sam)
- Fix typo in comment (Jiri)
- add a todo entry for the cleanup (Thomas)

v3: Remove more unused variables (0day)

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: nouveau@lists.freedesktop.org
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Peilin Ye <yepeilin.cs@gmail.com>
Cc: George Kennedy <george.kennedy@oracle.com>
Cc: Nathan Chancellor <natechancellor@gmail.com>
Cc: Peter Rosin <peda@axentia.se>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201029132229.4068359-1-daniel.vetter@ffwll.ch
2020-11-17 11:00:29 +01:00
..
aty video: use kobj_to_dev() 2020-10-16 22:59:00 +02:00
core fbcon: Disable accelerated scrolling 2020-11-17 11:00:29 +01:00
geode
i810
intelfb
kyro
matrox matroxfb: avoid -Warray-bounds warning 2020-10-27 07:56:19 +01:00
mb862xx
mmp
nvidia fbdev: nvidia: use for_each_child_of_node() macro 2020-10-16 23:43:41 +02:00
omap
omap2 omapfb: connector-dvi: simplify the return expression of dvic_connect() 2020-10-17 08:10:10 +02:00
riva video: fbdev: riva: remove some unused varibles 2020-11-09 08:28:29 +01:00
savage
sis video: fbdev: sis: remove unneeded semicolon 2020-10-17 08:22:32 +02:00
vermilion
via Merge drm/drm-next into drm-misc-next 2020-09-14 18:11:40 +02:00
68328fb.c
acornfb.c
acornfb.h
amba-clcd.c Partially revert "video: fbdev: amba-clcd: Retire elder CLCD driver" 2020-09-30 16:37:39 +02:00
amifb.c
arcfb.c
arkfb.c
asiliantfb.c
atafb.c fbdev/atafb: Remove unused extern variables 2020-10-28 19:40:11 +01:00
atafb.h
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atmel_lcdfb.c video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init() 2020-11-17 08:47:15 +01:00
au1100fb.c
au1100fb.h
au1200fb.c
au1200fb.h
broadsheetfb.c
bt431.h
bt455.h
bw2.c
c2p.h
c2p_core.h
c2p_iplan2.c
c2p_planar.c
carminefb.c
carminefb.h
carminefb_regs.h
cg3.c
cg6.c
cg14.c
chipsfb.c
cirrusfb.c video: fbdev: fix divide error in fbcon_switch 2020-10-23 08:47:30 +02:00
clps711x-fb.c
cobalt_lcdfb.c
controlfb.c
controlfb.h
cyber2000fb.c
cyber2000fb.h
da8xx-fb.c
dnfb.c
edid.h
efifb.c
ep93xx-fb.c
ffb.c
fm2fb.c
fsl-diu-fb.c video: fbdev: fsl-diu-fb: remove unneeded variable 'res' 2020-10-17 08:23:14 +02:00
g364fb.c
gbefb.c
goldfishfb.c
grvga.c
gxt4500.c
hecubafb.c
hgafb.c
hitfb.c
hpfb.c
hyperv_fb.c hyperv_fb: Update screen_info after removing old framebuffer 2020-10-14 17:05:26 +02:00
i740_reg.h
i740fb.c
imsttfb.c
imxfb.c
Kconfig drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
leo.c
macfb.c
macmodes.c
macmodes.h
Makefile drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
maxinefb.c
metronomefb.c
mx3fb.c fbdev: mx3fb: remove unused variable 'irq' 2020-09-24 22:06:16 +02:00
n411.c
neofb.c
ocfb.c
offb.c
p9100.c
platinumfb.c
platinumfb.h
pm2fb.c
pm3fb.c
pmag-aa-fb.c
pmag-ba-fb.c
pmagb-b-fb.c
ps3fb.c
pvr2fb.c
pxa3xx-gcu.c
pxa3xx-gcu.h
pxa168fb.c
pxa168fb.h
pxafb.c
pxafb.h
q40fb.c
s1d13xxxfb.c
s3c-fb.c
s3c2410fb-regs-lcd.h
s3c2410fb.c
s3c2410fb.h
s3fb.c
sa1100fb.c
sa1100fb.h
sbuslib.c fbdev: sbuslib: remove compat_alloc_user_space usage 2020-09-25 16:34:50 +02:00
sbuslib.h
sh7760fb.c
sh_mobile_lcdcfb.c fbdev/sh_mobile: Drop unused include 2020-11-01 10:29:04 +01:00
sh_mobile_lcdcfb.h
simplefb.c
skeletonfb.c
sm501fb.c
sm712.h
sm712fb.c
smscufx.c
ssd1307fb.c
sstfb.c
sticore.h parisc/sticon: Add user font support 2020-10-15 08:12:59 +02:00
stifb.c
sunxvr500.c
sunxvr1000.c
sunxvr2500.c
tcx.c
tdfxfb.c
tgafb.c
tmiofb.c
tridentfb.c
udlfb.c
uvesafb.c
valkyriefb.c
valkyriefb.h
vesafb.c
vfb.c
vga16fb.c Merge drm/drm-next into drm-misc-next 2020-09-14 18:11:40 +02:00
vt8500lcdfb.c
vt8500lcdfb.h
vt8623fb.c
w100fb.c
w100fb.h
wm8505fb.c
wm8505fb_regs.h
wmt_ge_rops.c
wmt_ge_rops.h
xen-fbfront.c
xilinxfb.c