mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
video: Factor out vidconsole_put_string()
Pull the vidconsole_put_string() function from DM tests, make it available to e.g. boards that want to display information on the LCD on boot. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Anatolij Gustschin <agust@denx.de> Reviewed-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
b5e1a82e92
commit
e63168a9ff
3 changed files with 31 additions and 10 deletions
|
@ -529,6 +529,20 @@ int vidconsole_put_char(struct udevice *dev, char ch)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int vidconsole_put_string(struct udevice *dev, const char *str)
|
||||
{
|
||||
const char *s;
|
||||
int ret;
|
||||
|
||||
for (s = str; *s; s++) {
|
||||
ret = vidconsole_put_char(dev, *s);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void vidconsole_putc(struct stdio_dev *sdev, const char ch)
|
||||
{
|
||||
struct udevice *dev = sdev->priv;
|
||||
|
@ -541,8 +555,7 @@ static void vidconsole_puts(struct stdio_dev *sdev, const char *s)
|
|||
{
|
||||
struct udevice *dev = sdev->priv;
|
||||
|
||||
while (*s)
|
||||
vidconsole_put_char(dev, *s++);
|
||||
vidconsole_put_string(dev, s);
|
||||
video_sync(dev->parent, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -214,6 +214,22 @@ int vidconsole_set_row(struct udevice *dev, uint row, int clr);
|
|||
*/
|
||||
int vidconsole_put_char(struct udevice *dev, char ch);
|
||||
|
||||
/**
|
||||
* vidconsole_put_string() - Output a string to the current console position
|
||||
*
|
||||
* Outputs a string to the console and advances the cursor. This function
|
||||
* handles wrapping to new lines and scrolling the console. Special
|
||||
* characters are handled also: \n, \r, \b and \t.
|
||||
*
|
||||
* The device always starts with the cursor at position 0,0 (top left). It
|
||||
* can be adjusted manually using vidconsole_position_cursor().
|
||||
*
|
||||
* @dev: Device to adjust
|
||||
* @str: String to write
|
||||
* @return 0 if OK, -ve on error
|
||||
*/
|
||||
int vidconsole_put_string(struct udevice *dev, const char *str);
|
||||
|
||||
/**
|
||||
* vidconsole_position_cursor() - Move the text cursor
|
||||
*
|
||||
|
|
|
@ -97,14 +97,6 @@ static int select_vidconsole(struct unit_test_state *uts, const char *drv_name)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void vidconsole_put_string(struct udevice *dev, const char *str)
|
||||
{
|
||||
const char *s;
|
||||
|
||||
for (s = str; *s; s++)
|
||||
vidconsole_put_char(dev, *s);
|
||||
}
|
||||
|
||||
/* Test text output works on the video console */
|
||||
static int dm_test_video_text(struct unit_test_state *uts)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue