]> git.ipfire.org Git - thirdparty/u-boot.git/blob - cmd/cls.c
video: Add a note about the broken implementation
[thirdparty/u-boot.git] / cmd / cls.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3 * (C) Copyright 2018
4 * DENX Software Engineering, Anatolij Gustschin <agust@denx.de>
5 *
6 * cls - clear screen command
7 */
8 #include <common.h>
9 #include <command.h>
10 #include <dm.h>
11 #include <video_console.h>
12
13 #define CSI "\x1b["
14
15 static int do_video_clear(struct cmd_tbl *cmdtp, int flag, int argc,
16 char *const argv[])
17 {
18 __maybe_unused struct udevice *dev;
19
20 /*
21 * Send clear screen and home
22 *
23 * FIXME(Heinrich Schuchardt <xypron.glpk@gmx.de>): This should go
24 * through an API and only be written to serial terminals, not video
25 * displays
26 */
27 printf(CSI "2J" CSI "1;1H");
28 if (IS_ENABLED(CONFIG_VIDEO_ANSI))
29 return 0;
30
31 if (IS_ENABLED(CONFIG_VIDEO)) {
32 if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
33 return CMD_RET_FAILURE;
34 if (vidconsole_clear_and_reset(dev))
35 return CMD_RET_FAILURE;
36 }
37
38 return CMD_RET_SUCCESS;
39 }
40
41 U_BOOT_CMD(cls, 1, 1, do_video_clear, "clear screen", "");