linux/drivers/video/fbdev/core
Zsolt Kajtar ff968e486e fbdev: core: tileblit: Implement missing margin clearing for tileblit
[ Upstream commit 76d3ca8998 ]

I was wondering why there's garbage at the bottom of the screen when
tile blitting is used with an odd mode like 1080, 600 or 200. Sure there's
only space for half a tile but the same area is clean when the buffer
is bitmap.

Then later I found that it's supposed to be cleaned but that's not
implemented. So I took what's in bitblit and adapted it for tileblit.

This implementation was tested for both the horizontal and vertical case,
and now does the same as what's done for bitmap buffers.

If anyone is interested to reproduce the problem then I could bet that'd
be on a S3 or Ark. Just set up a mode with an odd line count and make
sure that the virtual size covers the complete tile at the bottom. E.g.
for 600 lines that's 608 virtual lines for a 16 tall tile. Then the
bottom area should be cleaned.

For the right side it's more difficult as there the drivers won't let an
odd size happen, unless the code is modified. But once it reports back a
few pixel columns short then fbcon won't use the last column. With the
patch that column is now clean.

Btw. the virtual size should be rounded up by the driver for both axes
(not only the horizontal) so that it's dividable by the tile size.
That's a driver bug but correcting it is not in scope for this patch.

Implement missing margin clearing for tileblit

Signed-off-by: Zsolt Kajtar <soci@c64.rulez.org>
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-05-29 11:02:05 +02:00
..
bitblit.c fbcon: Use correct erase colour for clearing in fbcon 2025-05-29 11:02:05 +02:00
cfbcopyarea.c fbdev: Warn on incorrect framebuffer access 2023-11-29 12:20:50 +01:00
cfbfillrect.c fbdev: Warn on incorrect framebuffer access 2023-11-29 12:20:50 +01:00
cfbimgblt.c fbdev: Warn on incorrect framebuffer access 2023-11-29 12:20:50 +01:00
fb_backlight.c backlight: Match backlight device against struct fb_info.bl_dev 2024-03-28 10:08:47 +00:00
fb_chrdev.c fbdev: Remove default file-I/O implementations 2023-11-29 12:20:53 +01:00
fb_cmdline.c fbdev: Handle video= parameter in video/cmdline.c 2023-02-20 14:56:48 +01:00
fb_ddc.c fbdev: remove I2C_CLASS_DDC support 2024-01-18 21:10:41 +01:00
fb_defio.c - 875fa64577da ("mm/hugetlb_vmemmap: fix race with speculative PFN 2024-07-21 17:15:46 -07:00
fb_draw.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fb_info.c fbdev: Document that framebuffer_alloc() returns zero'ed data 2023-07-24 16:50:39 +02:00
fb_internal.h fbdev/core: Move logo functions into separate source file 2023-09-11 15:12:35 +02:00
fb_io_fops.c fbdev: Warn on incorrect framebuffer access 2023-11-29 12:20:50 +01:00
fb_logo.c fbdev/core: Remove empty internal helpers from fb_logo.c 2023-09-11 15:12:37 +02:00
fb_notify.c video: fbdev: core: Fix kernel-doc warnings in fbmon + fb_notify 2020-12-08 18:31:56 +01:00
fb_procfs.c fbdev/core: Move procfs code to separate file 2023-06-27 09:58:51 +02:00
fb_sys_fops.c fbdev: Warn on incorrect framebuffer access 2023-11-29 12:20:50 +01:00
fbcmap.c fbdev: zero-fill colormap in fbcmap.c 2021-04-10 11:12:08 +02:00
fbcon.c fbcon: Use correct erase colour for clearing in fbcon 2025-05-29 11:02:05 +02:00
fbcon.h fbcon: Use correct erase colour for clearing in fbcon 2025-05-29 11:02:05 +02:00
fbcon_ccw.c fbcon: Use correct erase colour for clearing in fbcon 2025-05-29 11:02:05 +02:00
fbcon_cw.c fbcon: Use correct erase colour for clearing in fbcon 2025-05-29 11:02:05 +02:00
fbcon_rotate.c fbcon: Drop EXPORT_SYMBOL 2020-11-17 11:00:43 +01:00
fbcon_rotate.h fbcon: Add option to enable legacy hardware acceleration 2022-02-02 15:16:26 +01:00
fbcon_ud.c fbcon: Use correct erase colour for clearing in fbcon 2025-05-29 11:02:05 +02:00
fbcvt.c video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name() 2022-01-30 21:19:22 +01:00
fbmem.c fbdev: Introduce devm_register_framebuffer() 2024-08-30 18:42:38 +02:00
fbmon.c fbmon: prevent division by zero in fb_videomode_from_videomode() 2024-03-19 13:20:20 +01:00
fbsysfs.c fbdev/core: Use list_for_each_entry() helper 2023-08-31 22:54:34 +02:00
Kconfig drm/omapdrm: Fix console with deferred ops 2024-03-18 13:43:39 +02:00
Makefile fbdev: Rename FB_SYS_FOPS token to FB_SYSMEM_FOPS 2023-11-29 12:20:42 +01:00
modedb.c fbdev/core: Use list_for_each_entry() helper 2023-08-31 22:54:34 +02:00
softcursor.c fbcon: Drop EXPORT_SYMBOL 2020-11-17 11:00:43 +01:00
svgalib.c fbcon: Increase maximum font width x height to 64 x 128 2024-03-16 08:29:48 +01:00
syscopyarea.c fbdev: Warn on incorrect framebuffer access 2023-11-29 12:20:50 +01:00
sysfillrect.c fbdev: Warn on incorrect framebuffer access 2023-11-29 12:20:50 +01:00
sysimgblt.c fbdev: Warn on incorrect framebuffer access 2023-11-29 12:20:50 +01:00
tileblit.c fbdev: core: tileblit: Implement missing margin clearing for tileblit 2025-05-29 11:02:05 +02:00