]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
video: Show an error when a vidconsole function fails
authorSimon Glass <sjg@chromium.org>
Fri, 3 Jul 2020 03:12:14 +0000 (21:12 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Thu, 9 Jul 2020 04:33:24 +0000 (12:33 +0800)
At present these functions fail silently even when debugging, which is not
very helpful. Add a way to print a message to the serial output when an
error is detected.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
drivers/video/vidconsole-uclass.c

index 3f20f70e9aa9ddaa2b533dac1b759103e90779a9..841cfdaf93bae7b67b756a97bbe1257ed9fa3476 100644 (file)
@@ -9,12 +9,13 @@
 
 #include <common.h>
 #include <command.h>
+#include <console.h>
 #include <log.h>
-#include <linux/ctype.h>
 #include <dm.h>
 #include <video.h>
 #include <video_console.h>
 #include <video_font.h>                /* Bitmap font for code page 437 */
+#include <linux/ctype.h>
 
 /*
  * Structure to describe a console color
@@ -556,16 +557,31 @@ int vidconsole_put_string(struct udevice *dev, const char *str)
 static void vidconsole_putc(struct stdio_dev *sdev, const char ch)
 {
        struct udevice *dev = sdev->priv;
+       int ret;
 
-       vidconsole_put_char(dev, ch);
+       ret = vidconsole_put_char(dev, ch);
+       if (ret) {
+#ifdef DEBUG
+               console_puts_select_stderr(true, "[vc err: putc]");
+#endif
+       }
        video_sync(dev->parent, false);
 }
 
 static void vidconsole_puts(struct stdio_dev *sdev, const char *s)
 {
        struct udevice *dev = sdev->priv;
+       int ret;
+
+       ret = vidconsole_put_string(dev, s);
+       if (ret) {
+#ifdef DEBUG
+               char str[30];
 
-       vidconsole_put_string(dev, s);
+               snprintf(str, sizeof(str), "[vc err: puts %d]", ret);
+               console_puts_select_stderr(true, str);
+#endif
+       }
        video_sync(dev->parent, false);
 }