mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-26 13:44:29 +08:00
video: Fix cfb_console for 4-bit wide font
The cfb_console can't handle 4-bit wide font properly, since with 4-bit wide font, all 8 bits are drawn. Unbreak the video_drawchars() function to correctly render 4-bits only on such fonts. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
84f957f80b
commit
fd8cf99407
@ -452,6 +452,10 @@ static void video_drawchars(int xx, int yy, unsigned char *s, int count)
|
||||
((u32 *) dest)[0] =
|
||||
(video_font_draw_table8[bits >> 4] &
|
||||
eorx) ^ bgx;
|
||||
|
||||
if (VIDEO_FONT_WIDTH == 4)
|
||||
continue;
|
||||
|
||||
((u32 *) dest)[1] =
|
||||
(video_font_draw_table8[bits & 15] &
|
||||
eorx) ^ bgx;
|
||||
@ -477,6 +481,10 @@ static void video_drawchars(int xx, int yy, unsigned char *s, int count)
|
||||
SHORTSWAP32((video_font_draw_table15
|
||||
[bits >> 4 & 3] & eorx) ^
|
||||
bgx);
|
||||
|
||||
if (VIDEO_FONT_WIDTH == 4)
|
||||
continue;
|
||||
|
||||
((u32 *) dest)[2] =
|
||||
SHORTSWAP32((video_font_draw_table15
|
||||
[bits >> 2 & 3] & eorx) ^
|
||||
@ -507,6 +515,10 @@ static void video_drawchars(int xx, int yy, unsigned char *s, int count)
|
||||
SHORTSWAP32((video_font_draw_table16
|
||||
[bits >> 4 & 3] & eorx) ^
|
||||
bgx);
|
||||
|
||||
if (VIDEO_FONT_WIDTH == 4)
|
||||
continue;
|
||||
|
||||
((u32 *) dest)[2] =
|
||||
SHORTSWAP32((video_font_draw_table16
|
||||
[bits >> 2 & 3] & eorx) ^
|
||||
@ -541,6 +553,11 @@ static void video_drawchars(int xx, int yy, unsigned char *s, int count)
|
||||
((u32 *) dest)[3] =
|
||||
SWAP32((video_font_draw_table32
|
||||
[bits >> 4][3] & eorx) ^ bgx);
|
||||
|
||||
|
||||
if (VIDEO_FONT_WIDTH == 4)
|
||||
continue;
|
||||
|
||||
((u32 *) dest)[4] =
|
||||
SWAP32((video_font_draw_table32
|
||||
[bits & 15][0] & eorx) ^ bgx);
|
||||
@ -576,6 +593,10 @@ static void video_drawchars(int xx, int yy, unsigned char *s, int count)
|
||||
((u32 *) dest)[2] =
|
||||
(video_font_draw_table24[bits >> 4][2]
|
||||
& eorx) ^ bgx;
|
||||
|
||||
if (VIDEO_FONT_WIDTH == 4)
|
||||
continue;
|
||||
|
||||
((u32 *) dest)[3] =
|
||||
(video_font_draw_table24[bits & 15][0]
|
||||
& eorx) ^ bgx;
|
||||
|
Loading…
Reference in New Issue
Block a user