[PATCH] fbcon: Consolidate redundant code
Lot's of redundant code scattered throughout fbcon.c. Consolidate them all into one function, fbcon_update_softback(). Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
c465e05a03
commit
4d9c5b6eb4
|
@ -281,6 +281,18 @@ static inline int get_color(struct vc_data *vc, struct fb_info *info,
|
|||
return color;
|
||||
}
|
||||
|
||||
static void fbcon_update_softback(struct vc_data *vc)
|
||||
{
|
||||
int l = fbcon_softback_size / vc->vc_size_row;
|
||||
|
||||
if (l > 5)
|
||||
softback_end = softback_buf + l * vc->vc_size_row;
|
||||
else
|
||||
/* Smaller scrollback makes no sense, and 0 would screw
|
||||
the operation totally */
|
||||
softback_top = 0;
|
||||
}
|
||||
|
||||
static void fb_flashcursor(void *private)
|
||||
{
|
||||
struct fb_info *info = private;
|
||||
|
@ -1007,16 +1019,8 @@ static void fbcon_init(struct vc_data *vc, int init)
|
|||
if (logo)
|
||||
fbcon_prepare_logo(vc, info, cols, rows, new_cols, new_rows);
|
||||
|
||||
if (vc == svc && softback_buf) {
|
||||
int l = fbcon_softback_size / vc->vc_size_row;
|
||||
if (l > 5)
|
||||
softback_end = softback_buf + l * vc->vc_size_row;
|
||||
else {
|
||||
/* Smaller scrollback makes no sense, and 0 would screw
|
||||
the operation totally */
|
||||
softback_top = 0;
|
||||
}
|
||||
}
|
||||
if (vc == svc && softback_buf)
|
||||
fbcon_update_softback(vc);
|
||||
}
|
||||
|
||||
static void fbcon_deinit(struct vc_data *vc)
|
||||
|
@ -1223,18 +1227,8 @@ static void fbcon_set_disp(struct fb_info *info, struct fb_var_screeninfo *var,
|
|||
vc_resize(vc, cols, rows);
|
||||
if (CON_IS_VISIBLE(vc)) {
|
||||
update_screen(vc);
|
||||
if (softback_buf) {
|
||||
int l = fbcon_softback_size / vc->vc_size_row;
|
||||
|
||||
if (l > 5)
|
||||
softback_end = softback_buf + l *
|
||||
vc->vc_size_row;
|
||||
else {
|
||||
/* Smaller scrollback makes no sense, and 0
|
||||
would screw the operation totally */
|
||||
softback_top = 0;
|
||||
}
|
||||
}
|
||||
if (softback_buf)
|
||||
fbcon_update_softback(vc);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1933,19 +1927,11 @@ static int fbcon_switch(struct vc_data *vc)
|
|||
info = registered_fb[con2fb_map[vc->vc_num]];
|
||||
|
||||
if (softback_top) {
|
||||
int l = fbcon_softback_size / vc->vc_size_row;
|
||||
if (softback_lines)
|
||||
fbcon_set_origin(vc);
|
||||
softback_top = softback_curr = softback_in = softback_buf;
|
||||
softback_lines = 0;
|
||||
|
||||
if (l > 5)
|
||||
softback_end = softback_buf + l * vc->vc_size_row;
|
||||
else {
|
||||
/* Smaller scrollback makes no sense, and 0 would screw
|
||||
the operation totally */
|
||||
softback_top = 0;
|
||||
}
|
||||
fbcon_update_softback(vc);
|
||||
}
|
||||
|
||||
if (logo_shown >= 0) {
|
||||
|
@ -2235,17 +2221,8 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
|
|||
/* reset wrap/pan */
|
||||
info->var.xoffset = info->var.yoffset = p->yscroll = 0;
|
||||
vc_resize(vc, info->var.xres / w, info->var.yres / h);
|
||||
if (CON_IS_VISIBLE(vc) && softback_buf) {
|
||||
int l = fbcon_softback_size / vc->vc_size_row;
|
||||
if (l > 5)
|
||||
softback_end =
|
||||
softback_buf + l * vc->vc_size_row;
|
||||
else {
|
||||
/* Smaller scrollback makes no sense, and 0 would screw
|
||||
the operation totally */
|
||||
softback_top = 0;
|
||||
}
|
||||
}
|
||||
if (CON_IS_VISIBLE(vc) && softback_buf)
|
||||
fbcon_update_softback(vc);
|
||||
} else if (CON_IS_VISIBLE(vc)
|
||||
&& vc->vc_mode == KD_TEXT) {
|
||||
fbcon_clear_margins(vc, 0);
|
||||
|
@ -2615,16 +2592,8 @@ static void fbcon_modechanged(struct fb_info *info)
|
|||
update_var(vc->vc_num, info);
|
||||
fbcon_set_palette(vc, color_table);
|
||||
update_screen(vc);
|
||||
if (softback_buf) {
|
||||
int l = fbcon_softback_size / vc->vc_size_row;
|
||||
if (l > 5)
|
||||
softback_end = softback_buf + l * vc->vc_size_row;
|
||||
else {
|
||||
/* Smaller scrollback makes no sense, and 0
|
||||
would screw the operation totally */
|
||||
softback_top = 0;
|
||||
}
|
||||
}
|
||||
if (softback_buf)
|
||||
fbcon_update_softback(vc);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2659,16 +2628,8 @@ static void fbcon_set_all_vcs(struct fb_info *info)
|
|||
update_var(vc->vc_num, info);
|
||||
fbcon_set_palette(vc, color_table);
|
||||
update_screen(vc);
|
||||
if (softback_buf) {
|
||||
int l = fbcon_softback_size / vc->vc_size_row;
|
||||
if (l > 5)
|
||||
softback_end = softback_buf + l * vc->vc_size_row;
|
||||
else {
|
||||
/* Smaller scrollback makes no sense, and 0
|
||||
would screw the operation totally */
|
||||
softback_top = 0;
|
||||
}
|
||||
}
|
||||
if (softback_buf)
|
||||
fbcon_update_softback(vc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue