From 5c30fbb8ec4aa364d5e441c86d7b5776d6c94fb0 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Thu, 8 Feb 2018 21:47:11 +0100 Subject: dm: video: use constants to refer to colors Use constants to refer to colors. Adjust initialization of foreground and background color to avoid setting reserved bits. Consistently u32 instead of unsigned for color bit mask. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- include/video.h | 11 +++++++++-- include/video_console.h | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/video.h b/include/video.h index 61ff6531215..841f3dc56b1 100644 --- a/include/video.h +++ b/include/video.h @@ -84,8 +84,8 @@ struct video_priv { void *fb; int fb_size; int line_length; - int colour_fg; - int colour_bg; + u32 colour_fg; + u32 colour_bg; bool flush_dcache; ushort *cmap; }; @@ -183,6 +183,13 @@ int video_get_ysize(struct udevice *dev); */ void video_set_flush_dcache(struct udevice *dev, bool flush); +/** + * Set default colors and attributes + * + * @priv device information + */ +void video_set_default_colors(struct video_priv *priv); + #endif /* CONFIG_DM_VIDEO */ #ifndef CONFIG_DM_VIDEO diff --git a/include/video_console.h b/include/video_console.h index 9dce234bd92..656a47295f6 100644 --- a/include/video_console.h +++ b/include/video_console.h @@ -7,11 +7,29 @@ #ifndef __video_console_h #define __video_console_h +#include + #define VID_FRAC_DIV 256 #define VID_TO_PIXEL(x) ((x) / VID_FRAC_DIV) #define VID_TO_POS(x) ((x) * VID_FRAC_DIV) +/* + * The 8 colors supported by the console + */ +enum color_idx { + VID_BLACK = 0, + VID_RED, + VID_GREEN, + VID_YELLOW, + VID_BLUE, + VID_MAGENTA, + VID_CYAN, + VID_WHITE, + + VID_COLOR_COUNT +}; + /** * struct vidconsole_priv - uclass-private data about a console device * @@ -196,4 +214,21 @@ int vidconsole_put_char(struct udevice *dev, char ch); void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row); +#ifdef CONFIG_DM_VIDEO + +/** + * vid_console_color() - convert a color code to a pixel's internal + * representation + * + * The caller has to guarantee that the color index is less than + * VID_COLOR_COUNT. + * + * @priv private data of the console device + * @idx color index + * @return color value + */ +u32 vid_console_color(struct video_priv *priv, unsigned int idx); + +#endif + #endif -- cgit v1.2.3 From 9ffa4d12a850c6fb8b9b8f7d5fc31ac28633fcdb Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Thu, 8 Feb 2018 21:47:12 +0100 Subject: dm: video: support increased intensity (bold) Support special rendition code 0 - reset attributes. Support special rendition code 1 - increased intensity (bold). Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- include/video.h | 2 ++ include/video_console.h | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/video.h b/include/video.h index 841f3dc56b1..ddc2eeb5a95 100644 --- a/include/video.h +++ b/include/video.h @@ -67,6 +67,7 @@ enum video_log2_bpp { * @flush_dcache: true to enable flushing of the data cache after * the LCD is updated * @cmap: Colour map for 8-bit-per-pixel displays + * @fg_col_idx: Foreground color code (bit 3 = bold, bit 0-2 = color) */ struct video_priv { /* Things set up by the driver: */ @@ -88,6 +89,7 @@ struct video_priv { u32 colour_bg; bool flush_dcache; ushort *cmap; + u8 fg_col_idx; }; /* Placeholder - there are no video operations at present */ diff --git a/include/video_console.h b/include/video_console.h index 656a47295f6..7621a189d2a 100644 --- a/include/video_console.h +++ b/include/video_console.h @@ -15,16 +15,24 @@ #define VID_TO_POS(x) ((x) * VID_FRAC_DIV) /* - * The 8 colors supported by the console + * The 16 colors supported by the console */ enum color_idx { VID_BLACK = 0, VID_RED, VID_GREEN, - VID_YELLOW, + VID_BROWN, VID_BLUE, VID_MAGENTA, VID_CYAN, + VID_LIGHT_GRAY, + VID_GRAY, + VID_LIGHT_RED, + VID_LIGTH_GREEN, + VID_YELLOW, + VID_LIGHT_BLUE, + VID_LIGHT_MAGENTA, + VID_LIGHT_CYAN, VID_WHITE, VID_COLOR_COUNT -- cgit v1.2.3 From 5fba532954fe0363bcaa802ba4990e9466dc7d8c Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Fri, 2 Mar 2018 20:50:17 +0100 Subject: video: indicate code page of bitmap fonts Add comments clarifying that the bitmap fonts support code page 437. Signed-off-by: Heinrich Schuchardt --- include/video_font_4x6.h | 4 ++-- include/video_font_data.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/video_font_4x6.h b/include/video_font_4x6.h index 6aeed092ad4..64c5ed2eda4 100644 --- a/include/video_font_4x6.h +++ b/include/video_font_4x6.h @@ -1,5 +1,5 @@ -/* Hand composed "Minuscule" 4x6 font, with binary data generated using - * Perl stub. +/* Hand composed "Minuscule" 4x6 font for code page 437, with binary data + * generated using Perl stub. * * Use 'perl -x mini_4x6.c < mini_4x6.c > new_version.c' to regenerate * binary data. diff --git a/include/video_font_data.h b/include/video_font_data.h index 346a162f56f..d52526a63c8 100644 --- a/include/video_font_data.h +++ b/include/video_font_data.h @@ -3,6 +3,8 @@ * Paolo Scaffardi, AIRVENT SAM s.p.a - RIMINI(ITALY), arsenio@tin.it * * SPDX-License-Identifier: GPL-2.0+ + * + * This file contains an 8x16 bitmap font for code page 437. */ #ifndef _VIDEO_FONT_DATA_ -- cgit v1.2.3