diff options
Diffstat (limited to 'drivers/tty/vt/vt.c')
| -rw-r--r-- | drivers/tty/vt/vt.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index 4bea1efaec9..b3915b7ad3e 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c @@ -1,6 +1,4 @@  /* - *  linux/drivers/char/vt.c - *   *  Copyright (C) 1991, 1992  Linus Torvalds   */ @@ -858,7 +856,7 @@ static int vc_do_resize(struct tty_struct *tty, struct vc_data *vc,  {  	unsigned long old_origin, new_origin, new_scr_end, rlth, rrem, err = 0;  	unsigned long end; -	unsigned int old_cols, old_rows, old_row_size, old_screen_size; +	unsigned int old_rows, old_row_size;  	unsigned int new_cols, new_rows, new_row_size, new_screen_size;  	unsigned int user;  	unsigned short *newscreen; @@ -887,9 +885,7 @@ static int vc_do_resize(struct tty_struct *tty, struct vc_data *vc,  		return -ENOMEM;  	old_rows = vc->vc_rows; -	old_cols = vc->vc_cols;  	old_row_size = vc->vc_size_row; -	old_screen_size = vc->vc_screenbuf_size;  	err = resize_screen(vc, new_cols, new_rows, user);  	if (err) { @@ -1197,6 +1193,13 @@ static void csi_J(struct vc_data *vc, int vpar)  					      vc->vc_x + 1);  			}  			break; +		case 3: /* erase scroll-back buffer (and whole display) */ +			scr_memsetw(vc->vc_screenbuf, vc->vc_video_erase_char, +				    vc->vc_screenbuf_size >> 1); +			set_origin(vc); +			if (CON_IS_VISIBLE(vc)) +				update_screen(vc); +			/* fall through */  		case 2: /* erase whole display */  			count = vc->vc_cols * vc->vc_rows;  			start = (unsigned short *)vc->vc_origin;  |