Commit dae3e6b6 authored by Jiri Slaby (SUSE)'s avatar Jiri Slaby (SUSE) Committed by Greg Kroah-Hartman

tty: vt: make init parameter of consw::con_init() a bool

The 'init' parameter of consw::con_init() is true for the first call of
the hook on a particular console. So make the parameter a bool.

And document the hook.
Signed-off-by: default avatar"Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Cc: Helge Deller <deller@gmx.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-parisc@vger.kernel.org
Tested-by: Helge Deller <deller@gmx.de> # parisc STI console
Link: https://lore.kernel.org/r/20240122110401.7289-21-jirislaby@kernel.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7995c30d
...@@ -999,7 +999,7 @@ int vc_cons_allocated(unsigned int i) ...@@ -999,7 +999,7 @@ int vc_cons_allocated(unsigned int i)
return (i < MAX_NR_CONSOLES && vc_cons[i].d); return (i < MAX_NR_CONSOLES && vc_cons[i].d);
} }
static void visual_init(struct vc_data *vc, int num, int init) static void visual_init(struct vc_data *vc, int num, bool init)
{ {
/* ++Geert: vc->vc_sw->con_init determines console size */ /* ++Geert: vc->vc_sw->con_init determines console size */
if (vc->vc_sw) if (vc->vc_sw)
...@@ -1083,7 +1083,7 @@ int vc_allocate(unsigned int currcons) /* return 0 on success */ ...@@ -1083,7 +1083,7 @@ int vc_allocate(unsigned int currcons) /* return 0 on success */
vc->port.ops = &vc_port_ops; vc->port.ops = &vc_port_ops;
INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK); INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
visual_init(vc, currcons, 1); visual_init(vc, currcons, true);
if (!*vc->uni_pagedict_loc) if (!*vc->uni_pagedict_loc)
con_set_default_unimap(vc); con_set_default_unimap(vc);
...@@ -3513,7 +3513,7 @@ static int __init con_init(void) ...@@ -3513,7 +3513,7 @@ static int __init con_init(void)
vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT); vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK); INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
tty_port_init(&vc->port); tty_port_init(&vc->port);
visual_init(vc, currcons, 1); visual_init(vc, currcons, true);
/* Assuming vc->vc_{cols,rows,screenbuf_size} are sane here. */ /* Assuming vc->vc_{cols,rows,screenbuf_size} are sane here. */
vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT); vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT);
vc_init(vc, currcons || !vc->vc_sw->con_save_screen); vc_init(vc, currcons || !vc->vc_sw->con_save_screen);
...@@ -3682,7 +3682,7 @@ static int do_bind_con_driver(const struct consw *csw, int first, int last, ...@@ -3682,7 +3682,7 @@ static int do_bind_con_driver(const struct consw *csw, int first, int last,
old_was_color = vc->vc_can_do_color; old_was_color = vc->vc_can_do_color;
vc->vc_sw->con_deinit(vc); vc->vc_sw->con_deinit(vc);
vc->vc_origin = (unsigned long)vc->vc_screenbuf; vc->vc_origin = (unsigned long)vc->vc_screenbuf;
visual_init(vc, i, 0); visual_init(vc, i, false);
set_origin(vc); set_origin(vc);
update_attr(vc); update_attr(vc);
......
...@@ -98,7 +98,7 @@ static const char *dummycon_startup(void) ...@@ -98,7 +98,7 @@ static const char *dummycon_startup(void)
return "dummy device"; return "dummy device";
} }
static void dummycon_init(struct vc_data *vc, int init) static void dummycon_init(struct vc_data *vc, bool init)
{ {
vc->vc_can_do_color = 1; vc->vc_can_do_color = 1;
if (init) { if (init) {
......
...@@ -352,7 +352,7 @@ static const char *mdacon_startup(void) ...@@ -352,7 +352,7 @@ static const char *mdacon_startup(void)
return "MDA-2"; return "MDA-2";
} }
static void mdacon_init(struct vc_data *c, int init) static void mdacon_init(struct vc_data *c, bool init)
{ {
c->vc_complement_mask = 0x0800; /* reverse video */ c->vc_complement_mask = 0x0800; /* reverse video */
c->vc_display_fg = &mda_display_fg; c->vc_display_fg = &mda_display_fg;
......
...@@ -324,7 +324,7 @@ static const char *newport_startup(void) ...@@ -324,7 +324,7 @@ static const char *newport_startup(void)
return NULL; return NULL;
} }
static void newport_init(struct vc_data *vc, int init) static void newport_init(struct vc_data *vc, bool init)
{ {
int cols, rows; int cols, rows;
......
...@@ -273,7 +273,7 @@ static int sticon_font_set(struct vc_data *vc, struct console_font *font, ...@@ -273,7 +273,7 @@ static int sticon_font_set(struct vc_data *vc, struct console_font *font,
return sticon_set_font(vc, font, vpitch); return sticon_set_font(vc, font, vpitch);
} }
static void sticon_init(struct vc_data *c, int init) static void sticon_init(struct vc_data *c, bool init)
{ {
struct sti_struct *sti = sticon_sti; struct sti_struct *sti = sticon_sti;
int vc_cols, vc_rows; int vc_cols, vc_rows;
......
...@@ -367,7 +367,7 @@ static const char *vgacon_startup(void) ...@@ -367,7 +367,7 @@ static const char *vgacon_startup(void)
return display_desc; return display_desc;
} }
static void vgacon_init(struct vc_data *c, int init) static void vgacon_init(struct vc_data *c, bool init)
{ {
struct uni_pagedict *p; struct uni_pagedict *p;
...@@ -384,7 +384,7 @@ static void vgacon_init(struct vc_data *c, int init) ...@@ -384,7 +384,7 @@ static void vgacon_init(struct vc_data *c, int init)
c->vc_scan_lines = vga_scan_lines; c->vc_scan_lines = vga_scan_lines;
c->vc_font.height = c->vc_cell_height = vga_video_font_height; c->vc_font.height = c->vc_cell_height = vga_video_font_height;
/* set dimensions manually if init != 0 since vc_resize() will fail */ /* set dimensions manually if init is true since vc_resize() will fail */
if (init) { if (init) {
c->vc_cols = vga_video_num_columns; c->vc_cols = vga_video_num_columns;
c->vc_rows = vga_video_num_lines; c->vc_rows = vga_video_num_lines;
......
...@@ -988,7 +988,7 @@ static const char *fbcon_startup(void) ...@@ -988,7 +988,7 @@ static const char *fbcon_startup(void)
return display_desc; return display_desc;
} }
static void fbcon_init(struct vc_data *vc, int init) static void fbcon_init(struct vc_data *vc, bool init)
{ {
struct fb_info *info; struct fb_info *info;
struct fbcon_ops *ops; struct fbcon_ops *ops;
......
...@@ -36,6 +36,8 @@ enum vc_intensity; ...@@ -36,6 +36,8 @@ enum vc_intensity;
/** /**
* struct consw - callbacks for consoles * struct consw - callbacks for consoles
* *
* @con_init: initialize the console on @vc. @init is true for the very first
* call on this @vc.
* @con_scroll: move lines from @top to @bottom in direction @dir by @lines. * @con_scroll: move lines from @top to @bottom in direction @dir by @lines.
* Return true if no generic handling should be done. * Return true if no generic handling should be done.
* Invoked by csi_M and printing to the console. * Invoked by csi_M and printing to the console.
...@@ -46,7 +48,7 @@ enum vc_intensity; ...@@ -46,7 +48,7 @@ enum vc_intensity;
struct consw { struct consw {
struct module *owner; struct module *owner;
const char *(*con_startup)(void); const char *(*con_startup)(void);
void (*con_init)(struct vc_data *vc, int init); void (*con_init)(struct vc_data *vc, bool init);
void (*con_deinit)(struct vc_data *vc); void (*con_deinit)(struct vc_data *vc);
void (*con_clear)(struct vc_data *vc, int sy, int sx, int height, void (*con_clear)(struct vc_data *vc, int sy, int sx, int height,
int width); int width);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment