[PATCH v8 00/10] vidconsole: refactoring and support for wider fonts

Dzmitry Sankouski
2023-03-07T10:21:50Z

Version 7 has vidconsole_get_font_size() function reworked to use
driver ops.

Version 6 contains entire rebased patch series.
New patch 'move vidconsole_get_font_size() to test.h' added.

Version 5 contain minor changes:
- move common functions to console-core.c file
- remove static keyword from shared functions

In version 4, only first patch sent, because review fixes to this would add
large rebase & patch formatting overhead. When it'll receive reviewed tag,
I'll resent entire rebased series.

Modern mobile phones typically have high pixel density.
Bootmenu is hardly readable on those with 8x16 font.

This patch series aims to add wider fonts for devices with high ppi.

Add 16x32, 12x22 fonts from linux, and allow font size configuration.

There was significant changes in version 2:
- fix video tests failures
- add runtime font size configuration
- add test for 12x22 font

In version 3,
'video console: add select font logic to vidconsole uclass driver'
patch was removed in favor of already merged patch
'video: Add font functions to the vidconsole API'

Changes in v8:
- fix build with disabled CONFIG_VIDEO_COPY
- add 12X22 font to sandox defconfig

Dzmitry Sankouski (10):
video console: refactoring and optimization
video console: add support for fonts wider than 1 byte
video console: move 8x16 font data in named header
video console: implement multiple fonts configuration
video console: move vidconsole_get_font_size() logic to driver ops
video console: allow font size configuration at runtime
video console: add 12x22 Sun font from linux
video console: add 16x32 Terminus font from linux
video console: sandbox: add 12x22 font defconfigs
video console: add 12x22 console simple font test

cmd/Kconfig | 8 +
cmd/Makefile | 2 +-
cmd/font.c | 6 +-
common/splash.c | 17 +-
configs/sandbox_defconfig | 1 +
configs/sandbox_flattree_defconfig | 1 +
drivers/video/Kconfig | 30 +
drivers/video/Makefile | 6 +
drivers/video/console_core.c | 212 +
drivers/video/console_normal.c | 177 +-
drivers/video/console_rotate.c | 371 +-
drivers/video/console_truetype.c | 3 +-
drivers/video/vidconsole-uclass.c | 11 +
drivers/video/vidconsole_internal.h | 120 +
include/video_console.h | 17 +-
include/video_font.h | 31 +-
include/video_font_4x6.h | 11 +-
include/video_font_8x16.h | 4624 ++++++++++++++++++++
include/video_font_data.h | 4644 +-------------------
include/video_font_sun12x22.h | 6158 +++++++++++++++++++++++++++
include/video_font_ter16x32.h | 2062 +++++++++
test/cmd/font.c | 13 +-
test/dm/video.c | 41 +
23 files changed, 13518 insertions(+), 5048 deletions(-)
create mode 100644 drivers/video/console_core.c
create mode 100644 drivers/video/vidconsole_internal.h
create mode 100644 include/video_font_8x16.h
create mode 100644 include/video_font_sun12x22.h
create mode 100644 include/video_font_ter16x32.h

--
2.30.2