video: cfb_console: fix definition and usage of CURSOR_xxx macros

The CURSOR_ON, CURSOR_OFF, and CURSOR_SET macros are defined incorrectly.  If
cursor support is disabled, then these macros are defined to nothing, but
then they are used like this:

	if (console_col < CONSOLE_COLS)
		CURSOR_OFF
	console_row++;

which was compiled like this:

	if (console_col < CONSOLE_COLS)
		console_row++;

This is obviously not what was intended.

Signed-off-by: Timur Tabi <timur@freescale.com>
Acked-by: Detlev Zundel <dzu@denx.de>
This commit is contained in:
Timur Tabi 2010-08-27 15:45:47 -05:00 committed by Anatolij Gustschin
parent a12555c02d
commit 6561863678
1 changed files with 14 additions and 10 deletions

View File

@ -230,8 +230,8 @@ CONFIG_VIDEO_HW_CURSOR: - Uses the hardware cursor capability of the
#error only one of CONFIG_CONSOLE_CURSOR,CONFIG_VIDEO_SW_CURSOR,CONFIG_VIDEO_HW_CURSOR can be defined #error only one of CONFIG_CONSOLE_CURSOR,CONFIG_VIDEO_SW_CURSOR,CONFIG_VIDEO_HW_CURSOR can be defined
#endif #endif
void console_cursor (int state); void console_cursor (int state);
#define CURSOR_ON console_cursor(1); #define CURSOR_ON console_cursor(1)
#define CURSOR_OFF console_cursor(0); #define CURSOR_OFF console_cursor(0)
#define CURSOR_SET #define CURSOR_SET
#ifndef CONFIG_I8042_KBD #ifndef CONFIG_I8042_KBD
#warning Cursor drawing on/off needs timer function s.a. drivers/input/i8042.c #warning Cursor drawing on/off needs timer function s.a. drivers/input/i8042.c
@ -248,8 +248,8 @@ void console_cursor (int state);
#endif #endif
#define CURSOR_ON #define CURSOR_ON
#define CURSOR_OFF video_putchar(console_col * VIDEO_FONT_WIDTH,\ #define CURSOR_OFF video_putchar(console_col * VIDEO_FONT_WIDTH,\
console_row * VIDEO_FONT_HEIGHT, ' '); console_row * VIDEO_FONT_HEIGHT, ' ')
#define CURSOR_SET video_set_cursor(); #define CURSOR_SET video_set_cursor()
#endif /* CONFIG_VIDEO_SW_CURSOR */ #endif /* CONFIG_VIDEO_SW_CURSOR */
@ -260,7 +260,7 @@ void console_cursor (int state);
#define CURSOR_ON #define CURSOR_ON
#define CURSOR_OFF #define CURSOR_OFF
#define CURSOR_SET video_set_hw_cursor(console_col * VIDEO_FONT_WIDTH, \ #define CURSOR_SET video_set_hw_cursor(console_col * VIDEO_FONT_WIDTH, \
(console_row * VIDEO_FONT_HEIGHT) + video_logo_height); (console_row * VIDEO_FONT_HEIGHT) + video_logo_height)
#endif /* CONFIG_VIDEO_HW_CURSOR */ #endif /* CONFIG_VIDEO_HW_CURSOR */
#ifdef CONFIG_VIDEO_LOGO #ifdef CONFIG_VIDEO_LOGO
@ -651,7 +651,8 @@ static void console_scrollup (void)
static void console_back (void) static void console_back (void)
{ {
CURSOR_OFF console_col--; CURSOR_OFF;
console_col--;
if (console_col < 0) { if (console_col < 0) {
console_col = CONSOLE_COLS - 1; console_col = CONSOLE_COLS - 1;
@ -674,7 +675,7 @@ static void console_newline (void)
is >= CONSOLE_COLS is >= CONSOLE_COLS
*/ */
if (console_col < CONSOLE_COLS) if (console_col < CONSOLE_COLS)
CURSOR_OFF CURSOR_OFF;
console_row++; console_row++;
console_col = 0; console_col = 0;
@ -690,7 +691,8 @@ static void console_newline (void)
static void console_cr (void) static void console_cr (void)
{ {
CURSOR_OFF console_col = 0; CURSOR_OFF;
console_col = 0;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -711,7 +713,8 @@ void video_putc (const char c)
break; break;
case 9: /* tab 8 */ case 9: /* tab 8 */
CURSOR_OFF console_col |= 0x0008; CURSOR_OFF;
console_col |= 0x0008;
console_col &= ~0x0007; console_col &= ~0x0007;
if (console_col >= CONSOLE_COLS) if (console_col >= CONSOLE_COLS)
@ -734,7 +737,8 @@ void video_putc (const char c)
nl = 0; nl = 0;
} }
} }
CURSOR_SET} CURSOR_SET;
}
/*****************************************************************************/ /*****************************************************************************/