|
@@ -177,6 +177,7 @@ void lcd_set_row(short row)
|
|
|
static void console_scrollup(void)
|
|
|
{
|
|
|
const int rows = CONFIG_CONSOLE_SCROLL_LINES;
|
|
|
+ int bg_color = lcd_getbgcolor();
|
|
|
|
|
|
/* Copy up rows ignoring those that will be overwritten */
|
|
|
memcpy(CONSOLE_ROW_FIRST,
|
|
@@ -186,8 +187,7 @@ static void console_scrollup(void)
|
|
|
/* Clear the last rows */
|
|
|
#if (LCD_BPP != LCD_COLOR32)
|
|
|
memset(lcd_console_address + CONSOLE_SIZE - CONSOLE_ROW_SIZE * rows,
|
|
|
- lcd_color_bg,
|
|
|
- CONSOLE_ROW_SIZE * rows);
|
|
|
+ bg_color, CONSOLE_ROW_SIZE * rows);
|
|
|
#else
|
|
|
u32 *ppix = lcd_console_address +
|
|
|
CONSOLE_SIZE - CONSOLE_ROW_SIZE * rows;
|
|
@@ -195,7 +195,7 @@ static void console_scrollup(void)
|
|
|
for (i = 0;
|
|
|
i < (CONSOLE_ROW_SIZE * rows) / NBYTES(panel_info.vl_bpix);
|
|
|
i++) {
|
|
|
- *ppix++ = lcd_color_bg;
|
|
|
+ *ppix++ = bg_color;
|
|
|
}
|
|
|
#endif
|
|
|
lcd_sync();
|
|
@@ -316,6 +316,7 @@ static void lcd_drawchars(ushort x, ushort y, uchar *str, int count)
|
|
|
{
|
|
|
uchar *dest;
|
|
|
ushort row;
|
|
|
+ int fg_color, bg_color;
|
|
|
|
|
|
#if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
|
|
|
y += BMP_LOGO_HEIGHT;
|
|
@@ -334,6 +335,8 @@ static void lcd_drawchars(ushort x, ushort y, uchar *str, int count)
|
|
|
uchar *d = dest;
|
|
|
#endif
|
|
|
|
|
|
+ fg_color = lcd_getfgcolor();
|
|
|
+ bg_color = lcd_getbgcolor();
|
|
|
for (i = 0; i < count; ++i) {
|
|
|
uchar c, bits;
|
|
|
|
|
@@ -341,8 +344,7 @@ static void lcd_drawchars(ushort x, ushort y, uchar *str, int count)
|
|
|
bits = video_fontdata[c * VIDEO_FONT_HEIGHT + row];
|
|
|
|
|
|
for (c = 0; c < 8; ++c) {
|
|
|
- *d++ = (bits & 0x80) ?
|
|
|
- lcd_color_fg : lcd_color_bg;
|
|
|
+ *d++ = (bits & 0x80) ? fg_color : bg_color;
|
|
|
bits <<= 1;
|
|
|
}
|
|
|
}
|
|
@@ -433,6 +435,7 @@ int drv_lcd_init(void)
|
|
|
void lcd_clear(void)
|
|
|
{
|
|
|
short console_rows, console_cols;
|
|
|
+ int bg_color;
|
|
|
#if LCD_BPP == LCD_COLOR8
|
|
|
/* Setting the palette */
|
|
|
lcd_setcolreg(CONSOLE_COLOR_BLACK, 0, 0, 0);
|
|
@@ -449,9 +452,11 @@ void lcd_clear(void)
|
|
|
#ifndef CONFIG_SYS_WHITE_ON_BLACK
|
|
|
lcd_setfgcolor(CONSOLE_COLOR_BLACK);
|
|
|
lcd_setbgcolor(CONSOLE_COLOR_WHITE);
|
|
|
+ bg_color = CONSOLE_COLOR_WHITE;
|
|
|
#else
|
|
|
lcd_setfgcolor(CONSOLE_COLOR_WHITE);
|
|
|
lcd_setbgcolor(CONSOLE_COLOR_BLACK);
|
|
|
+ bg_color = CONSOLE_COLOR_BLACK;
|
|
|
#endif /* CONFIG_SYS_WHITE_ON_BLACK */
|
|
|
|
|
|
#ifdef LCD_TEST_PATTERN
|
|
@@ -459,16 +464,14 @@ void lcd_clear(void)
|
|
|
#else
|
|
|
/* set framebuffer to background color */
|
|
|
#if (LCD_BPP != LCD_COLOR32)
|
|
|
- memset((char *)lcd_base,
|
|
|
- lcd_color_bg,
|
|
|
- lcd_line_length * panel_info.vl_row);
|
|
|
+ memset((char *)lcd_base, bg_color, lcd_line_length * panel_info.vl_row);
|
|
|
#else
|
|
|
u32 *ppix = lcd_base;
|
|
|
u32 i;
|
|
|
for (i = 0;
|
|
|
i < (lcd_line_length * panel_info.vl_row)/NBYTES(panel_info.vl_bpix);
|
|
|
i++) {
|
|
|
- *ppix++ = lcd_color_bg;
|
|
|
+ *ppix++ = bg_color;
|
|
|
}
|
|
|
#endif
|
|
|
#endif
|
|
@@ -575,6 +578,11 @@ static void lcd_setfgcolor(int color)
|
|
|
lcd_color_fg = color;
|
|
|
}
|
|
|
|
|
|
+int lcd_getfgcolor(void)
|
|
|
+{
|
|
|
+ return lcd_color_fg;
|
|
|
+}
|
|
|
+
|
|
|
/*----------------------------------------------------------------------*/
|
|
|
|
|
|
static void lcd_setbgcolor(int color)
|
|
@@ -582,6 +590,11 @@ static void lcd_setbgcolor(int color)
|
|
|
lcd_color_bg = color;
|
|
|
}
|
|
|
|
|
|
+int lcd_getbgcolor(void)
|
|
|
+{
|
|
|
+ return lcd_color_bg;
|
|
|
+}
|
|
|
+
|
|
|
/************************************************************************/
|
|
|
/* ** Chipset depending Bitmap / Logo stuff... */
|
|
|
/************************************************************************/
|