]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fbcon: Set rotate_font callback with related callbacks
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 9 Sep 2025 12:44:43 +0000 (14:44 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Fri, 19 Sep 2025 08:04:04 +0000 (10:04 +0200)
The field struct fbcon_par.rotate_font points to fbcon_rotate_font() if
the console is rotated. Set the callback in the same place as the other
callbacks. Prepares for declaring all fbcon callbacks in a dedicated
struct type.

If not rotated, fbcon_set_bitops() still clears the callback to NULL.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://lore.kernel.org/r/20250909124616.143365-4-tzimmermann@suse.de
drivers/video/fbdev/core/fbcon_ccw.c
drivers/video/fbdev/core/fbcon_cw.c
drivers/video/fbdev/core/fbcon_rotate.c
drivers/video/fbdev/core/fbcon_rotate.h
drivers/video/fbdev/core/fbcon_ud.c

index 2ba8ec4c3e2bc63e7548d55e20f82696c5939bb5..ba744b67a4fd90a18216455ce55d362bdf842855 100644 (file)
@@ -398,4 +398,5 @@ void fbcon_rotate_ccw(struct fbcon_par *par)
        par->clear_margins = ccw_clear_margins;
        par->cursor = ccw_cursor;
        par->update_start = ccw_update_start;
+       par->rotate_font = fbcon_rotate_font;
 }
index 4bd22d5ee5f4106c5508b5cae53402d9c26825f9..974bd9d9b7702f64d7207b9bda3315699f1d0f05 100644 (file)
@@ -381,4 +381,5 @@ void fbcon_rotate_cw(struct fbcon_par *par)
        par->clear_margins = cw_clear_margins;
        par->cursor = cw_cursor;
        par->update_start = cw_update_start;
+       par->rotate_font = fbcon_rotate_font;
 }
index 380b2746451a1ccf3ba987fd1daa393b66e80530..0c7cac71a9c2188bde8c6362438d667ed6816f11 100644 (file)
@@ -18,7 +18,7 @@
 #include "fbcon.h"
 #include "fbcon_rotate.h"
 
-static int fbcon_rotate_font(struct fb_info *info, struct vc_data *vc)
+int fbcon_rotate_font(struct fb_info *info, struct vc_data *vc)
 {
        struct fbcon_par *par = info->fbcon_par;
        int len, err = 0;
@@ -95,8 +95,6 @@ finished:
 
 void fbcon_set_rotate(struct fbcon_par *par)
 {
-       par->rotate_font = fbcon_rotate_font;
-
        switch (par->rotate) {
        case FB_ROTATE_CW:
                fbcon_rotate_cw(par);
index 48305e1a07631fbd2f8eab40692261596acbfa6f..784f3231a958f8053c13c99032f7e0233564c128 100644 (file)
@@ -90,7 +90,10 @@ static inline void rotate_ccw(const char *in, char *out, u32 width, u32 height)
        }
 }
 
+int fbcon_rotate_font(struct fb_info *info, struct vc_data *vc);
+
 extern void fbcon_rotate_cw(struct fbcon_par *par);
 extern void fbcon_rotate_ud(struct fbcon_par *par);
 extern void fbcon_rotate_ccw(struct fbcon_par *par);
+
 #endif
index 14b40e2bf323f9429c0e95febfac60b5ba81922a..1a214a4d538fbd3d711be35af41d3d2d6c9d5212 100644 (file)
@@ -425,4 +425,5 @@ void fbcon_rotate_ud(struct fbcon_par *par)
        par->clear_margins = ud_clear_margins;
        par->cursor = ud_cursor;
        par->update_start = ud_update_start;
+       par->rotate_font = fbcon_rotate_font;
 }