- fix missing graphics output on some x86 boards
- avoid using #ifdef in video code - add .gitignore for video font *.S files -----BEGIN PGP SIGNATURE----- iGwEABECACwWIQSC4hxrSoIUVfFO0kRM6ATMmsalXAUCXg5F7g4cYWd1c3RAZGVu eC5kZQAKCRBM6ATMmsalXKzNAJ93lUmXiaSDCJDTJ99G6RcpbDY98QCeKdAsgKEq +edrqBimoikBmbw0NYE= =+x5b -----END PGP SIGNATURE----- Merge tag 'fixes-v2020.01' of https://gitlab.denx.de/u-boot/custodians/u-boot-video - fix missing graphics output on some x86 boards - avoid using #ifdef in video code - add .gitignore for video font *.S files
This commit is contained in:
commit
4b75aa5aa7
@ -38,7 +38,6 @@ config BACKLIGHT_GPIO
|
||||
config VIDEO_BPP8
|
||||
bool "Support 8-bit-per-pixel displays"
|
||||
depends on DM_VIDEO
|
||||
default n
|
||||
help
|
||||
Support drawing text and bitmaps onto a 8-bit-per-pixel display.
|
||||
Enabling this will include code to support this display. Without
|
||||
@ -48,7 +47,6 @@ config VIDEO_BPP8
|
||||
config VIDEO_BPP16
|
||||
bool "Support 16-bit-per-pixel displays"
|
||||
depends on DM_VIDEO
|
||||
default n
|
||||
help
|
||||
Support drawing text and bitmaps onto a 16-bit-per-pixel display.
|
||||
Enabling this will include code to support this display. Without
|
||||
@ -58,7 +56,7 @@ config VIDEO_BPP16
|
||||
config VIDEO_BPP32
|
||||
bool "Support 32-bit-per-pixel displays"
|
||||
depends on DM_VIDEO
|
||||
default n
|
||||
default y if X86
|
||||
help
|
||||
Support drawing text and bitmaps onto a 32-bit-per-pixel display.
|
||||
Enabling this will include code to support this display. Without
|
||||
@ -68,7 +66,6 @@ config VIDEO_BPP32
|
||||
config VIDEO_ANSI
|
||||
bool "Support ANSI escape sequences in video console"
|
||||
depends on DM_VIDEO
|
||||
default n
|
||||
help
|
||||
Enable ANSI escape sequence decoding for a more fully functional
|
||||
console.
|
||||
|
@ -16,39 +16,36 @@
|
||||
static int console_normal_set_row(struct udevice *dev, uint row, int clr)
|
||||
{
|
||||
struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent);
|
||||
void * __maybe_unused line;
|
||||
int __maybe_unused pixels = VIDEO_FONT_HEIGHT * vid_priv->xsize;
|
||||
int __maybe_unused i;
|
||||
void *line;
|
||||
int pixels = VIDEO_FONT_HEIGHT * vid_priv->xsize;
|
||||
int i;
|
||||
|
||||
line = vid_priv->fb + row * VIDEO_FONT_HEIGHT * vid_priv->line_length;
|
||||
switch (vid_priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP8
|
||||
case VIDEO_BPP8: {
|
||||
uint8_t *dst = line;
|
||||
case VIDEO_BPP8:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
|
||||
uint8_t *dst = line;
|
||||
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
uint16_t *dst = line;
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
uint16_t *dst = line;
|
||||
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
uint32_t *dst = line;
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
uint32_t *dst = line;
|
||||
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
@ -76,7 +73,7 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y,
|
||||
struct vidconsole_priv *vc_priv = dev_get_uclass_priv(dev);
|
||||
struct udevice *vid = dev->parent;
|
||||
struct video_priv *vid_priv = dev_get_uclass_priv(vid);
|
||||
int __maybe_unused i, row;
|
||||
int i, row;
|
||||
void *line = vid_priv->fb + y * vid_priv->line_length +
|
||||
VID_TO_PIXEL(x_frac) * VNBYTES(vid_priv->bpix);
|
||||
|
||||
@ -85,45 +82,45 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y,
|
||||
|
||||
for (row = 0; row < VIDEO_FONT_HEIGHT; row++) {
|
||||
unsigned int idx = (u8)ch * VIDEO_FONT_HEIGHT + row;
|
||||
uchar __maybe_unused bits = video_fontdata[idx];
|
||||
uchar bits = video_fontdata[idx];
|
||||
|
||||
switch (vid_priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP8
|
||||
case VIDEO_BPP8: {
|
||||
uint8_t *dst = line;
|
||||
case VIDEO_BPP8:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
|
||||
uint8_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst++ = (bits & 0x80) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst++ = (bits & 0x80) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
uint16_t *dst = line;
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
uint16_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst++ = (bits & 0x80) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst++ = (bits & 0x80) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
uint32_t *dst = line;
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
uint32_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst++ = (bits & 0x80) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst++ = (bits & 0x80) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
@ -22,33 +22,30 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr)
|
||||
(row + 1) * VIDEO_FONT_HEIGHT * pbytes;
|
||||
for (j = 0; j < vid_priv->ysize; j++) {
|
||||
switch (vid_priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP8
|
||||
case VIDEO_BPP8: {
|
||||
uint8_t *dst = line;
|
||||
case VIDEO_BPP8:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
|
||||
uint8_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
uint16_t *dst = line;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
uint16_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
uint32_t *dst = line;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
uint32_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
@ -99,39 +96,39 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, char ch)
|
||||
|
||||
for (col = 0; col < VIDEO_FONT_HEIGHT; col++) {
|
||||
switch (vid_priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP8
|
||||
case VIDEO_BPP8: {
|
||||
uint8_t *dst = line;
|
||||
case VIDEO_BPP8:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
|
||||
uint8_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst-- = (pfont[i] & mask) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst-- = (pfont[i] & mask) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
uint16_t *dst = line;
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
uint16_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst-- = (pfont[i] & mask) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst-- = (pfont[i] & mask) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
uint32_t *dst = line;
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
uint32_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst-- = (pfont[i] & mask) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst-- = (pfont[i] & mask) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
@ -153,33 +150,30 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr)
|
||||
line = vid_priv->fb + vid_priv->ysize * vid_priv->line_length -
|
||||
(row + 1) * VIDEO_FONT_HEIGHT * vid_priv->line_length;
|
||||
switch (vid_priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP8
|
||||
case VIDEO_BPP8: {
|
||||
uint8_t *dst = line;
|
||||
case VIDEO_BPP8:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
|
||||
uint8_t *dst = line;
|
||||
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
uint16_t *dst = line;
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
uint16_t *dst = line;
|
||||
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
uint32_t *dst = line;
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
uint32_t *dst = line;
|
||||
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
for (i = 0; i < pixels; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
@ -226,42 +220,42 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, char ch)
|
||||
uchar bits = video_fontdata[idx];
|
||||
|
||||
switch (vid_priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP8
|
||||
case VIDEO_BPP8: {
|
||||
uint8_t *dst = line;
|
||||
case VIDEO_BPP8:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
|
||||
uint8_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst-- = (bits & 0x80) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst-- = (bits & 0x80) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
uint16_t *dst = line;
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
uint16_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst-- = (bits & 0x80) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst-- = (bits & 0x80) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
uint32_t *dst = line;
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
uint32_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst-- = (bits & 0x80) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
for (i = 0; i < VIDEO_FONT_WIDTH; i++) {
|
||||
*dst-- = (bits & 0x80) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
bits <<= 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
@ -281,33 +275,30 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr)
|
||||
line = vid_priv->fb + row * VIDEO_FONT_HEIGHT * pbytes;
|
||||
for (j = 0; j < vid_priv->ysize; j++) {
|
||||
switch (vid_priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP8
|
||||
case VIDEO_BPP8: {
|
||||
uint8_t *dst = line;
|
||||
case VIDEO_BPP8:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
|
||||
uint8_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
uint16_t *dst = line;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
uint16_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
uint32_t *dst = line;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
uint32_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++)
|
||||
*dst++ = clr;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
@ -356,39 +347,39 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, char ch)
|
||||
|
||||
for (col = 0; col < VIDEO_FONT_HEIGHT; col++) {
|
||||
switch (vid_priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP8
|
||||
case VIDEO_BPP8: {
|
||||
uint8_t *dst = line;
|
||||
case VIDEO_BPP8:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
|
||||
uint8_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst++ = (pfont[i] & mask) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst++ = (pfont[i] & mask) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
uint16_t *dst = line;
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
uint16_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst++ = (pfont[i] & mask) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst++ = (pfont[i] & mask) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
uint32_t *dst = line;
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
uint32_t *dst = line;
|
||||
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst++ = (pfont[i] & mask) ? vid_priv->colour_fg
|
||||
: vid_priv->colour_bg;
|
||||
for (i = 0; i < VIDEO_FONT_HEIGHT; i++) {
|
||||
*dst++ = (pfont[i] & mask) ?
|
||||
vid_priv->colour_fg :
|
||||
vid_priv->colour_bg;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
1
drivers/video/fonts/.gitignore
vendored
Normal file
1
drivers/video/fonts/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.S
|
@ -116,7 +116,6 @@ static void vidconsole_newline(struct udevice *dev)
|
||||
video_sync(dev->parent, false);
|
||||
}
|
||||
|
||||
#if CONFIG_IS_ENABLED(VIDEO_BPP16) || CONFIG_IS_ENABLED(VIDEO_BPP32)
|
||||
static const struct vid_rgb colors[VID_COLOR_COUNT] = {
|
||||
{ 0x00, 0x00, 0x00 }, /* black */
|
||||
{ 0xc0, 0x00, 0x00 }, /* red */
|
||||
@ -135,23 +134,22 @@ static const struct vid_rgb colors[VID_COLOR_COUNT] = {
|
||||
{ 0x00, 0xff, 0xff }, /* bright cyan */
|
||||
{ 0xff, 0xff, 0xff }, /* white */
|
||||
};
|
||||
#endif
|
||||
|
||||
u32 vid_console_color(struct video_priv *priv, unsigned int idx)
|
||||
{
|
||||
switch (priv->bpix) {
|
||||
#if CONFIG_IS_ENABLED(VIDEO_BPP16)
|
||||
case VIDEO_BPP16:
|
||||
return ((colors[idx].r >> 3) << 11) |
|
||||
((colors[idx].g >> 2) << 5) |
|
||||
((colors[idx].b >> 3) << 0);
|
||||
#endif
|
||||
#if CONFIG_IS_ENABLED(VIDEO_BPP32)
|
||||
if (CONFIG_IS_ENABLED(VIDEO_BPP16)) {
|
||||
return ((colors[idx].r >> 3) << 11) |
|
||||
((colors[idx].g >> 2) << 5) |
|
||||
((colors[idx].b >> 3) << 0);
|
||||
}
|
||||
case VIDEO_BPP32:
|
||||
return (colors[idx].r << 16) |
|
||||
(colors[idx].g << 8) |
|
||||
(colors[idx].b << 0);
|
||||
#endif
|
||||
if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
|
||||
return (colors[idx].r << 16) |
|
||||
(colors[idx].g << 8) |
|
||||
(colors[idx].b << 0);
|
||||
}
|
||||
default:
|
||||
/*
|
||||
* For unknown bit arrangements just support
|
||||
|
@ -92,26 +92,24 @@ int video_clear(struct udevice *dev)
|
||||
struct video_priv *priv = dev_get_uclass_priv(dev);
|
||||
|
||||
switch (priv->bpix) {
|
||||
#ifdef CONFIG_VIDEO_BPP16
|
||||
case VIDEO_BPP16: {
|
||||
u16 *ppix = priv->fb;
|
||||
u16 *end = priv->fb + priv->fb_size;
|
||||
case VIDEO_BPP16:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
|
||||
u16 *ppix = priv->fb;
|
||||
u16 *end = priv->fb + priv->fb_size;
|
||||
|
||||
while (ppix < end)
|
||||
*ppix++ = priv->colour_bg;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_BPP32
|
||||
case VIDEO_BPP32: {
|
||||
u32 *ppix = priv->fb;
|
||||
u32 *end = priv->fb + priv->fb_size;
|
||||
while (ppix < end)
|
||||
*ppix++ = priv->colour_bg;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP32:
|
||||
if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
|
||||
u32 *ppix = priv->fb;
|
||||
u32 *end = priv->fb + priv->fb_size;
|
||||
|
||||
while (ppix < end)
|
||||
*ppix++ = priv->colour_bg;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
while (ppix < end)
|
||||
*ppix++ = priv->colour_bg;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
memset(priv->fb, priv->colour_bg, priv->fb_size);
|
||||
break;
|
||||
@ -125,14 +123,14 @@ void video_set_default_colors(struct udevice *dev, bool invert)
|
||||
struct video_priv *priv = dev_get_uclass_priv(dev);
|
||||
int fore, back;
|
||||
|
||||
#ifdef CONFIG_SYS_WHITE_ON_BLACK
|
||||
/* White is used when switching to bold, use light gray here */
|
||||
fore = VID_LIGHT_GRAY;
|
||||
back = VID_BLACK;
|
||||
#else
|
||||
fore = VID_BLACK;
|
||||
back = VID_WHITE;
|
||||
#endif
|
||||
if (CONFIG_IS_ENABLED(SYS_WHITE_ON_BLACK)) {
|
||||
/* White is used when switching to bold, use light gray here */
|
||||
fore = VID_LIGHT_GRAY;
|
||||
back = VID_BLACK;
|
||||
} else {
|
||||
fore = VID_BLACK;
|
||||
back = VID_WHITE;
|
||||
}
|
||||
if (invert) {
|
||||
int temp;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user