@ -72,6 +72,10 @@
# endif
# endif
# endif
# endif
# ifndef CONFIG_LCD_ALIGNMENT
# define CONFIG_LCD_ALIGNMENT PAGE_SIZE
# endif
DECLARE_GLOBAL_DATA_PTR ;
DECLARE_GLOBAL_DATA_PTR ;
ulong lcd_setmem ( ulong addr ) ;
ulong lcd_setmem ( ulong addr ) ;
@ -326,6 +330,12 @@ static void test_pattern(void)
/* ** GENERIC Initialization Routines */
/* ** GENERIC Initialization Routines */
/************************************************************************/
/************************************************************************/
int lcd_get_size ( int * line_length )
{
* line_length = ( panel_info . vl_col * NBITS ( panel_info . vl_bpix ) ) / 8 ;
return * line_length * panel_info . vl_row ;
}
int drv_lcd_init ( void )
int drv_lcd_init ( void )
{
{
struct stdio_dev lcddev ;
struct stdio_dev lcddev ;
@ -333,7 +343,7 @@ int drv_lcd_init (void)
lcd_base = ( void * ) ( gd - > fb_base ) ;
lcd_base = ( void * ) ( gd - > fb_base ) ;
lcd_line_length = ( panel_info . vl_col * NBITS ( panel_info . vl_bpix ) ) / 8 ;
lcd_get_size ( & lcd_line_length ) ;
lcd_init ( lcd_base ) ; /* LCD initialization */
lcd_init ( lcd_base ) ; /* LCD initialization */
@ -445,15 +455,16 @@ static int lcd_init(void *lcdbase)
ulong lcd_setmem ( ulong addr )
ulong lcd_setmem ( ulong addr )
{
{
ulong size ;
ulong size ;
int line_length = ( panel_info . vl_col * NBITS ( panel_info . vl_bpix ) ) / 8 ;
int line_length ;
debug ( " LCD panel info: %d x %d, %d bit/pix \n " , panel_info . vl_col ,
debug ( " LCD panel info: %d x %d, %d bit/pix \n " , panel_info . vl_col ,
panel_info . vl_row , NBITS ( panel_info . vl_bpix ) ) ;
panel_info . vl_row , NBITS ( panel_info . vl_bpix ) ) ;
size = line_length * panel_info . vl_row ;
size = lcd_get_size ( & line_length ) ;
/* Round up to nearest full page */
/* Round up to nearest full page, or MMU section if defined */
size = ( size + ( PAGE_SIZE - 1 ) ) & ~ ( PAGE_SIZE - 1 ) ;
size = ALIGN ( size , CONFIG_LCD_ALIGNMENT ) ;
addr = ALIGN ( addr - CONFIG_LCD_ALIGNMENT + 1 , CONFIG_LCD_ALIGNMENT ) ;
/* Allocate pages for the frame buffer. */
/* Allocate pages for the frame buffer. */
addr - = size ;
addr - = size ;