diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index 61f4216..1225de2 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -126,14 +126,26 @@
 	priv->ycur = y;
 }
 
-void vidconsole_position_cursor(struct udevice *dev, uint col, uint row)
+/**
+ * set_cursor_position() - set cursor position
+ *
+ * @priv:	private data of the video console
+ * @row:	new row
+ * @col:	new column
+ */
+static void set_cursor_position(struct vidconsole_priv *priv, int row, int col)
 {
-	struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
-	short x, y;
+	/*
+	 * Ensure we stay in the bounds of the screen.
+	 */
+	if (row >= priv->rows)
+		row = priv->rows - 1;
+	if (col >= priv->cols)
+		col = priv->cols - 1;
 
-	x = min_t(short, col, priv->cols - 1) * priv->x_charsize;
-	y = min_t(short, row, priv->rows - 1) * priv->y_charsize;
-	vidconsole_set_cursor_pos(dev, x, y);
+	priv->ycur = row * priv->y_charsize;
+	priv->xcur_frac = priv->xstart_frac +
+			  VID_TO_POS(col * priv->x_charsize);
 }
 
 /**
@@ -180,7 +192,7 @@
 			int row = priv->row_saved;
 			int col = priv->col_saved;
 
-			vidconsole_position_cursor(dev, col, row);
+			set_cursor_position(priv, row, col);
 			priv->escape = 0;
 			return;
 		}
@@ -242,7 +254,7 @@
 		if (row < 0)
 			row = 0;
 		/* Right and bottom overflows are handled in the callee. */
-		vidconsole_position_cursor(dev, col, row);
+		set_cursor_position(priv, row, col);
 		break;
 	}
 	case 'H':
@@ -266,7 +278,7 @@
 		if (col)
 			--col;
 
-		vidconsole_position_cursor(dev, col, row);
+		set_cursor_position(priv, row, col);
 
 		break;
 	}
@@ -655,3 +667,15 @@
 
 	return 0;
 }
+
+void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row)
+{
+	struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
+	struct udevice *vid_dev = dev->parent;
+	struct video_priv *vid_priv = dev_get_uclass_priv(vid_dev);
+	short x, y;
+
+	x = min_t(short, col * priv->x_charsize, vid_priv->xsize - 1);
+	y = min_t(short, row * priv->y_charsize, vid_priv->ysize - 1);
+	vidconsole_set_cursor_pos(dev, x, y);
+}
