[PATCH v3 10/13] video: Remove duplicate cursor-positioning function
Simon Glass
sjg at chromium.org
Fri Mar 10 21:47:20 CET 2023
There are two functions for positioning the cursor on the console. Remove
one of them.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
(no changes since v1)
drivers/video/vidconsole-uclass.c | 44 +++++++------------------------
1 file changed, 10 insertions(+), 34 deletions(-)
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index a5f2350ca1c..627db8208b0 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -126,26 +126,14 @@ void vidconsole_set_cursor_pos(struct udevice *dev, int x, int y)
priv->ycur = y;
}
-/**
- * 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)
+void vidconsole_position_cursor(struct udevice *dev, uint col, uint row)
{
- /*
- * 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;
-
- priv->ycur = row * priv->y_charsize;
- priv->xcur_frac = priv->xstart_frac +
- VID_TO_POS(col * priv->x_charsize);
+ struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
+ short x, y;
+
+ 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);
}
/**
@@ -192,7 +180,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);
+ vidconsole_position_cursor(dev, col, row);
priv->escape = 0;
return;
}
@@ -254,7 +242,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);
+ vidconsole_position_cursor(dev, col, row);
break;
}
case 'H':
@@ -278,7 +266,7 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
if (col)
--col;
- set_cursor_position(priv, row, col);
+ vidconsole_position_cursor(dev, col, row);
break;
}
@@ -655,15 +643,3 @@ int vidconsole_memmove(struct udevice *dev, void *dst, const void *src,
return vidconsole_sync_copy(dev, dst, dst + size);
}
#endif
-
-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);
-}
--
2.40.0.rc1.284.g88254d51c5-goog
More information about the U-Boot
mailing list