summaryrefslogtreecommitdiff
path: root/drivers/video/cfb_console.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/cfb_console.c')
-rw-r--r--drivers/video/cfb_console.c192
1 files changed, 60 insertions, 132 deletions
diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
index 30b53dbb80e..c0b1b8dc17e 100644
--- a/drivers/video/cfb_console.c
+++ b/drivers/video/cfb_console.c
@@ -27,7 +27,6 @@
*
* (for SMI LynxE graphic chip)
*
- * CONFIG_VIDEO_SMI_LYNXEM - use graphic driver for SMI 710,712,810
* VIDEO_FB_LITTLE_ENDIAN - framebuffer organisation default: big endian
* VIDEO_HW_RECTFILL - graphic driver supports hardware rectangle fill
* VIDEO_HW_BITBLT - graphic driver supports hardware bit blt
@@ -59,46 +58,21 @@
* info);
* that fills a info buffer at i=row.
* s.a: board/eltec/bab7xx.
- * CONFIG_VGA_AS_SINGLE_DEVICE - If set the framebuffer device will be
- * initialized as an output only device.
- * The Keyboard driver will not be
- * set-up. This may be used, if you have
- * no or more than one Keyboard devices
- * (USB Keyboard, AT Keyboard).
*
* CONFIG_VIDEO_SW_CURSOR: - Draws a cursor after the last
* character. No blinking is provided.
* Uses the macros CURSOR_SET and
* CURSOR_OFF.
- *
- * CONFIG_VIDEO_HW_CURSOR: - Uses the hardware cursor capability
- * of the graphic chip. Uses the macro
- * CURSOR_SET. ATTENTION: If booting an
- * OS, the display driver must disable
- * the hardware register of the graphic
- * chip. Otherwise a blinking field is
- * displayed.
*/
#include <common.h>
#include <fdtdec.h>
#include <version.h>
#include <malloc.h>
+#include <video.h>
#include <linux/compiler.h>
/*
- * Console device defines with SMI graphic
- * Any other graphic must change this section
- */
-
-#ifdef CONFIG_VIDEO_SMI_LYNXEM
-
-#define VIDEO_FB_LITTLE_ENDIAN
-#define VIDEO_HW_RECTFILL
-#define VIDEO_HW_BITBLT
-#endif
-
-/*
* Defines for the CT69000 driver
*/
#ifdef CONFIG_VIDEO_CT69000
@@ -108,16 +82,7 @@
#define VIDEO_HW_BITBLT
#endif
-/*
- * Defines for the SED13806 driver
- */
-#ifdef CONFIG_VIDEO_SED13806
-#define VIDEO_FB_LITTLE_ENDIAN
-#define VIDEO_HW_RECTFILL
-#define VIDEO_HW_BITBLT
-#endif
-
-#if defined(CONFIG_VIDEO_MXS) || defined(CONFIG_VIDEO_S3C)
+#if defined(CONFIG_VIDEO_MXS)
#define VIDEO_FB_16BPP_WORD_SWAP
#endif
@@ -177,18 +142,7 @@
#include <splash.h>
#endif
-/*
- * Cursor definition:
- * CONFIG_VIDEO_SW_CURSOR: Draws a cursor after the last character. No
- * blinking is provided. Uses the macros CURSOR_SET
- * and CURSOR_OFF.
- * CONFIG_VIDEO_HW_CURSOR: Uses the hardware cursor capability of the
- * graphic chip. Uses the macro CURSOR_SET.
- * ATTENTION: If booting an OS, the display driver
- * must disable the hardware register of the graphic
- * chip. Otherwise a blinking field is displayed
- */
-#if !defined(CONFIG_VIDEO_SW_CURSOR) && !defined(CONFIG_VIDEO_HW_CURSOR)
+#if !defined(CONFIG_VIDEO_SW_CURSOR)
/* no Cursor defined */
#define CURSOR_ON
#define CURSOR_OFF
@@ -196,10 +150,6 @@
#endif
#if defined(CONFIG_VIDEO_SW_CURSOR)
-#if defined(CONFIG_VIDEO_HW_CURSOR)
-#error only one of CONFIG_VIDEO_SW_CURSOR or CONFIG_VIDEO_HW_CURSOR can be \
- defined
-#endif
void console_cursor(int state);
#define CURSOR_ON console_cursor(1)
@@ -207,17 +157,6 @@ void console_cursor(int state);
#define CURSOR_SET video_set_cursor()
#endif /* CONFIG_VIDEO_SW_CURSOR */
-#ifdef CONFIG_VIDEO_HW_CURSOR
-#ifdef CURSOR_ON
-#error only one of CONFIG_VIDEO_SW_CURSOR or CONFIG_VIDEO_HW_CURSOR can be \
- defined
-#endif
-#define CURSOR_ON
-#define CURSOR_OFF
-#define CURSOR_SET video_set_hw_cursor(console_col * VIDEO_FONT_WIDTH, \
- (console_row * VIDEO_FONT_HEIGHT) + video_logo_height)
-#endif /* CONFIG_VIDEO_HW_CURSOR */
-
#ifdef CONFIG_VIDEO_LOGO
#ifdef CONFIG_VIDEO_BMP_LOGO
#include <bmp_logo.h>
@@ -297,16 +236,6 @@ void console_cursor(int state);
#endif
#endif
-#ifdef CONFIG_CONSOLE_EXTRA_INFO
-/*
- * setup a board string: type, speed, etc.
- *
- * line_number: location to place info string beside logo
- * info: buffer for info string
- */
-extern void video_get_info_str(int line_number, char *info);
-#endif
-
DECLARE_GLOBAL_DATA_PTR;
/* Locals */
@@ -885,7 +814,7 @@ static void parse_putc(const char c)
CURSOR_SET;
}
-static void video_putc(struct stdio_dev *dev, const char c)
+static void cfb_video_putc(struct stdio_dev *dev, const char c)
{
#ifdef CONFIG_CFB_CONSOLE_ANSI
int i;
@@ -1099,7 +1028,7 @@ static void video_putc(struct stdio_dev *dev, const char c)
flush_cache(VIDEO_FB_ADRS, VIDEO_SIZE);
}
-static void video_puts(struct stdio_dev *dev, const char *s)
+static void cfb_video_puts(struct stdio_dev *dev, const char *s)
{
int flush = cfb_do_flush_cache;
int count = strlen(s);
@@ -1108,7 +1037,7 @@ static void video_puts(struct stdio_dev *dev, const char *s)
cfb_do_flush_cache = 0;
while (count--)
- video_putc(dev, *s++);
+ cfb_video_putc(dev, *s++);
if (flush) {
cfb_do_flush_cache = flush;
@@ -2075,7 +2004,7 @@ void video_clear(void)
#endif
}
-static int video_init(void)
+static int cfg_video_init(void)
{
unsigned char color8;
@@ -2084,79 +2013,78 @@ static int video_init(void)
return -1;
video_fb_address = (void *) VIDEO_FB_ADRS;
-#ifdef CONFIG_VIDEO_HW_CURSOR
- video_init_hw_cursor(VIDEO_FONT_WIDTH, VIDEO_FONT_HEIGHT);
-#endif
cfb_do_flush_cache = cfb_fb_is_in_dram() && dcache_status();
/* Init drawing pats */
switch (VIDEO_DATA_FORMAT) {
case GDF__8BIT_INDEX:
- video_set_lut(0x01, CONSOLE_FG_COL, CONSOLE_FG_COL,
- CONSOLE_FG_COL);
- video_set_lut(0x00, CONSOLE_BG_COL, CONSOLE_BG_COL,
- CONSOLE_BG_COL);
+ video_set_lut(0x01, CONFIG_SYS_CONSOLE_FG_COL,
+ CONFIG_SYS_CONSOLE_FG_COL,
+ CONFIG_SYS_CONSOLE_FG_COL);
+ video_set_lut(0x00, CONFIG_SYS_CONSOLE_BG_COL,
+ CONFIG_SYS_CONSOLE_BG_COL,
+ CONFIG_SYS_CONSOLE_BG_COL);
fgx = 0x01010101;
bgx = 0x00000000;
break;
case GDF__8BIT_332RGB:
- color8 = ((CONSOLE_FG_COL & 0xe0) |
- ((CONSOLE_FG_COL >> 3) & 0x1c) |
- CONSOLE_FG_COL >> 6);
+ color8 = ((CONFIG_SYS_CONSOLE_FG_COL & 0xe0) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 3) & 0x1c) |
+ CONFIG_SYS_CONSOLE_FG_COL >> 6);
fgx = (color8 << 24) | (color8 << 16) | (color8 << 8) |
color8;
- color8 = ((CONSOLE_BG_COL & 0xe0) |
- ((CONSOLE_BG_COL >> 3) & 0x1c) |
- CONSOLE_BG_COL >> 6);
+ color8 = ((CONFIG_SYS_CONSOLE_BG_COL & 0xe0) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 3) & 0x1c) |
+ CONFIG_SYS_CONSOLE_BG_COL >> 6);
bgx = (color8 << 24) | (color8 << 16) | (color8 << 8) |
color8;
break;
case GDF_15BIT_555RGB:
- fgx = (((CONSOLE_FG_COL >> 3) << 26) |
- ((CONSOLE_FG_COL >> 3) << 21) |
- ((CONSOLE_FG_COL >> 3) << 16) |
- ((CONSOLE_FG_COL >> 3) << 10) |
- ((CONSOLE_FG_COL >> 3) << 5) |
- (CONSOLE_FG_COL >> 3));
- bgx = (((CONSOLE_BG_COL >> 3) << 26) |
- ((CONSOLE_BG_COL >> 3) << 21) |
- ((CONSOLE_BG_COL >> 3) << 16) |
- ((CONSOLE_BG_COL >> 3) << 10) |
- ((CONSOLE_BG_COL >> 3) << 5) |
- (CONSOLE_BG_COL >> 3));
+ fgx = (((CONFIG_SYS_CONSOLE_FG_COL >> 3) << 26) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 3) << 21) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 3) << 16) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 3) << 10) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 3) << 5) |
+ (CONFIG_SYS_CONSOLE_FG_COL >> 3));
+ bgx = (((CONFIG_SYS_CONSOLE_BG_COL >> 3) << 26) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 3) << 21) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 3) << 16) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 3) << 10) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 3) << 5) |
+ (CONFIG_SYS_CONSOLE_BG_COL >> 3));
break;
case GDF_16BIT_565RGB:
- fgx = (((CONSOLE_FG_COL >> 3) << 27) |
- ((CONSOLE_FG_COL >> 2) << 21) |
- ((CONSOLE_FG_COL >> 3) << 16) |
- ((CONSOLE_FG_COL >> 3) << 11) |
- ((CONSOLE_FG_COL >> 2) << 5) |
- (CONSOLE_FG_COL >> 3));
- bgx = (((CONSOLE_BG_COL >> 3) << 27) |
- ((CONSOLE_BG_COL >> 2) << 21) |
- ((CONSOLE_BG_COL >> 3) << 16) |
- ((CONSOLE_BG_COL >> 3) << 11) |
- ((CONSOLE_BG_COL >> 2) << 5) |
- (CONSOLE_BG_COL >> 3));
+ fgx = (((CONFIG_SYS_CONSOLE_FG_COL >> 3) << 27) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 2) << 21) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 3) << 16) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 3) << 11) |
+ ((CONFIG_SYS_CONSOLE_FG_COL >> 2) << 5) |
+ (CONFIG_SYS_CONSOLE_FG_COL >> 3));
+ bgx = (((CONFIG_SYS_CONSOLE_BG_COL >> 3) << 27) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 2) << 21) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 3) << 16) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 3) << 11) |
+ ((CONFIG_SYS_CONSOLE_BG_COL >> 2) << 5) |
+ (CONFIG_SYS_CONSOLE_BG_COL >> 3));
break;
case GDF_32BIT_X888RGB:
- fgx = (CONSOLE_FG_COL << 16) |
- (CONSOLE_FG_COL << 8) |
- CONSOLE_FG_COL;
- bgx = (CONSOLE_BG_COL << 16) |
- (CONSOLE_BG_COL << 8) |
- CONSOLE_BG_COL;
+ fgx = (CONFIG_SYS_CONSOLE_FG_COL << 16) |
+ (CONFIG_SYS_CONSOLE_FG_COL << 8) |
+ CONFIG_SYS_CONSOLE_FG_COL;
+ bgx = (CONFIG_SYS_CONSOLE_BG_COL << 16) |
+ (CONFIG_SYS_CONSOLE_BG_COL << 8) |
+ CONFIG_SYS_CONSOLE_BG_COL;
break;
case GDF_24BIT_888RGB:
- fgx = (CONSOLE_FG_COL << 24) |
- (CONSOLE_FG_COL << 16) |
- (CONSOLE_FG_COL << 8) |
- CONSOLE_FG_COL;
- bgx = (CONSOLE_BG_COL << 24) |
- (CONSOLE_BG_COL << 16) |
- (CONSOLE_BG_COL << 8) |
- CONSOLE_BG_COL;
+ fgx = (CONFIG_SYS_CONSOLE_FG_COL << 24) |
+ (CONFIG_SYS_CONSOLE_FG_COL << 16) |
+ (CONFIG_SYS_CONSOLE_FG_COL << 8) |
+ CONFIG_SYS_CONSOLE_FG_COL;
+ bgx = (CONFIG_SYS_CONSOLE_BG_COL << 24) |
+ (CONFIG_SYS_CONSOLE_BG_COL << 16) |
+ (CONFIG_SYS_CONSOLE_BG_COL << 8) |
+ CONFIG_SYS_CONSOLE_BG_COL;
break;
}
eorx = fgx ^ bgx;
@@ -2202,7 +2130,7 @@ int drv_video_init(void)
return 0;
/* Init video chip - returns with framebuffer cleared */
- if (video_init() == -1)
+ if (cfg_video_init() == -1)
return 0;
if (board_cfb_skip())
@@ -2227,8 +2155,8 @@ int drv_video_init(void)
memset(&console_dev, 0, sizeof(console_dev));
strcpy(console_dev.name, "vga");
console_dev.flags = DEV_FLAGS_OUTPUT;
- console_dev.putc = video_putc; /* 'putc' function */
- console_dev.puts = video_puts; /* 'puts' function */
+ console_dev.putc = cfb_video_putc; /* 'putc' function */
+ console_dev.puts = cfb_video_puts; /* 'puts' function */
#if !defined(CONFIG_VGA_AS_SINGLE_DEVICE)
if (have_keyboard && keyboard_ok) {