cmd: add serial console support for the cls command
Currently the cls command does not support the serial console The screen can be cleared in the video uclass, the colored frame buffer console, and the serial console by sending the same escape sequence. This reduces the cls command to a single printf() statement on most boards. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		
							parent
							
								
									589c659035
								
							
						
					
					
						commit
						bfaa51dd4a
					
				
							
								
								
									
										10
									
								
								cmd/cls.c
								
								
								
								
							
							
						
						
									
										10
									
								
								cmd/cls.c
								
								
								
								
							|  | @ -11,17 +11,23 @@ | ||||||
| #include <lcd.h> | #include <lcd.h> | ||||||
| #include <video.h> | #include <video.h> | ||||||
| 
 | 
 | ||||||
|  | #define CSI "\x1b[" | ||||||
|  | 
 | ||||||
| static int do_video_clear(struct cmd_tbl *cmdtp, int flag, int argc, | static int do_video_clear(struct cmd_tbl *cmdtp, int flag, int argc, | ||||||
| 			  char *const argv[]) | 			  char *const argv[]) | ||||||
| { | { | ||||||
| #if defined(CONFIG_DM_VIDEO) | 	__maybe_unused struct udevice *dev; | ||||||
| 	struct udevice *dev; |  | ||||||
| 
 | 
 | ||||||
|  | 	/*  Send clear screen and home */ | ||||||
|  | 	printf(CSI "2J" CSI "1;1H"); | ||||||
|  | #if defined(CONFIG_DM_VIDEO) | ||||||
|  | #if !defined(CONFIG_VIDEO_ANSI) | ||||||
| 	if (uclass_first_device_err(UCLASS_VIDEO, &dev)) | 	if (uclass_first_device_err(UCLASS_VIDEO, &dev)) | ||||||
| 		return CMD_RET_FAILURE; | 		return CMD_RET_FAILURE; | ||||||
| 
 | 
 | ||||||
| 	if (video_clear(dev)) | 	if (video_clear(dev)) | ||||||
| 		return CMD_RET_FAILURE; | 		return CMD_RET_FAILURE; | ||||||
|  | #endif | ||||||
| #elif defined(CONFIG_CFB_CONSOLE) | #elif defined(CONFIG_CFB_CONSOLE) | ||||||
| 	video_clear(); | 	video_clear(); | ||||||
| #elif defined(CONFIG_LCD) | #elif defined(CONFIG_LCD) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue