video: Support VIDEO_X2R10G10B10 in truetype console

Without explicit support for VIDEO_X2R10G10B10 VIDEO_X8R8G8B8 white
will be rendered as cyan-ish. The conversion leaves to lowest 2 bits
unset for more compact code.

Signed-off-by: Janne Grunau <j@jannau.net>
This commit is contained in:
Janne Grunau 2024-01-17 23:27:34 +01:00 committed by Tom Rini
parent 04add62e8c
commit 3883c9add0

View file

@ -397,7 +397,10 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
if (vid_priv->colour_bg)
val = 255 - val;
out = val | val << 8 | val << 16;
if (vid_priv->format == VIDEO_X2R10G10B10)
out = val << 2 | val << 12 | val << 22;
else
out = val | val << 8 | val << 16;
if (vid_priv->colour_fg)
*dst++ |= out;
else
@ -911,7 +914,10 @@ static int truetype_set_cursor_visible(struct udevice *dev, bool visible,
for (i = 0; i < width; i++) {
int out;
out = val | val << 8 | val << 16;
if (vid_priv->format == VIDEO_X2R10G10B10)
out = val << 2 | val << 12 | val << 22;
else
out = val | val << 8 | val << 16;
if (vid_priv->colour_fg)
*dst++ |= out;
else