[PATCH v2 0/7] vt: Simplify console-blanking interface
flat view
HOTtoday
From: Thomas Zimmermann <tzimmermann@suse.de>
Date: 2026-10-16 09:34:03
Also in:
linux-serial, lkml, sashiko-reviews
Revision v2 of 2 in this series.
Revisions (2)
- v1 [diff vs current]
- v2 current
Update con_blank from struct consw to use enum vesa_blank_mode according to its intented semantics. Handle unblanking in the separate new callback con_unblank. Update all consoles. Some background: the vt subsystem calls con_blank with what at first appears to be non-sensical value. This is because the blank value and the type of the blank parameter do not match: con_blank mixes up console blank state and monitor DPMS levels for power saving in the same argument. The implementation of con_blank in various consoles suffers from a similar problem: their interpretation of the given blank value often disagrees with what the value's type suggests. Patch 1 adds a new helper con_unblank, which handles all unblanking. This allows for changing con_blank to only handle blanking. There's support for both semantics while consoles are being converted. Patches 2 to 6 implement con_unblank for the individual consoles. With this, con_blank changes to its new semantics. Each console gets a single callback for blanking and a single callback for unblanking. Switching a console between text and graphics mode is currently tied to the blanking helpers. The mode_switch parameter controls this. As suggested in the earlier reviews, rather detect a mode switch from the existing state. The mode_switch parameter is deprecated. A later series might rework the mode switching entirely. With all consoles updated, patch 7 removes the old semantics and the mode_switch parameter. Tested with vgacon on a SiS 6202 VGA and with fbcon on a Matrox G200 VGA device. The latter also ran fbcon via DRM fbdev emulation. It's easy to test this with setterm, like this: setterm --blank force # blank setterm --blank poke # unblank setterm --powersave powerdown # set VESA DPMS level 3 setterm --blank force # blank and turn off monitor setterm --blank poke # unblank Blanking and unblanking still works in all tested cases. Newport and sticon are built-only, due to a lack of test equipment. v2: - rewrite series with con_unblank (GregKH) - drop mode_switch from console implementations Thomas Zimmermann (7): vt: Add con_unblank callback to struct consw dummycon: Implement struct consw.con_unblank fbcon: Implement struct consw.con_unblank newport_con: Implement struct consw.con_unblank sticon: Implement struct consw.con_unblank vgacon: Implement struct consw.con_unblank vt: Remove old-style con_blank drivers/tty/vt/vt.c | 9 ++--- drivers/video/console/dummycon.c | 18 +++++++-- drivers/video/console/newport_con.c | 27 ++++++------- drivers/video/console/sticon.c | 27 ++++++++----- drivers/video/console/vgacon.c | 60 +++++++++++++++++------------ drivers/video/fbdev/core/fbcon.c | 60 ++++++++++++++++++++--------- include/linux/console.h | 12 +++--- 7 files changed, 132 insertions(+), 81 deletions(-) base-commit: b0bd9fb9e92aae2a653efa1d0407daa2aabe99d0 -- 2.55.0