diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2018-02-08 21:47:09 +0100 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2018-03-06 10:00:32 +0100 |
commit | 3aeb0cbe126849bd8aaa332a18b7ab2fe0699c02 (patch) | |
tree | e82b6a7b2d0f6ff3270f40a616b259c143a04665 | |
parent | 5e62f828256d66e2b28def4f9ef20a2a05c2d04f (diff) | |
download | u-boot-midas-3aeb0cbe126849bd8aaa332a18b7ab2fe0699c02.tar.gz u-boot-midas-3aeb0cbe126849bd8aaa332a18b7ab2fe0699c02.tar.bz2 u-boot-midas-3aeb0cbe126849bd8aaa332a18b7ab2fe0699c02.zip |
dm: video: show correct colors in graphical console
Get RGB sequence in pixels right (swap blue and red).
Do not set reserved bits.
qemu-system-i386 -display sdl -vga virtio and
qemu-system-i386 -display sdl -vga cirrus
now display the similar colors (highlighting still missing) as
qemu-system-i386 -nographic
Testing is possible via
setenv efi_selftest test output
bootefi selftest
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | drivers/video/vidconsole-uclass.c | 13 | ||||
-rw-r--r-- | test/dm/video.c | 2 |
2 files changed, 7 insertions, 8 deletions
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c index 5f63c12d6c..8a2a377161 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c @@ -127,15 +127,14 @@ static void set_color(struct video_priv *priv, unsigned idx, unsigned *c) { switch (priv->bpix) { case VIDEO_BPP16: - *c = ((colors[idx].r >> 3) << 0) | - ((colors[idx].g >> 2) << 5) | - ((colors[idx].b >> 3) << 11); + *c = ((colors[idx].r >> 3) << 11) | + ((colors[idx].g >> 2) << 5) | + ((colors[idx].b >> 3) << 0); break; case VIDEO_BPP32: - *c = 0xff000000 | - (colors[idx].r << 0) | - (colors[idx].g << 8) | - (colors[idx].b << 16); + *c = (colors[idx].r << 16) | + (colors[idx].g << 8) | + (colors[idx].b << 0); break; default: /* unsupported, leave current color in place */ diff --git a/test/dm/video.c b/test/dm/video.c index 29917d0c2d..d158f1fcb3 100644 --- a/test/dm/video.c +++ b/test/dm/video.c @@ -186,7 +186,7 @@ static int dm_test_video_ansi(struct unit_test_state *uts) /* test colors (30-37 fg color, 40-47 bg color) */ vidconsole_put_string(con, ANSI_ESC"[30;41mfoo"); /* black on red */ vidconsole_put_string(con, ANSI_ESC"[33;44mbar"); /* yellow on blue */ - ut_asserteq(268, compress_frame_buffer(dev)); + ut_asserteq(267, compress_frame_buffer(dev)); return 0; } |