summaryrefslogtreecommitdiffstats
path: root/drivers/video/vidconsole-uclass.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/vidconsole-uclass.c')
-rw-r--r--drivers/video/vidconsole-uclass.c46
1 files changed, 32 insertions, 14 deletions
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index 3a07f36ce2..81b65f5aae 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -89,9 +89,7 @@ static int vidconsole_back(struct udevice *dev)
if (priv->ycur < 0)
priv->ycur = 0;
}
- video_sync(dev->parent, false);
-
- return 0;
+ return video_sync(dev->parent, false);
}
/* Move to a newline, scrolling the display if necessary */
@@ -101,7 +99,7 @@ static void vidconsole_newline(struct udevice *dev)
struct udevice *vid_dev = dev->parent;
struct video_priv *vid_priv = dev_get_uclass_priv(vid_dev);
const int rows = CONFIG_CONSOLE_SCROLL_LINES;
- int i;
+ int i, ret;
priv->xcur_frac = priv->xstart_frac;
priv->ycur += priv->y_charsize;
@@ -116,7 +114,12 @@ static void vidconsole_newline(struct udevice *dev)
}
priv->last_ch = 0;
- video_sync(dev->parent, false);
+ ret = video_sync(dev->parent, false);
+ if (ret) {
+#ifdef DEBUG
+ console_puts_select_stderr(true, "[vc err: video_sync]");
+#endif
+ }
}
static const struct vid_rgb colors[VID_COLOR_COUNT] = {
@@ -348,8 +351,15 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
parsenum(priv->escape_buf + 1, &mode);
if (mode == 2) {
+ int ret;
+
video_clear(dev->parent);
- video_sync(dev->parent, false);
+ ret = video_sync(dev->parent, false);
+ if (ret) {
+#ifdef DEBUG
+ console_puts_select_stderr(true, "[vc err: video_sync]");
+#endif
+ }
priv->ycur = 0;
priv->xcur_frac = priv->xstart_frac;
} else {
@@ -565,7 +575,12 @@ static void vidconsole_putc(struct stdio_dev *sdev, const char ch)
console_puts_select_stderr(true, "[vc err: putc]");
#endif
}
- video_sync(dev->parent, false);
+ ret = video_sync(dev->parent, false);
+ if (ret) {
+#ifdef DEBUG
+ console_puts_select_stderr(true, "[vc err: video_sync]");
+#endif
+ }
}
static void vidconsole_puts(struct stdio_dev *sdev, const char *s)
@@ -582,7 +597,12 @@ static void vidconsole_puts(struct stdio_dev *sdev, const char *s)
console_puts_select_stderr(true, str);
#endif
}
- video_sync(dev->parent, false);
+ ret = video_sync(dev->parent, false);
+ if (ret) {
+#ifdef DEBUG
+ console_puts_select_stderr(true, "[vc err: video_sync]");
+#endif
+ }
}
/* Set up the number of rows and colours (rotated drivers override this) */
@@ -606,9 +626,9 @@ static int vidconsole_post_probe(struct udevice *dev)
if (!priv->tab_width_frac)
priv->tab_width_frac = VID_TO_POS(priv->x_charsize) * 8;
- if (dev->seq) {
+ if (dev_seq(dev)) {
snprintf(sdev->name, sizeof(sdev->name), "vidconsole%d",
- dev->seq);
+ dev_seq(dev));
} else {
strcpy(sdev->name, "vidconsole");
}
@@ -626,7 +646,7 @@ UCLASS_DRIVER(vidconsole) = {
.name = "vidconsole0",
.pre_probe = vidconsole_pre_probe,
.post_probe = vidconsole_post_probe,
- .per_device_auto_alloc_size = sizeof(struct vidconsole_priv),
+ .per_device_auto = sizeof(struct vidconsole_priv),
};
#ifdef CONFIG_VIDEO_COPY
@@ -691,9 +711,7 @@ static int do_video_puts(struct cmd_tbl *cmdtp, int flag, int argc,
for (s = argv[1]; *s; s++)
vidconsole_put_char(dev, *s);
- video_sync(dev->parent, false);
-
- return 0;
+ return video_sync(dev->parent, false);
}
U_BOOT_CMD(