aboutsummaryrefslogtreecommitdiff
path: root/drivers/video/console_truetype.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/console_truetype.c')
-rw-r--r--drivers/video/console_truetype.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c
index 3008660..6d7661d 100644
--- a/drivers/video/console_truetype.c
+++ b/drivers/video/console_truetype.c
@@ -5,6 +5,7 @@
#include <common.h>
#include <dm.h>
+#include <malloc.h>
#include <video.h>
#include <video_console.h>
@@ -287,6 +288,27 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
break;
}
#endif
+#ifdef CONFIG_VIDEO_BPP32
+ case VIDEO_BPP32: {
+ u32 *dst = (u32 *)line + xoff;
+ int i;
+
+ for (i = 0; i < width; i++) {
+ int val = *bits;
+ int out;
+
+ if (vid_priv->colour_bg)
+ val = 255 - val;
+ out = val | val << 8 | val << 16;
+ if (vid_priv->colour_fg)
+ *dst++ |= out;
+ else
+ *dst++ &= out;
+ bits++;
+ }
+ break;
+ }
+#endif
default:
free(data);
return -ENOSYS;