All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: Simon Glass <sjg@chromium.org>, Anatolij Gustschin <agust@denx.de>
Subject: [PATCH v3 07/12] video: Correct setting of cursor position
Date: Sun,  1 Oct 2023 19:14:42 -0600	[thread overview]
Message-ID: <20231002011450.462468-3-sjg@chromium.org> (raw)
In-Reply-To: <20231002011450.462468-1-sjg@chromium.org>

The ANSI codes are not correctly handled at present, in that the
requested X position is added to the current one.

Correct this and also call vidconsole_entry_start() to start a new text
line.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 drivers/video/vidconsole-uclass.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index 22d55df71f63..a312a1985242 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -125,6 +125,7 @@ void vidconsole_set_cursor_pos(struct udevice *dev, int x, int y)
 	priv->xcur_frac = VID_TO_POS(x);
 	priv->xstart_frac = priv->xcur_frac;
 	priv->ycur = y;
+	vidconsole_entry_start(dev);
 }
 
 /**
@@ -134,8 +135,10 @@ void vidconsole_set_cursor_pos(struct udevice *dev, int x, int y)
  * @row:	new row
  * @col:	new column
  */
-static void set_cursor_position(struct vidconsole_priv *priv, int row, int col)
+static void set_cursor_position(struct udevice *dev, int row, int col)
 {
+	struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
+
 	/*
 	 * Ensure we stay in the bounds of the screen.
 	 */
@@ -144,9 +147,7 @@ static void set_cursor_position(struct vidconsole_priv *priv, int row, int col)
 	if (col >= priv->cols)
 		col = priv->cols - 1;
 
-	priv->ycur = row * priv->y_charsize;
-	priv->xcur_frac = priv->xstart_frac +
-			  VID_TO_POS(col * priv->x_charsize);
+	vidconsole_position_cursor(dev, col, row);
 }
 
 /**
@@ -193,7 +194,7 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
 			int row = priv->row_saved;
 			int col = priv->col_saved;
 
-			set_cursor_position(priv, row, col);
+			set_cursor_position(dev, row, col);
 			priv->escape = 0;
 			return;
 		}
@@ -255,7 +256,7 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
 		if (row < 0)
 			row = 0;
 		/* Right and bottom overflows are handled in the callee. */
-		set_cursor_position(priv, row, col);
+		set_cursor_position(dev, row, col);
 		break;
 	}
 	case 'H':
@@ -279,7 +280,7 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
 		if (col)
 			--col;
 
-		set_cursor_position(priv, row, col);
+		set_cursor_position(dev, row, col);
 
 		break;
 	}
-- 
2.42.0.582.g8ccd20d70d-goog


  parent reply	other threads:[~2023-10-02  1:29 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-02  1:14 [PATCH v3 00/12] Resolve issues with booting distros on x86 Simon Glass
2023-10-02  1:14 ` [PATCH v3 01/12] efi: Correct handling of frame buffer Simon Glass
2023-11-05 14:06   ` Bin Meng
2023-11-15 13:17   ` Simon Glass
2023-10-02  1:14 ` [PATCH v3 02/12] bootstd: Refactor mmc prep to allow a different scan Simon Glass
2023-10-02  1:14 ` [PATCH v3 03/12] bootstd: Add a return code to bootflow menu Simon Glass
2023-10-02  1:14 ` [PATCH v3 04/12] x86: coreboot: Add a boot script Simon Glass
2023-11-05 14:06   ` Bin Meng
2023-10-02  1:14 ` [PATCH v3 05/12] usb: Avoid unbinding devices in use by bootflows Simon Glass
2023-10-02  1:14 ` [PATCH v3 06/12] expo: Correct background colour Simon Glass
2023-11-05 14:06   ` Bin Meng
2023-11-15 13:17   ` Simon Glass
2023-10-02  1:14 ` Simon Glass [this message]
2023-11-12 20:01   ` [PATCH v3 07/12] video: Correct setting of cursor position Simon Glass
2023-11-12 20:27     ` Anatolij Gustschin
2023-11-12 20:25   ` Anatolij Gustschin
2023-10-02  1:14 ` [PATCH v3 08/12] video: Drop unnecessary truetype operations from SPL Simon Glass
2023-11-05 14:06   ` Bin Meng
2023-10-02  1:14 ` [PATCH v3 09/12] x86: Enable SSE in 64-bit mode Simon Glass
2023-11-05 14:05   ` Bin Meng
2023-11-05 16:29     ` Simon Glass
2023-11-06 10:26       ` Bin Meng
2023-11-06 15:36         ` Tom Rini
2023-11-12 20:01           ` Simon Glass
2023-11-13 13:01             ` Bin Meng
2023-11-13 14:00               ` Simon Glass
2023-11-13 14:06               ` Tom Rini
2023-11-13 14:11                 ` Simon Glass
2023-10-02  1:14 ` [PATCH v3 10/12] x86: coreboot: Enable truetype fonts Simon Glass
2023-10-02  1:14 ` [PATCH v3 11/12] x86: qemu: Expand ROM size Simon Glass
2023-10-02  1:14 ` [PATCH v3 12/12] x86: qemu: Enable truetype fonts Simon Glass
2023-11-15 13:17 ` [PATCH v3 03/12] bootstd: Add a return code to bootflow menu Simon Glass
2023-11-15 13:17 ` [PATCH v3 02/12] bootstd: Refactor mmc prep to allow a different scan Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231002011450.462468-3-sjg@chromium.org \
    --to=sjg@chromium.org \
    --cc=agust@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.