@ -76,42 +76,42 @@ DECLARE_GLOBAL_DATA_PTR;
ulong lcd_setmem ( ulong addr ) ;
static void lcd_drawchars ( ushort x , ushort y , uchar * str , int count ) ;
static inline void lcd_puts_xy ( ushort x , ushort y , uchar * s ) ;
static inline void lcd_putc_xy ( ushort x , ushort y , uchar c ) ;
static void lcd_drawchars ( ushort x , ushort y , uchar * str , int count ) ;
static inline void lcd_puts_xy ( ushort x , ushort y , uchar * s ) ;
static inline void lcd_putc_xy ( ushort x , ushort y , uchar c ) ;
static int lcd_init ( void * lcdbase ) ;
static int lcd_init ( void * lcdbase ) ;
static void * lcd_logo ( void ) ;
static int lcd_getbgcolor ( void ) ;
static void lcd_setfgcolor ( int color ) ;
static void lcd_setbgcolor ( int color ) ;
static int lcd_getbgcolor ( void ) ;
static void lcd_setfgcolor ( int color ) ;
static void lcd_setbgcolor ( int color ) ;
char lcd_is_enabled = 0 ;
# ifdef NOT_USED_SO_FAR
static void lcd_getcolreg ( ushort regno ,
static void lcd_getcolreg ( ushort regno ,
ushort * red , ushort * green , ushort * blue ) ;
static int lcd_getfgcolor ( void ) ;
static int lcd_getfgcolor ( void ) ;
# endif /* NOT_USED_SO_FAR */
/************************************************************************/
/*----------------------------------------------------------------------*/
static void console_scrollup ( void )
static void console_scrollup ( void )
{
/* Copy up rows ignoring the first one */
memcpy ( CONSOLE_ROW_FIRST , CONSOLE_ROW_SECOND , CONSOLE_SCROLL_SIZE ) ;
memcpy ( CONSOLE_ROW_FIRST , CONSOLE_ROW_SECOND , CONSOLE_SCROLL_SIZE ) ;
/* Clear the last one */
memset ( CONSOLE_ROW_LAST , COLOR_MASK ( lcd_color_bg ) , CONSOLE_ROW_SIZE ) ;
memset ( CONSOLE_ROW_LAST , COLOR_MASK ( lcd_color_bg ) , CONSOLE_ROW_SIZE ) ;
}
/*----------------------------------------------------------------------*/
static inline void console_back ( void )
static inline void console_back ( void )
{
if ( - - console_col < 0 ) {
console_col = CONSOLE_COLS - 1 ;
@ -120,14 +120,13 @@ static inline void console_back (void)
}
}
lcd_putc_xy ( console_col * VIDEO_FONT_WIDTH ,
console_row * VIDEO_FONT_HEIGHT ,
' ' ) ;
lcd_putc_xy ( console_col * VIDEO_FONT_WIDTH ,
console_row * VIDEO_FONT_HEIGHT , ' ' ) ;
}
/*----------------------------------------------------------------------*/
static inline void console_newline ( void )
static inline void console_newline ( void )
{
+ + console_row ;
console_col = 0 ;
@ -135,61 +134,62 @@ static inline void console_newline (void)
/* Check if we need to scroll the terminal */
if ( console_row > = CONSOLE_ROWS ) {
/* Scroll everything up */
console_scrollup ( ) ;
console_scrollup ( ) ;
- - console_row ;
}
}
/*----------------------------------------------------------------------*/
void lcd_putc ( const char c )
void lcd_putc ( const char c )
{
if ( ! lcd_is_enabled ) {
serial_putc ( c ) ;
return ;
}
switch ( c ) {
case ' \r ' : console_col = 0 ;
return ;
case ' \r ' :
console_col = 0 ;
case ' \n ' : console_newline ( ) ;
return ;
return ;
case ' \n ' :
console_newline ( ) ;
return ;
case ' \t ' : /* Tab (8 chars alignment) */
console_col + = 8 ;
console_col & = ~ 7 ;
console_col + = 8 ;
console_col & = ~ 7 ;
if ( console_col > = CONSOLE_COLS ) {
console_newline ( ) ;
}
return ;
if ( console_col > = CONSOLE_COLS )
console_newline ( ) ;
case ' \b ' : console_back ( ) ;
return ;
return ;
case ' \b ' :
console_back ( ) ;
default : lcd_putc_xy ( console_col * VIDEO_FONT_WIDTH ,
console_row * VIDEO_FONT_HEIGHT ,
c ) ;
if ( + + console_col > = CONSOLE_COLS ) {
console_newline ( ) ;
}
return ;
return ;
default :
lcd_putc_xy ( console_col * VIDEO_FONT_WIDTH ,
console_row * VIDEO_FONT_HEIGHT , c ) ;
if ( + + console_col > = CONSOLE_COLS )
console_newline ( ) ;
}
/* NOTREACHED */
}
/*----------------------------------------------------------------------*/
void lcd_puts ( const char * s )
void lcd_puts ( const char * s )
{
if ( ! lcd_is_enabled ) {
serial_puts ( s ) ;
serial_puts ( s ) ;
return ;
}
while ( * s ) {
lcd_putc ( * s + + ) ;
lcd_putc ( * s + + ) ;
}
}
@ -211,7 +211,7 @@ void lcd_printf(const char *fmt, ...)
/* ** Low-Level Graphics Routines */
/************************************************************************/
static void lcd_drawchars ( ushort x , ushort y , uchar * str , int count )
static void lcd_drawchars ( ushort x , ushort y , uchar * str , int count )
{
uchar * dest ;
ushort row ;
@ -226,7 +226,7 @@ static void lcd_drawchars (ushort x, ushort y, uchar *str, int count)
dest = ( uchar * ) ( lcd_base + y * lcd_line_length + x * ( 1 < < LCD_BPP ) / 8 ) ;
for ( row = 0 ; row < VIDEO_FONT_HEIGHT ; + + row , dest + = lcd_line_length ) {
for ( row = 0 ; row < VIDEO_FONT_HEIGHT ; + + row , dest + = lcd_line_length ) {
uchar * s = str ;
int i ;
# if LCD_BPP == LCD_COLOR16
@ -239,7 +239,7 @@ static void lcd_drawchars (ushort x, ushort y, uchar *str, int count)
uchar rest = * d & - ( 1 < < ( 8 - off ) ) ;
uchar sym ;
# endif
for ( i = 0 ; i < count ; + + i ) {
for ( i = 0 ; i < count ; + + i ) {
uchar c , bits ;
c = * s + + ;
@ -247,18 +247,18 @@ static void lcd_drawchars (ushort x, ushort y, uchar *str, int count)
# if LCD_BPP == LCD_MONOCHROME
sym = ( COLOR_MASK ( lcd_color_fg ) & bits ) |
( COLOR_MASK ( lcd_color_bg ) & ~ bits ) ;
( COLOR_MASK ( lcd_color_bg ) & ~ bits ) ;
* d + + = rest | ( sym > > off ) ;
rest = sym < < ( 8 - off ) ;
# elif LCD_BPP == LCD_COLOR8
for ( c = 0 ; c < 8 ; + + c ) {
for ( c = 0 ; c < 8 ; + + c ) {
* d + + = ( bits & 0x80 ) ?
lcd_color_fg : lcd_color_bg ;
bits < < = 1 ;
}
# elif LCD_BPP == LCD_COLOR16
for ( c = 0 ; c < 8 ; + + c ) {
for ( c = 0 ; c < 8 ; + + c ) {
* d + + = ( bits & 0x80 ) ?
lcd_color_fg : lcd_color_bg ;
bits < < = 1 ;
@ -273,14 +273,14 @@ static void lcd_drawchars (ushort x, ushort y, uchar *str, int count)
/*----------------------------------------------------------------------*/
static inline void lcd_puts_xy ( ushort x , ushort y , uchar * s )
static inline void lcd_puts_xy ( ushort x , ushort y , uchar * s )
{
lcd_drawchars ( x , y , s , strlen ( ( char * ) s ) ) ;
}
/*----------------------------------------------------------------------*/
static inline void lcd_putc_xy ( ushort x , ushort y , uchar c )
static inline void lcd_putc_xy ( ushort x , ushort y , uchar c )
{
lcd_drawchars ( x , y , & c , 1 ) ;
}
@ -298,7 +298,7 @@ static int test_colors[N_BLK_HOR*N_BLK_VERT] = {
CONSOLE_COLOR_BLUE , CONSOLE_COLOR_MAGENTA , CONSOLE_COLOR_CYAN ,
} ;
static void test_pattern ( void )
static void test_pattern ( void )
{
ushort v_max = panel_info . vl_row ;
ushort h_max = panel_info . vl_col ;
@ -307,13 +307,13 @@ static void test_pattern (void)
ushort v , h ;
uchar * pix = ( uchar * ) lcd_base ;
printf ( " [LCD] Test Pattern: %d x %d [%d x %d] \n " ,
printf ( " [LCD] Test Pattern: %d x %d [%d x %d] \n " ,
h_max , v_max , h_step , v_step ) ;
/* WARNING: Code silently assumes 8bit/pixel */
for ( v = 0 ; v < v_max ; + + v ) {
for ( v = 0 ; v < v_max ; + + v ) {
uchar iy = v / v_step ;
for ( h = 0 ; h < h_max ; + + h ) {
for ( h = 0 ; h < h_max ; + + h ) {
uchar ix = N_BLK_HOR * iy + ( h / h_step ) ;
* pix + + = test_colors [ ix ] ;
}
@ -335,12 +335,12 @@ int drv_lcd_init (void)
lcd_line_length = ( panel_info . vl_col * NBITS ( panel_info . vl_bpix ) ) / 8 ;
lcd_init ( lcd_base ) ; /* LCD initialization */
lcd_init ( lcd_base ) ; /* LCD initialization */
/* Device initialization */
memset ( & lcddev , 0 , sizeof ( lcddev ) ) ;
memset ( & lcddev , 0 , sizeof ( lcddev ) ) ;
strcpy ( lcddev . name , " lcd " ) ;
strcpy ( lcddev . name , " lcd " ) ;
lcddev . ext = 0 ; /* No extensions */
lcddev . flags = DEV_FLAGS_OUTPUT ; /* Output only */
lcddev . putc = lcd_putc ; /* 'putc' function */
@ -367,35 +367,35 @@ void lcd_clear(void)
# elif LCD_BPP == LCD_COLOR8
/* Setting the palette */
lcd_setcolreg ( CONSOLE_COLOR_BLACK , 0 , 0 , 0 ) ;
lcd_setcolreg ( CONSOLE_COLOR_RED , 0xFF , 0 , 0 ) ;
lcd_setcolreg ( CONSOLE_COLOR_GREEN , 0 , 0xFF , 0 ) ;
lcd_setcolreg ( CONSOLE_COLOR_YELLOW , 0xFF , 0xFF , 0 ) ;
lcd_setcolreg ( CONSOLE_COLOR_BLUE , 0 , 0 , 0xFF ) ;
lcd_setcolreg ( CONSOLE_COLOR_MAGENTA , 0xFF , 0 , 0xFF ) ;
lcd_setcolreg ( CONSOLE_COLOR_CYAN , 0 , 0xFF , 0xFF ) ;
lcd_setcolreg ( CONSOLE_COLOR_GREY , 0xAA , 0xAA , 0xAA ) ;
lcd_setcolreg ( CONSOLE_COLOR_WHITE , 0xFF , 0xFF , 0xFF ) ;
lcd_setcolreg ( CONSOLE_COLOR_BLACK , 0 , 0 , 0 ) ;
lcd_setcolreg ( CONSOLE_COLOR_RED , 0xFF , 0 , 0 ) ;
lcd_setcolreg ( CONSOLE_COLOR_GREEN , 0 , 0xFF , 0 ) ;
lcd_setcolreg ( CONSOLE_COLOR_YELLOW , 0xFF , 0xFF , 0 ) ;
lcd_setcolreg ( CONSOLE_COLOR_BLUE , 0 , 0 , 0xFF ) ;
lcd_setcolreg ( CONSOLE_COLOR_MAGENTA , 0xFF , 0 , 0xFF ) ;
lcd_setcolreg ( CONSOLE_COLOR_CYAN , 0 , 0xFF , 0xFF ) ;
lcd_setcolreg ( CONSOLE_COLOR_GREY , 0xAA , 0xAA , 0xAA ) ;
lcd_setcolreg ( CONSOLE_COLOR_WHITE , 0xFF , 0xFF , 0xFF ) ;
# endif
# ifndef CONFIG_SYS_WHITE_ON_BLACK
lcd_setfgcolor ( CONSOLE_COLOR_BLACK ) ;
lcd_setbgcolor ( CONSOLE_COLOR_WHITE ) ;
lcd_setfgcolor ( CONSOLE_COLOR_BLACK ) ;
lcd_setbgcolor ( CONSOLE_COLOR_WHITE ) ;
# else
lcd_setfgcolor ( CONSOLE_COLOR_WHITE ) ;
lcd_setbgcolor ( CONSOLE_COLOR_BLACK ) ;
lcd_setfgcolor ( CONSOLE_COLOR_WHITE ) ;
lcd_setbgcolor ( CONSOLE_COLOR_BLACK ) ;
# endif /* CONFIG_SYS_WHITE_ON_BLACK */
# ifdef LCD_TEST_PATTERN
test_pattern ( ) ;
# else
/* set framebuffer to background color */
memset ( ( char * ) lcd_base ,
memset ( ( char * ) lcd_base ,
COLOR_MASK ( lcd_getbgcolor ( ) ) ,
lcd_line_length * panel_info . vl_row ) ;
# endif
/* Paint the logo and retrieve LCD base address */
debug ( " [LCD] Drawing the logo... \n " ) ;
debug ( " [LCD] Drawing the logo... \n " ) ;
lcd_console_address = lcd_logo ( ) ;
console_col = 0 ;
@ -410,12 +410,12 @@ U_BOOT_CMD(
/*----------------------------------------------------------------------*/
static int lcd_init ( void * lcdbase )
static int lcd_init ( void * lcdbase )
{
/* Initialize the lcd controller */
debug ( " [LCD] Initializing LCD frambuffer at %p \n " , lcdbase ) ;
debug ( " [LCD] Initializing LCD frambuffer at %p \n " , lcdbase ) ;
lcd_ctrl_init ( lcdbase ) ;
lcd_ctrl_init ( lcdbase ) ;
lcd_is_enabled = 1 ;
lcd_clear ( ) ;
lcd_enable ( ) ;
@ -442,13 +442,13 @@ static int lcd_init (void *lcdbase)
*
* Note that this is running from ROM , so no write access to global data .
*/
ulong lcd_setmem ( ulong addr )
ulong lcd_setmem ( ulong addr )
{
ulong size ;
int line_length = ( panel_info . vl_col * NBITS ( panel_info . vl_bpix ) ) / 8 ;
int line_length = ( panel_info . vl_col * NBITS ( panel_info . vl_bpix ) ) / 8 ;
debug ( " LCD panel info: %d x %d, %d bit/pix \n " ,
panel_info . vl_col , panel_info . vl_ row , NBITS ( panel_info . vl_bpix ) ) ;
debug ( " LCD panel info: %d x %d, %d bit/pix \n " , panel_info . vl_col ,
panel_info . vl_row , NBITS ( panel_info . vl_bpix ) ) ;
size = line_length * panel_info . vl_row ;
@ -458,21 +458,21 @@ ulong lcd_setmem (ulong addr)
/* Allocate pages for the frame buffer. */
addr - = size ;
debug ( " Reserving %ldk for LCD Framebuffer at: %08lx \n " , size > > 10 , addr ) ;
debug ( " Reserving %ldk for LCD Framebuffer at: %08lx \n " , size > > 10 , addr ) ;
return ( addr ) ;
return addr ;
}
/*----------------------------------------------------------------------*/
static void lcd_setfgcolor ( int color )
static void lcd_setfgcolor ( int color )
{
lcd_color_fg = color ;
}
/*----------------------------------------------------------------------*/
static void lcd_setbgcolor ( int color )
static void lcd_setbgcolor ( int color )
{
lcd_color_bg = color ;
}
@ -480,7 +480,7 @@ static void lcd_setbgcolor (int color)
/*----------------------------------------------------------------------*/
# ifdef NOT_USED_SO_FAR
static int lcd_getfgcolor ( void )
static int lcd_getfgcolor ( void )
{
return lcd_color_fg ;
}
@ -488,7 +488,7 @@ static int lcd_getfgcolor (void)
/*----------------------------------------------------------------------*/
static int lcd_getbgcolor ( void )
static int lcd_getbgcolor ( void )
{
return lcd_color_bg ;
}
@ -499,7 +499,7 @@ static int lcd_getbgcolor (void)
/* ** Chipset depending Bitmap / Logo stuff... */
/************************************************************************/
# ifdef CONFIG_LCD_LOGO
void bitmap_plot ( int x , int y )
void bitmap_plot ( int x , int y )
{
# ifdef CONFIG_ATMEL_LCD
uint * cmap ;
@ -517,7 +517,7 @@ void bitmap_plot (int x, int y)
volatile cpm8xx_t * cp = & ( immr - > im_cpm ) ;
# endif
debug ( " Logo: width %d height %d colors %d cmap %d \n " ,
debug ( " Logo: width %d height %d colors %d cmap %d \n " ,
BMP_LOGO_WIDTH , BMP_LOGO_HEIGHT , BMP_LOGO_COLORS ,
ARRAY_SIZE ( bmp_logo_palette ) ) ;
@ -527,9 +527,9 @@ void bitmap_plot (int x, int y)
if ( NBITS ( panel_info . vl_bpix ) < 12 ) {
/* Leave room for default color map */
# if defined(CONFIG_CPU_PXA)
cmap = ( ushort * ) fbi - > palette ;
cmap = ( ushort * ) fbi - > palette ;
# elif defined(CONFIG_MPC823)
cmap = ( ushort * ) & ( cp - > lcd_cmap [ BMP_LOGO_OFFSET * sizeof ( ushort ) ] ) ;
cmap = ( ushort * ) & ( cp - > lcd_cmap [ BMP_LOGO_OFFSET * sizeof ( ushort ) ] ) ;
# elif defined(CONFIG_ATMEL_LCD)
cmap = ( uint * ) ( panel_info . mmio + ATMEL_LCDC_LUT ( 0 ) ) ;
# else
@ -550,12 +550,12 @@ void bitmap_plot (int x, int y)
uint lut_entry ;
# ifdef CONFIG_ATMEL_LCD_BGR555
lut_entry = ( ( colreg & 0x000F ) < < 11 ) |
( ( colreg & 0x00F0 ) < < 2 ) |
( ( colreg & 0x0F00 ) > > 7 ) ;
( ( colreg & 0x00F0 ) < < 2 ) |
( ( colreg & 0x0F00 ) > > 7 ) ;
# else /* CONFIG_ATMEL_LCD_RGB565 */
lut_entry = ( ( colreg & 0x000F ) < < 1 ) |
( ( colreg & 0x00F0 ) < < 3 ) |
( ( colreg & 0x0F00 ) < < 4 ) ;
( ( colreg & 0x00F0 ) < < 3 ) |
( ( colreg & 0x0F00 ) < < 4 ) ;
# endif
* ( cmap + BMP_LOGO_OFFSET ) = lut_entry ;
cmap + + ;
@ -570,8 +570,8 @@ void bitmap_plot (int x, int y)
WATCHDOG_RESET ( ) ;
for ( i = 0 ; i < BMP_LOGO_HEIGHT ; + + i ) {
memcpy ( fb , bmap , BMP_LOGO_WIDTH ) ;
for ( i = 0 ; i < BMP_LOGO_HEIGHT ; + + i ) {
memcpy ( fb , bmap , BMP_LOGO_WIDTH ) ;
bmap + = BMP_LOGO_WIDTH ;
fb + = panel_info . vl_col ;
}
@ -579,8 +579,8 @@ void bitmap_plot (int x, int y)
else { /* true color mode */
u16 col16 ;
fb16 = ( ushort * ) ( lcd_base + y * lcd_line_length + x ) ;
for ( i = 0 ; i < BMP_LOGO_HEIGHT ; + + i ) {
for ( j = 0 ; j < BMP_LOGO_WIDTH ; j + + ) {
for ( i = 0 ; i < BMP_LOGO_HEIGHT ; + + i ) {
for ( j = 0 ; j < BMP_LOGO_WIDTH ; j + + ) {
col16 = bmp_logo_palette [ ( bmap [ j ] - 16 ) ] ;
fb16 [ j ] =
( ( col16 & 0x000F ) < < 1 ) |
@ -630,14 +630,15 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
volatile cpm8xx_t * cp = & ( immr - > im_cpm ) ;
# endif
if ( ! ( ( bmp - > header . signature [ 0 ] = = ' B ' ) & &
( bmp - > header . signature [ 1 ] = = ' M ' ) ) ) {
printf ( " Error: no valid bmp image at %lx \n " , bmp_image ) ;
if ( ! ( ( bmp - > header . signature [ 0 ] = = ' B ' ) & &
( bmp - > header . signature [ 1 ] = = ' M ' ) ) ) {
printf ( " Error: no valid bmp image at %lx \n " , bmp_image ) ;
return 1 ;
}
width = le32_to_cpu ( bmp - > header . width ) ;
height = le32_to_cpu ( bmp - > header . height ) ;
width = le32_to_cpu ( bmp - > header . width ) ;
height = le32_to_cpu ( bmp - > header . height ) ;
bmp_bpix = le16_to_cpu ( bmp - > header . bit_count ) ;
colors = 1 < < bmp_bpix ;
@ -646,6 +647,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
if ( ( bpix ! = 1 ) & & ( bpix ! = 8 ) & & ( bpix ! = 16 ) & & ( bpix ! = 32 ) ) {
printf ( " Error: %d bit/pixel mode, but BMP has %d bit/pixel \n " ,
bpix , bmp_bpix ) ;
return 1 ;
}
@ -654,10 +656,11 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
printf ( " Error: %d bit/pixel mode, but BMP has %d bit/pixel \n " ,
bpix ,
le16_to_cpu ( bmp - > header . bit_count ) ) ;
return 1 ;
}
debug ( " Display-bmp: %d x %d with %d colors \n " ,
debug ( " Display-bmp: %d x %d with %d colors \n " ,
( int ) width , ( int ) height , ( int ) colors ) ;
# if !defined(CONFIG_MCC200)
@ -674,7 +677,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
cmap_base = cmap ;
/* Set color map */
for ( i = 0 ; i < colors ; + + i ) {
for ( i = 0 ; i < colors ; + + i ) {
bmp_color_table_entry_t cte = bmp - > color_table [ i ] ;
# if !defined(CONFIG_ATMEL_LCD)
ushort colreg =
@ -709,8 +712,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
* specific .
*/
# if defined(CONFIG_MCC200)
if ( bpix = = 1 )
{
if ( bpix = = 1 ) {
width = ( ( width + 7 ) & ~ 7 ) > > 3 ;
x = ( ( x + 7 ) & ~ 7 ) > > 3 ;
pwidth = ( ( pwidth + 7 ) & ~ 7 ) > > 3 ;
@ -731,12 +733,12 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
y = max ( 0 , panel_info . vl_row - height + y + 1 ) ;
# endif /* CONFIG_SPLASH_SCREEN_ALIGN */
if ( ( x + width ) > pwidth )
if ( ( x + width ) > pwidth )
width = pwidth - x ;
if ( ( y + height ) > panel_info . vl_row )
if ( ( y + height ) > panel_info . vl_row )
height = panel_info . vl_row - y ;
bmap = ( uchar * ) bmp + le32_to_cpu ( bmp - > header . data_offset ) ;
bmap = ( uchar * ) bmp + le32_to_cpu ( bmp - > header . data_offset ) ;
fb = ( uchar * ) ( lcd_base +
( y + height - 1 ) * lcd_line_length + x * bpix / 8 ) ;
@ -806,11 +808,11 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
break ;
} ;
return ( 0 ) ;
return 0 ;
}
# endif
static void * lcd_logo ( void )
static void * lcd_logo ( void )
{
# ifdef CONFIG_SPLASH_SCREEN
char * s ;
@ -823,13 +825,15 @@ static void *lcd_logo (void)
addr = simple_strtoul ( s , NULL , 16 ) ;
# ifdef CONFIG_SPLASH_SCREEN_ALIGN
if ( ( s = getenv ( " splashpos " ) ) ! = NULL ) {
s = getenv ( " splashpos " ) ;
if ( s ! = NULL ) {
if ( s [ 0 ] = = ' m ' )
x = BMP_ALIGN_CENTER ;
else
x = simple_strtol ( s , NULL , 0 ) ;
x = simple_strtol ( s , NULL , 0 ) ;
if ( ( s = strchr ( s + 1 , ' , ' ) ) ! = NULL ) {
s = strchr ( s + 1 , ' , ' ) ;
if ( s ! = NULL ) {
if ( s [ 1 ] = = ' m ' )
y = BMP_ALIGN_CENTER ;
else
@ -842,15 +846,14 @@ static void *lcd_logo (void)
bmp_image_t * bmp = ( bmp_image_t * ) addr ;
unsigned long len ;
if ( ! ( ( bmp - > header . signature [ 0 ] = = ' B ' ) & &
( bmp - > header . signature [ 1 ] = = ' M ' ) ) ) {
if ( ! ( ( bmp - > header . signature [ 0 ] = = ' B ' ) & &
( bmp - > header . signature [ 1 ] = = ' M ' ) ) ) {
addr = ( ulong ) gunzip_bmp ( addr , & len ) ;
}
# endif
if ( lcd_display_bitmap ( addr , x , y ) = = 0 ) {
return ( ( void * ) lcd_base ) ;
}
if ( lcd_display_bitmap ( addr , x , y ) = = 0 )
return ( void * ) lcd_base ;
}
# endif /* CONFIG_SPLASH_SCREEN */
@ -863,9 +866,9 @@ static void *lcd_logo (void)
# endif /* CONFIG_LCD_INFO */
# if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
return ( ( void * ) ( ( ulong ) lcd_base + BMP_LOGO_HEIGHT * lcd_line_length ) ) ;
return ( void * ) ( ( ulong ) lcd_base + BMP_LOGO_HEIGHT * lcd_line_length ) ;
# else
return ( ( void * ) lcd_base ) ;
return ( void * ) lcd_base ;
# endif /* CONFIG_LCD_LOGO && !CONFIG_LCD_INFO_BELOW_LOGO */
}