static void init_lcm_registers(void)
{
#if (!defined(BUILD_UBOOT) && !defined(BUILD_LK))  && defined(INIT_CODE_TUNNING_BY_SD_CARD)  /*                                                                      */
	 //sd_initial

	int line_cnt = 0;

	LCM_PRINT("[LCD] : [KERNEL] init_lcm_registers	\n ");

	if (Filesize(LCD_INITIAL_TXT) > 0)
	{
		line_cnt= lcd_init_read_from_sd();
		if (line_cnt > 0)
		{
			LCM_PRINT("[LCD] : SD card tunning & initial setting!!! \n ");
			push_table(lcm_initialization_setting_sd, sizeof(lcm_initialization_setting_sd) / sizeof(struct LCM_setting_table), 1);
		}
		else	{
			LCM_PRINT("[LCD] : Default initial setting \n ");
			push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
		}
	}
	else
	{
		LCM_PRINT("[LCD] : Default initial setting \n ");
		push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
	}
#else
        push_table(lcm_initialization_setting, sizeof(lcm_initialization_setting) / sizeof(struct LCM_setting_table), 1);
	LCM_PRINT("[LCD] init_lcm_registers \n");
#endif  /*                                                                      */
}
void 
CSubFileAccess::Open( void )
{GUCEF_TRACE;

    Close();
    
    m_file = fopen( m_filename.C_String() ,
                    "rb"                  );
    fseek( m_file, m_offset, SEEK_SET );
    m_totalSize = Filesize( m_filename.C_String() );
}
bool
CSubFileAccess::Load( const CString& file ,
                      const UInt32 offset ,
                      const UInt32 size   )
{GUCEF_TRACE;
    
    Close();
    
    m_offset = offset;
    m_size = size;
    m_filename = file;
    m_file = fopen( m_filename.C_String() ,
                    "rb"                  );

    if ( NULL != m_file )
    {
        fseek( m_file, m_offset, SEEK_SET );
        m_totalSize = Filesize( m_filename.C_String() );
        return true;
    }                
    return false;
}
int lcd_init_read_from_sd(void)
{
   struct file *fd;
   //int fd;
   long size;
   char *Buffer_2;
   char *Ori_Buffer;
   //char *conf_str = NULL;
   int packet_type=0;
   int packet_cmd=0;
   int packet_cnt=0;
   int i=0;
   int j=0;
   int ret;

   size= Filesize(LCD_INITIAL_TXT);

   if(size < 0)
   {
	   LCM_PRINT("[LCD] : size error =%ld\n",size);
	   return size;
   }
   else
	   LCM_PRINT("[LCD] : size=%ld\n",size);

   //memset(Buffer_2,0,sizeof(Buffer_2));

#if 1 //                                            
   Buffer_2 = kmalloc((size*sizeof(char)), GFP_KERNEL);
   //Buffer_2 = kmalloc((size*sizeof(char)), GFP_KERNEL);

   if(Buffer_2 == NULL)
   {
	   LCM_PRINT("[seosctest] Buffer null\n");
	   return 0;
   }
   else
	   Ori_Buffer=Buffer_2;
#endif

   if ( 0 < ( fd = filp_open(LCD_INITIAL_TXT, O_RDONLY,0)))
   {
	   fd->f_op->read(fd,Buffer_2, (size *sizeof(char)), &(fd->f_pos));

	   LCM_PRINT("[LCD] : %s\n", Buffer_2);
	   do
	   {
		   LCM_PRINT("[LCD] Line Cnt [%d] \n",i);
		   //getting the cmd and the number of parameters
		   sscanf(Buffer_2,"%x %d ",(unsigned int*)&lcm_initialization_setting_sd[i].cmd, (unsigned int*)&lcm_initialization_setting_sd[i].count);
		   LCM_PRINT("[LCD] Packet cmd[%x], Packet Cnt [%d] \n",(unsigned int)lcm_initialization_setting_sd[i].cmd,(unsigned int)lcm_initialization_setting_sd[i].count);

		   while(*(Buffer_2++) != 0x20); // skip the space
		   while(*(Buffer_2++) != 0x20); // skip the space		   
		   
		   for( j = 0; j < lcm_initialization_setting_sd[i].count; j++ ){
			   sscanf(Buffer_2,"%x ",(unsigned int*)&lcm_initialization_setting_sd[i].para_list[j]);
			   while(*(Buffer_2++) != 0x20); // skip the space
			   LCM_PRINT("[LCD] para_list[%d] = 0x%x \n",j, (unsigned int)lcm_initialization_setting_sd[i].para_list[j]);
		   }
 
		   while(*(Buffer_2++) != 0x0A); //skip till line feed
		   i++;
	   }
	   while(*(Buffer_2) != 0x23); //# -> end of lcd.txt file

	   ret = i;
	   LCM_PRINT("[LCD] Escape Loop- Parsing Finish !! \n");

	   kfree(Ori_Buffer);
	   filp_close(fd, NULL);
   }
   else
   {
	   LCM_PRINT( " [LCD] Open Fail.\n");
	   return -1;
   }

   return ret;
}