Signed-off-by: Alexey Gladkov <legion@xxxxxxxxxx> --- drivers/video/console/vgacon.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index 8ef1579fa57f..b75d31ef3353 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c @@ -61,6 +61,10 @@ static struct vgastate vgastate; #define BLANK 0x0020 #define VGA_FONTWIDTH 8 /* VGA does not support fontwidths != 8 */ + +#define VGACON_MAX_FONT_WIDTH VGA_FONTWIDTH +#define VGACON_MAX_FONT_HEIGHT 32 + /* * Interface used by the world */ @@ -1013,6 +1017,19 @@ static int vgacon_adjust_height(struct vc_data *vc, unsigned fontheight) return 0; } +static int vgacon_font_info(struct vc_data *vc, struct console_font_info *info) +{ + info->min_width = VGACON_MAX_FONT_WIDTH; + info->min_height = 0; + + info->max_width = VGACON_MAX_FONT_WIDTH; + info->max_height = VGACON_MAX_FONT_HEIGHT; + + info->flags = KD_FONT_INFO_FLAG_LOW_SIZE | KD_FONT_INFO_FLAG_HIGH_SIZE; + + return 0; +} + static int vgacon_font_set(struct vc_data *c, struct console_font *font, unsigned int vpitch, unsigned int flags) { @@ -1022,7 +1039,8 @@ static int vgacon_font_set(struct vc_data *c, struct console_font *font, if (vga_video_type < VIDEO_TYPE_EGAM) return -EINVAL; - if (font->width != VGA_FONTWIDTH || font->height > 32 || vpitch != 32 || + if (font->width != VGACON_MAX_FONT_WIDTH || + font->height > VGACON_MAX_FONT_HEIGHT || vpitch != 32 || (charcount != 256 && charcount != 512)) return -EINVAL; @@ -1177,6 +1195,7 @@ const struct consw vga_con = { .con_scroll = vgacon_scroll, .con_switch = vgacon_switch, .con_blank = vgacon_blank, + .con_font_info = vgacon_font_info, .con_font_set = vgacon_font_set, .con_font_get = vgacon_font_get, .con_resize = vgacon_resize, -- 2.44.0