|
@@ -1855,8 +1855,6 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
|
|
|
struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
|
|
|
struct display *p = &fb_display[vc->vc_num];
|
|
|
int scroll_partial = info->flags & FBINFO_PARTIAL_PAN_OK;
|
|
|
- unsigned short saved_ec;
|
|
|
- int ret;
|
|
|
|
|
|
if (fbcon_is_inactive(vc, info))
|
|
|
return -EINVAL;
|
|
@@ -1869,11 +1867,6 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
|
|
|
* whole screen (prevents flicker).
|
|
|
*/
|
|
|
|
|
|
- saved_ec = vc->vc_video_erase_char;
|
|
|
- vc->vc_video_erase_char = vc->vc_scrl_erase_char;
|
|
|
-
|
|
|
- ret = 0;
|
|
|
-
|
|
|
switch (dir) {
|
|
|
case SM_UP:
|
|
|
if (count > vc->vc_rows) /* Maximum realistic size */
|
|
@@ -1890,9 +1883,9 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
|
|
|
scr_memsetw((unsigned short *) (vc->vc_origin +
|
|
|
vc->vc_size_row *
|
|
|
(b - count)),
|
|
|
- vc->vc_scrl_erase_char,
|
|
|
+ vc->vc_video_erase_char,
|
|
|
vc->vc_size_row * count);
|
|
|
- ret = 1;
|
|
|
+ return 1;
|
|
|
break;
|
|
|
|
|
|
case SCROLL_WRAP_MOVE:
|
|
@@ -1962,10 +1955,9 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
|
|
|
scr_memsetw((unsigned short *) (vc->vc_origin +
|
|
|
vc->vc_size_row *
|
|
|
(b - count)),
|
|
|
- vc->vc_scrl_erase_char,
|
|
|
+ vc->vc_video_erase_char,
|
|
|
vc->vc_size_row * count);
|
|
|
- ret = 1;
|
|
|
- break;
|
|
|
+ return 1;
|
|
|
}
|
|
|
break;
|
|
|
|
|
@@ -1982,9 +1974,9 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
|
|
|
scr_memsetw((unsigned short *) (vc->vc_origin +
|
|
|
vc->vc_size_row *
|
|
|
t),
|
|
|
- vc->vc_scrl_erase_char,
|
|
|
+ vc->vc_video_erase_char,
|
|
|
vc->vc_size_row * count);
|
|
|
- ret = 1;
|
|
|
+ return 1;
|
|
|
break;
|
|
|
|
|
|
case SCROLL_WRAP_MOVE:
|
|
@@ -2052,15 +2044,12 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
|
|
|
scr_memsetw((unsigned short *) (vc->vc_origin +
|
|
|
vc->vc_size_row *
|
|
|
t),
|
|
|
- vc->vc_scrl_erase_char,
|
|
|
+ vc->vc_video_erase_char,
|
|
|
vc->vc_size_row * count);
|
|
|
- ret = 1;
|
|
|
- break;
|
|
|
+ return 1;
|
|
|
}
|
|
|
- break;
|
|
|
}
|
|
|
- vc->vc_video_erase_char = saved_ec;
|
|
|
- return ret;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2522,9 +2511,6 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
|
|
|
c = vc->vc_video_erase_char;
|
|
|
vc->vc_video_erase_char =
|
|
|
((c & 0xfe00) >> 1) | (c & 0xff);
|
|
|
- c = vc->vc_scrl_erase_char;
|
|
|
- vc->vc_scrl_erase_char =
|
|
|
- ((c & 0xFE00) >> 1) | (c & 0xFF);
|
|
|
vc->vc_attr >>= 1;
|
|
|
}
|
|
|
} else if (!vc->vc_hi_font_mask && cnt == 512) {
|
|
@@ -2555,14 +2541,9 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
|
|
|
if (vc->vc_can_do_color) {
|
|
|
vc->vc_video_erase_char =
|
|
|
((c & 0xff00) << 1) | (c & 0xff);
|
|
|
- c = vc->vc_scrl_erase_char;
|
|
|
- vc->vc_scrl_erase_char =
|
|
|
- ((c & 0xFF00) << 1) | (c & 0xFF);
|
|
|
vc->vc_attr <<= 1;
|
|
|
- } else {
|
|
|
+ } else
|
|
|
vc->vc_video_erase_char = c & ~0x100;
|
|
|
- vc->vc_scrl_erase_char = c & ~0x100;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
}
|