From 118f020d9a6d84b52cd533cfe5b02feae7e5bdde Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Sat, 10 Nov 2018 19:55:48 +0100 Subject: dm: video: correctly set the cursor position The terminal escape sequence ESC [ ; H is used to set the cursor position. According to the ECMA 48 standard the upper left corner in the escape sequences is [1, 1]. The video uclass uses [0, 0] as upper left corner. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- drivers/video/vidconsole-uclass.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'drivers') diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c index 1874887..db40a13 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c @@ -272,6 +272,14 @@ static void vidconsole_escape_char(struct udevice *dev, char ch) s++; /* ; */ s = parsenum(s, &col); + /* + * Video origin is [0, 0], terminal origin is [1, 1]. + */ + if (row) + --row; + if (col) + --col; + set_cursor_position(priv, row, col); break; -- cgit v1.1