aboutsummaryrefslogtreecommitdiff
path: root/cmd/cls.c
diff options
context:
space:
mode:
authorSimon Glass2023-03-10 12:47:21 -0800
committerHeinrich Schuchardt2023-03-13 13:53:01 +0100
commita76b60f8205eb7f02e17e10c13ad05e46a69c1fd (patch)
tree0b9cf40e88e1bbda70ac14410c8153cfb944bacb /cmd/cls.c
parent9f62a472dfb26ec14408a27938ddd2a25700009d (diff)
video: Clear the vidconsole rather than the video
It is better to clear the console device rather than the video device, since the console has the text display. We also need to reset the cursor position with the console, but not with the video device. Add a new function to handle this and update the 'cls' command to use it. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'cmd/cls.c')
-rw-r--r--cmd/cls.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/cmd/cls.c b/cmd/cls.c
index 40a32eeab63..073ba5a6c86 100644
--- a/cmd/cls.c
+++ b/cmd/cls.c
@@ -8,7 +8,7 @@
#include <common.h>
#include <command.h>
#include <dm.h>
-#include <video.h>
+#include <video_console.h>
#define CSI "\x1b["
@@ -19,12 +19,16 @@ static int do_video_clear(struct cmd_tbl *cmdtp, int flag, int argc,
/* Send clear screen and home */
printf(CSI "2J" CSI "1;1H");
- if (IS_ENABLED(CONFIG_VIDEO) && !IS_ENABLED(CONFIG_VIDEO_ANSI)) {
- if (uclass_first_device_err(UCLASS_VIDEO, &dev))
+ if (IS_ENABLED(CONFIG_VIDEO_ANSI))
+ return 0;
+
+ if (IS_ENABLED(CONFIG_VIDEO)) {
+ if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
return CMD_RET_FAILURE;
- if (video_clear(dev))
+ if (vidconsole_clear_and_reset(dev))
return CMD_RET_FAILURE;
}
+
return CMD_RET_SUCCESS;
}