Hi
Am 31.03.26 um 17:08 schrieb Helge Deller:
> Hi Thomas,
>
> On 3/27/26 13:49, Thomas Zimmermann wrote:
>> Refactor the framebuffer console rotation into individual components
>> for glyphs, fonts and the overall fbcon state. Right now this is mixed
>> up in fbcon_rotate.{c,h}. Also build cursor rotation on top of the new
>> interfaces.
>>
>> Start with an OOB fix in patch 1. If buffer allocation fails, fbcon
>> currently uses a too-small glyph buffer for output. Avoid that.
>>
>> Patches 2 to 4 make a number of small improvements to the font library
>> and its callers.
>>
>> Patches 5 to 8 refactor the font rotation. Fbcon rotation rotates each
>> individual glphy in a font buffer and uses the rotated buffer's glyphs
>> for output. The result looks like the console buffer has been rotated
>> as a whole. Split this into helpers that rotate individual glyphs and
>> a helper that rotates the font buffer of these. Then reimplement fbcon
>> rotation on top. Document the public font helpers.
>>
>> Patch 9 rebuilds cursor rotation on top of the new glyph helpers. The
>> fbcon cursor is itself a glyph that has to be rotated in sync with the
>> font.
>>
>> Patch 10 moves the state of fbcon rotation into a single place and makes
>> is a build-time conditional.
>>
>> Tested with fbcon under bochs on Qemu.
>>
>> Built upon the fbcon changes at [1].
>>
>> [1]
>> https://lore.kernel.org/linux-fbdev/20260309141723.137364-1-tzimmermann@suse.de/
>
>
> Thanks a lot for this cleanup work!
>
> I've applied this series to the fbdev git tree.
Thanks a lot.
There's a small typo in patch 2 that I noticed when Greg gave his ack.
The commit description say <liux/math.h> instead of <linux/math.h>. Let
me know whether you can fix it or if I should send an update.
Best regards
Thomas
>
> Helge
>
>
>> Thomas Zimmermann (10):
>> fbcon: Avoid OOB font access if console rotation fails
>> vt: Implement helpers for struct vc_font in source file
>> lib/fonts: Provide helpers for calculating glyph pitch and size
>> lib/fonts: Clean up Makefile
>> lib/fonts: Implement glyph rotation
>> lib/fonts: Refactor glyph-pattern helpers
>> lib/fonts: Refactor glyph-rotation helpers
>> lib/fonts: Implement font rotation
>> fbcon: Fill cursor mask in helper function
>> fbcon: Put font-rotation state into separate struct
>>
>> drivers/tty/vt/vt.c | 34 +++
>> drivers/video/fbdev/core/bitblit.c | 35 +--
>> drivers/video/fbdev/core/fbcon.c | 48 ++++-
>> drivers/video/fbdev/core/fbcon.h | 14 +-
>> drivers/video/fbdev/core/fbcon_ccw.c | 70 ++----
>> drivers/video/fbdev/core/fbcon_cw.c | 70 ++----
>> drivers/video/fbdev/core/fbcon_rotate.c | 88 ++------
>> drivers/video/fbdev/core/fbcon_rotate.h | 71 ------
>> drivers/video/fbdev/core/fbcon_ud.c | 67 ++----
>> include/linux/console_struct.h | 30 +--
>> include/linux/font.h | 51 +++++
>> lib/fonts/Makefile | 36 ++--
>> lib/fonts/font_rotate.c | 275 ++++++++++++++++++++++++
>> lib/fonts/fonts.c | 2 +-
>> 14 files changed, 525 insertions(+), 366 deletions(-)
>> create mode 100644 lib/fonts/font_rotate.c
>>
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)