static int hdmi_parse_config(void)
{
    disp_gpio_set_t  *gpio_info;
    int i, ret;
    char io_name[32];

    for(i=0; i<28; i++) {
        gpio_info = &(hdmi_io[i]);
        sprintf(io_name, "hdmi_d%d", i);
        ret = disp_sys_script_get_item(key_name, io_name, (int *)gpio_info, sizeof(disp_gpio_set_t)/sizeof(int));
        if(ret == 3) {
            hdmi_io_used[i]= 1;
        }
    }
    for(i=0; i<sizeof(hdmi_gpio); i++) {
        gpio_info = &(hdmi_gpio[i]);
        sprintf(io_name, "gpio%d", i);
        ret = disp_sys_script_get_item(key_name, io_name, (int *)gpio_info, sizeof(disp_gpio_set_t)/sizeof(int));
        if(ret == 3) {
            hdmi_gpio_used[i]= 1;
        }
    }

    return 0;
}
static int  hdmi_i2c_init(void)
{
    int ret;
    int value;

    ret = disp_sys_script_get_item(key_name, "hdmi_twi_used", &value, 1);
    if(1 == ret) {
        hdmi_i2c_used = value;
        if(hdmi_i2c_used == 1) {
            ret = disp_sys_script_get_item(key_name, "hdmi_twi_id", &value, 1);
            hdmi_i2c_id = (ret == 1)? value : hdmi_i2c_id;
            return i2c_add_driver(&hdmi_i2c_driver);
        }
    }
    return 0;
}
Exemple #3
0
s32 drv_disp_check_spec(void)
{
	unsigned int lcd_used = 0;
	unsigned int lcd_x = 0, lcd_y = 0;
	int ret = 0;
	int value = 0;
	int limit_w = 0xffff, limit_h = 0xffff;

#if defined(CONFIG_ARCH_SUN8IW6)
	limit_w = 2048;
	limit_h = 1536;
#endif
	ret = disp_sys_script_get_item("lcd0_para", "lcd_used", &value, 1);
	if(ret == 1)
	{
	  lcd_used = value;
	}

	if(1 == lcd_used) {
		ret = disp_sys_script_get_item("lcd0_para", "lcd_x", &value, 1);
	  if(ret == 1)
	  {
	      lcd_x = value;
	  }

	  ret = disp_sys_script_get_item("lcd0_para", "lcd_y", &value, 1);
	  if(ret == 1)
	  {
	      lcd_y = value;
	  }

		if(((lcd_x > limit_w) && (lcd_y > limit_h))
			|| ((lcd_x > limit_h) && (lcd_y > limit_w))) {
			printf("fatal err: cannot support lcd with resolution(%d*%d) larger than %d*%d, the system will shut down!\n",
				lcd_x, lcd_y,limit_w,limit_h);
			sunxi_board_shutdown();
		}

	}

	return 0;
}
Exemple #4
0
static int  tv_i2c_init(void)
{
    int ret;
    int value;

    ret = disp_sys_script_get_item("tv_para", "tv_twi_used", &value, 1);
    if(1 == ret)
    {
        tv_i2c_used = value;
        if(tv_i2c_used == 1)
        {
            ret = disp_sys_script_get_item("tv_para", "tv_twi_id", &value, 1);
            tv_i2c_id = (ret == 1)? value:tv_i2c_id;

            ret = disp_sys_script_get_item("tv_para", "tv_twi_addr", &value, 1);
            normal_i2c[0] = (ret == 1)? value:normal_i2c[0];

            return i2c_add_driver(&tv_i2c_driver);
        }
    }
    return 0;
}
Exemple #5
0
static int tv_parse_config(void)
{
	disp_gpio_set_t  *gpio_info;
	int i, ret;
	char io_name[32];

	for(i=0; i<28; i++) {
		gpio_info = &(tv_io[i]);
		sprintf(io_name, "tv_d%d", i);
		ret = disp_sys_script_get_item("tv_para", io_name, (int *)gpio_info, sizeof(disp_gpio_set_t)/sizeof(int));
		if(ret == 3)
		{
		  tv_io_used[i]= 1;
		}
	}

  return 0;
}
static void LCD_panel_init(u32 sel)
{
	__u32 i;
	char model_name[25];
	disp_sys_script_get_item("lcd0","lcd_model_name",  (int*)model_name, 25);
	sunxi_lcd_dsi_clk_enable(sel);
	sunxi_lcd_delay_ms(20);
	sunxi_lcd_dsi_dcs_write_0para(sel,DSI_DCS_SOFT_RESET);
	sunxi_lcd_delay_ms(10);
	
	for(i=0;;i++)
	{			
			if(LCM_LT080B21BA94_setting[i].count == REGFLAG_END_OF_TABLE)
				break;
			else if (LCM_LT080B21BA94_setting[i].count == REGFLAG_DELAY)
				sunxi_lcd_delay_ms(LCM_LT080B21BA94_setting[i].para_list[0]);
			else
				dsi_dcs_wr(sel,LCM_LT080B21BA94_setting[i].cmd,LCM_LT080B21BA94_setting[i].para_list,LCM_LT080B21BA94_setting[i].count);
		//break;
	}

	return;
}
Exemple #7
0
int de_smbl_init(unsigned int sel, unsigned int reg_base)
{
	unsigned int base;
	void *memory;
  	unsigned int lcdgamma;
  	int  value = 1;
  	char primary_key[20];
	char sub_key[20];
  	int  ret;

	base = reg_base + (sel+1)*0x00100000 + SMBL_OFST;
	smbl_hw_base[sel] = base;

	__inf("sel %d, smbl_base=0x%x\n", sel, base);

	memory = disp_sys_malloc(sizeof(__smbl_reg_t));
	if(NULL == memory) {
		__wrn("malloc smbl[%d] memory fail! size=0x%x\n", sel, sizeof(__smbl_reg_t));
		return -1;
	}

	smbl_enable_block[sel].off			= base;
	smbl_enable_block[sel].val			= memory;
	smbl_enable_block[sel].size			= 0x4;
	smbl_enable_block[sel].dirty 		= 0;

	smbl_ctrl_block[sel].off			= base + 0x4;
	smbl_ctrl_block[sel].val			= memory + 0x4;
	smbl_ctrl_block[sel].size			= 0x38;
	smbl_ctrl_block[sel].dirty 			= 0;

	smbl_hist_block[sel].off			= base + 0x60;
	smbl_hist_block[sel].val			= memory + 0x60;
	smbl_hist_block[sel].size			= 0x20;
	smbl_hist_block[sel].dirty 			= 0;

	smbl_csc_block[sel].off				= base + 0xc0;
	smbl_csc_block[sel].val				= memory + 0xc0;
	smbl_csc_block[sel].size			= 0x30;
	smbl_csc_block[sel].dirty 			= 0;

	smbl_filter_block[sel].off			= base + 0xf0;
	smbl_filter_block[sel].val			= memory + 0xf0;
	smbl_filter_block[sel].size			= 0x110;
	smbl_filter_block[sel].dirty 		= 0;

	smbl_lut_block[sel].off				= base + 0x200;
	smbl_lut_block[sel].val				= memory + 0x200;
	smbl_lut_block[sel].size			= 0x200;
	smbl_lut_block[sel].dirty 			= 0;

	de_smbl_set_reg_base(sel, (unsigned int)memory);

 	g_smbl_status[sel] = disp_sys_malloc(sizeof(__smbl_status_t));
	if(NULL == g_smbl_status[sel]) {
		__wrn("malloc g_smbl_status[%d] memory fail! size=0x%x\n", sel, sizeof(__smbl_status_t));
		return -1;
	}

	g_smbl_status[sel]->IsEnable = 0;
	g_smbl_status[sel]->Runtime = 0;
	g_smbl_status[sel]->dimming = 256;

	sprintf(primary_key, "lcd%d_para", sel);

	ret = disp_sys_script_get_item(primary_key, "lcdgamma4iep", &value, 1);
	if(ret != 1)	{
		lcdgamma = 6; //default gamma = 2.2;
	} else {
		//DE_INF("lcdgamma4iep for lcd%d = %d.\n", sel, value);
		if(value > 30 || value < 10) {
			//DE_WRN("lcdgamma4iep for lcd%d too small or too large. default value 22 will be set. please set it between 10 and 30 to make it valid.\n",sel);
			lcdgamma = 6;//default gamma = 2.2;
		}	else {
			lcdgamma = (value - 10)/2;
		}
	}

	pttab[sel] = (unsigned int *)pwrsv_lgc_tab[128*lcdgamma];

	ret = disp_sys_script_get_item(primary_key, "smartbl_low_limit", &value, 1);
	if(ret != 1) {
		//DE_INF("smartbl_low_limit for lcd%d not exist.\n", sel);
	}	else {
		//DE_INF("smartbl_low_limit for lcd%d = %d.\n", sel, value);
		if(value > 255 || value < 20)	{
			//DE_INF("smartbl_low_limit for lcd%d too small or too large. default value 85 will be set. please set it between 20 and 255 to make it valid.\n",sel);
		}	else {
			PWRSAVE_PROC_THRES = value;
		}
	}
	sprintf(sub_key, "lcd%d_backlight", sel);
	ret = disp_sys_script_get_item("disp_init", sub_key, &value, 1);
	if(1 == ret)
		g_smbl_status[sel]->backlight = value;

	return 0;
}
Exemple #8
0
s32 disp_init_tv(disp_bsp_init_para * para)  //call by disp_display
{

	s32   val;
	s32  type;

	type = disp_sys_script_get_item("tv_para", "tv_used", &val, 1);
	if(1 == type)
		g_tv_used = val;
	if(g_tv_used ) {
		__u32 num_screens;
		__u32 disp;
		struct disp_device* p_tv;
		struct disp_device_private_data* p_tvp;

		DE_WRN("[boot]disp_init_tv\n");
#if defined(__LINUX_PLAT__)
		spin_lock_init(&g_tv_data_lock);
#endif
		DE_WRN("[DISP_TV] disp_init_tv enter g_tv_used\n");
		num_screens = bsp_disp_feat_get_num_screens();
		g_ptv_devices = (struct disp_device *)disp_sys_malloc(sizeof(struct disp_device) * num_screens);
		if(NULL == g_ptv_devices) {
			DE_WRN("malloc memory fail!\n");
			return DIS_FAIL;
		}

		g_ptv_private = (struct disp_device_private_data *)disp_sys_malloc(sizeof(struct disp_device_private_data) * num_screens);
		if(NULL == g_ptv_private) {
			DE_WRN("malloc memory fail!\n");
			return DIS_FAIL;
		}

		for(disp=0; disp<num_screens; disp++) {
			p_tv = &g_ptv_devices[disp];
			p_tvp = &g_ptv_private[disp];

			if(!bsp_disp_feat_is_supported_output_types(disp, DISP_OUTPUT_TYPE_TV)) { //modify 1
			    DE_WRN("screen %d do not support TV TYPE!\n", disp);
			    continue;
			}

			p_tv->disp = disp;
			sprintf(p_tv->name, "tv%d", disp);
			p_tv->type = DISP_OUTPUT_TYPE_TV;
			p_tvp->tv_mode = DISP_TV_MOD_PAL;						//modifyed
			p_tvp->irq_no = para->irq_no[DISP_MOD_LCD0 + disp];			//modify
			p_tvp->clk = "tcon1";
			p_tvp->clk_parent = "pll_video0";

			p_tv->set_manager = disp_device_set_manager;
			p_tv->unset_manager = disp_device_unset_manager;
			p_tv->get_resolution = disp_device_get_resolution;
			p_tv->get_timings = disp_device_get_timings;

			p_tv->init =  disp_tv_init;
			p_tv->exit =  disp_tv_exit;
			p_tv->set_tv_func = disp_tv_set_func;
			p_tv->enable = disp_tv_enable;
			p_tv->disable = disp_tv_disable;
			p_tv->is_enabled = disp_tv_is_enabled;
			p_tv->set_mode = disp_tv_set_mode;
			p_tv->get_mode = disp_tv_get_mode;
			p_tv->check_support_mode = disp_tv_check_support_mode;
			p_tv->get_input_csc = disp_tv_get_input_csc;
			p_tv->detect = disp_tv_detect;
			p_tv->suspend = disp_tv_suspend;
			p_tv->resume = disp_tv_resume;
			p_tv->init(p_tv);
			if(bsp_disp_feat_is_supported_output_types(disp, DISP_OUTPUT_TYPE_TV))
				disp_device_register(p_tv);
			DE_WRN("[BOOOT_DISP_TV] disp tv device_registered\n");
		}


	}
	return 0;
}
Exemple #9
0
s32 tv_init(void)
{
	disp_tv_func disp_func;
	s32 i = 0;
	s32   val;
	s32  type;
	char sub_key[20];
	u32 sid = 0;
	g_suspend = 0;
	int sid_turn = 0;

	memset(&g_tv_info, 0, sizeof(tv_info_t));
	type = disp_sys_script_get_item("tv_para", "tv_used", &val, 1);
	if(1 == type)
		g_used = val;
	if(g_used) {
		g_tv_info.screen[0].base_address = 0x01e00000;

		type = disp_sys_script_get_item("tv_para", "tv_cali_offset", &val, 1);
		if(1 == type) {
			g_tv_info.screen[0].cali_offset = val;
			g_tv_info.screen[1].cali_offset = g_tv_info.screen[0].cali_offset;
		}

		sid = tve_low_get_sid(0x10);

		if (0 == sid) {
			g_tv_info.screen[0].sid = 0x200;
			g_tv_info.screen[1].sid = g_tv_info.screen[0].sid;
		}
		else {
			if(sid & (1<<9))
				sid_turn = 0 + (sid & 0x1ff);
			else
				sid_turn = 0 - (sid & 0x1ff);

			sid_turn += 91;

			if(sid_turn >= 0)
				sid_turn = (1<<9) | sid_turn;
			else
				sid_turn = 0 - sid_turn;
			sid = (u32)sid_turn;

			g_tv_info.screen[0].sid = sid;
			g_tv_info.screen[1].sid = g_tv_info.screen[0].sid;
		}

		for(i=0; i <SCREEN_COUNT; i++) {
			tve_low_set_reg_base(i, g_tv_info.screen[i].base_address);
			tve_clk_init(i);
			tve_clk_enable(i);
			tve_low_init(i, g_tv_info.screen[i].sid, g_tv_info.screen[i].cali_offset);
		}
		g_tv_info.screen[0].tv_mode = DISP_TV_MOD_PAL;
		g_tv_info.screen[1].tv_mode = DISP_TV_MOD_PAL;

		type = disp_sys_script_get_item("tv_para", "tv_dac_used", &val, 1);
		if(1 == type)
			g_dac_used = val;
		if(g_dac_used) {
			g_tv_info.dac_count = 1;
			for(i=0; i<4; i++) {
				type = disp_sys_script_get_item("tv_para", sub_key, &val, 1);
				if(1 == type) {
					g_tv_info.screen[0].dac_source[i] = val;
					g_tv_info.screen[1].dac_source[i] = val;
					g_tv_info.dac_count++;
				}
				else
					break;
			}
		}
		tve_low_dac_autocheck_enable(1, 0);
		disp_func.tv_enable = tv_enable;
		disp_func.tv_disable = tv_disable;
		disp_func.tv_resume = tv_resume;
		disp_func.tv_suspend = tv_suspend;
		disp_func.tv_get_mode = tv_get_mode;
		disp_func.tv_set_mode = tv_set_mode;
		disp_func.tv_get_video_timing_info = tv_get_video_timing_info;
		disp_func.tv_get_input_csc = tv_get_input_csc;
		disp_func.tv_mode_support = tv_mode_support;
		disp_func.tv_get_dac_hpd = tv_get_dac_hpd;				//modify add disp_dunc
		disp_set_tv_func(&disp_func);
	}
		return 0;
}
Exemple #10
0
s32 disp_init_hdmi(disp_bsp_init_para * para)
{
	s32 ret;
	s32 value;
	//get sysconfig hdmi_used
	ret = disp_sys_script_get_item("hdmi_para", "hdmi_used", &value, 1);
	if(ret == 1)
		hdmi_used = value;

	if(hdmi_used) {
		u32 num_screens;
		u32 disp;
		struct disp_device* hdmi;
		struct disp_device_private_data* hdmip;

		DE_INF("disp_init_hdmi\n");
#if defined(__LINUX_PLAT__)
		spin_lock_init(&hdmi_data_lock);
#endif

		num_screens = bsp_disp_feat_get_num_screens();
		hdmis = (struct disp_device *)disp_sys_malloc(sizeof(struct disp_device) * num_screens);
		if(NULL == hdmis) {
			DE_WRN("malloc memory fail!\n");
			return DIS_FAIL;
		}

		hdmi_private = (struct disp_device_private_data *)disp_sys_malloc(sizeof(struct disp_device_private_data) * num_screens);
		if(NULL == hdmi_private) {
			DE_WRN("malloc memory fail!\n");
			return DIS_FAIL;
		}

		for(disp=0; disp<num_screens; disp++) {
			hdmi = &hdmis[disp];
			hdmip = &hdmi_private[disp];

			if(!bsp_disp_feat_is_supported_output_types(disp, DISP_OUTPUT_TYPE_HDMI)) {
			    continue;
			}

			hdmi->disp = disp;
			sprintf(hdmi->name, "hdmi%d", disp);
			hdmi->type = DISP_OUTPUT_TYPE_HDMI;
			hdmip->mode = DISP_TV_MOD_720P_50HZ;
			hdmip->irq_no = para->irq_no[DISP_MOD_LCD0 + disp];
			switch(disp) {
			case 0:
				hdmip->clk = DE_LCD_CLK0;
				break;
			case 1:
				hdmip->clk = DE_LCD_CLK1;//TCON clk
				break;
			default:
				hdmip->clk = DE_LCD_CLK0;
			}
			hdmip->clk_parent = DE_HDMI_CLK_SRC;

			hdmi->set_manager = disp_device_set_manager;
			hdmi->unset_manager = disp_device_unset_manager;
			hdmi->get_resolution = disp_device_get_resolution;
			hdmi->get_timings = disp_device_get_timings;
			hdmi->is_interlace = disp_device_is_interlace;

			hdmi->init = disp_hdmi_init;
			hdmi->exit = disp_hdmi_exit;

			hdmi->set_func = disp_hdmi_set_func;
			hdmi->enable = disp_hdmi_enable;
			hdmi->disable = disp_hdmi_disable;
			hdmi->is_enabled = disp_hdmi_is_enabled;
			hdmi->set_mode = disp_hdmi_set_mode;
			hdmi->get_mode = disp_hdmi_get_mode;
			hdmi->check_support_mode = disp_hdmi_check_support_mode;
			hdmi->get_input_csc = disp_hdmi_get_input_csc;
			hdmi->get_input_color_range = disp_hdmi_get_input_color_range;
			hdmi->suspend = disp_hdmi_suspend;
			hdmi->resume = disp_hdmi_resume;
			hdmi->detect = disp_hdmi_detect;

			if(bsp_disp_feat_is_supported_output_types(disp, DISP_OUTPUT_TYPE_HDMI)) {
				hdmi->init(hdmi);
				disp_device_register(hdmi);
			}
		}
	}
	return 0;
}
Exemple #11
0
//              0:ARGB    1:BRGA    2:ABGR    3:RGBA
//seq           ARGB        BRGA       ARGB       BRGA
//br_swqp    0              0            1              1
s32 parser_disp_init_para(disp_init_para * init_para)
{
	int  value;
	int  i;

	memset(init_para, 0, sizeof(disp_init_para));

	if(disp_sys_script_get_item("disp_init", "disp_init_enable", &value, 1) < 0) {
		__wrn("fetch script data disp_init.disp_init_enable fail\n");
		return -1;
	}
	init_para->b_init = value;

	if(disp_sys_script_get_item("disp_init", "disp_mode", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.disp_mode fail\n");
		return -1;
	}
	init_para->disp_mode= value;

	//screen0
	if(disp_sys_script_get_item("disp_init", "screen0_output_type", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.screen0_output_type fail\n");
		return -1;
	}
	if(value == 0) {
		init_para->output_type[0] = DISP_OUTPUT_TYPE_NONE;
	}	else if(value == 1) {
		init_para->output_type[0] = DISP_OUTPUT_TYPE_LCD;
	}	else if(value == 2)	{
		init_para->output_type[0] = DISP_OUTPUT_TYPE_TV;
	}	else if(value == 3)	{
		init_para->output_type[0] = DISP_OUTPUT_TYPE_HDMI;
	}	else if(value == 4)	{
		init_para->output_type[0] = DISP_OUTPUT_TYPE_VGA;
	}	else {
		__wrn("invalid screen0_output_type %d\n", init_para->output_type[0]);
		return -1;
	}

	if(disp_sys_script_get_item("disp_init", "screen0_output_mode", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.screen0_output_mode fail\n");
		return -1;
	}
	if(init_para->output_type[0] == DISP_OUTPUT_TYPE_TV || init_para->output_type[0] == DISP_OUTPUT_TYPE_HDMI
	    || init_para->output_type[0] == DISP_OUTPUT_TYPE_VGA) {
		init_para->output_mode[0]= value;
	}

	//screen1
	if(disp_sys_script_get_item("disp_init", "screen1_output_type", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.screen1_output_type fail\n");
		return -1;
	}
	if(value == 0) {
		init_para->output_type[1] = DISP_OUTPUT_TYPE_NONE;
	}	else if(value == 1)	{
		init_para->output_type[1] = DISP_OUTPUT_TYPE_LCD;
	}	else if(value == 2)	{
		init_para->output_type[1] = DISP_OUTPUT_TYPE_TV;
	}	else if(value == 3)	{
		init_para->output_type[1] = DISP_OUTPUT_TYPE_HDMI;
	}	else if(value == 4)	{
		init_para->output_type[1] = DISP_OUTPUT_TYPE_VGA;
	}	else {
		__wrn("invalid screen1_output_type %d\n", init_para->output_type[1]);
		return -1;
	}

	if(disp_sys_script_get_item("disp_init", "screen1_output_mode", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.screen1_output_mode fail\n");
		return -1;
	}
	if(init_para->output_type[1] == DISP_OUTPUT_TYPE_TV || init_para->output_type[1] == DISP_OUTPUT_TYPE_HDMI
	    || init_para->output_type[1] == DISP_OUTPUT_TYPE_VGA) {
		init_para->output_mode[1]= value;
	}

	//screen2
	if(disp_sys_script_get_item("disp_init", "screen2_output_type", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.screen2_output_type fail\n");
	}
	if(value == 0) {
		init_para->output_type[2] = DISP_OUTPUT_TYPE_NONE;
	}	else if(value == 1) {
		init_para->output_type[2] = DISP_OUTPUT_TYPE_LCD;
	}	else if(value == 2)	{
		init_para->output_type[2] = DISP_OUTPUT_TYPE_TV;
	}	else if(value == 3)	{
		init_para->output_type[2] = DISP_OUTPUT_TYPE_HDMI;
	}	else if(value == 4)	{
		init_para->output_type[2] = DISP_OUTPUT_TYPE_VGA;
	}	else {
		__wrn("invalid screen0_output_type %d\n", init_para->output_type[2]);
	}

	if(disp_sys_script_get_item("disp_init", "screen2_output_mode", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.screen2_output_mode fail\n");
	}
	if(init_para->output_type[2] == DISP_OUTPUT_TYPE_TV || init_para->output_type[2] == DISP_OUTPUT_TYPE_HDMI
	    || init_para->output_type[2] == DISP_OUTPUT_TYPE_VGA) {
		init_para->output_mode[2]= value;
	}

	//fb0
	init_para->buffer_num[0]= 2;

	if(disp_sys_script_get_item("disp_init", "fb0_format", &value, 1) < 0) {
		__wrn("fetch script data disp_init.fb0_format fail\n");
		return -1;
	}
	init_para->format[0]= value;

	if(disp_sys_script_get_item("disp_init", "fb0_width", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.fb0_width fail\n");
		return -1;
	}
	init_para->fb_width[0]= value;

	if(disp_sys_script_get_item("disp_init", "fb0_height", &value, 1) < 0)	{
		__wrn("fetch script data disp_init.fb0_height fail\n");
		return -1;
	}
	init_para->fb_height[0]= value;

	//fb1
	init_para->buffer_num[1]= 2;

	if(disp_sys_script_get_item("disp_init", "fb1_format", &value, 1) < 0) {
		__wrn("fetch script data disp_init.fb1_format fail\n");
	}
	init_para->format[1]= value;

	if(disp_sys_script_get_item("disp_init", "fb1_width", &value, 1) < 0) {
		__wrn("fetch script data disp_init.fb1_width fail\n");
	}
	init_para->fb_width[1]= value;

	if(disp_sys_script_get_item("disp_init", "fb1_height", &value, 1) < 0) {
		__wrn("fetch script data disp_init.fb1_height fail\n");
	}
	init_para->fb_height[1]= value;

	//fb2
	init_para->buffer_num[2]= 2;

	if(disp_sys_script_get_item("disp_init", "fb2_format", &value, 1) < 0) {
		__wrn("fetch script data disp_init.fb2_format fail\n");
	}
	init_para->format[2]= value;

	if(disp_sys_script_get_item("disp_init", "fb2_width", &value, 1) < 0) {
		__wrn("fetch script data disp_init.fb2_width fail\n");
	}
	init_para->fb_width[2]= value;

	if(disp_sys_script_get_item("disp_init", "fb2_height", &value, 1) < 0) {
		__wrn("fetch script data disp_init.fb2_height fail\n");
	}
	init_para->fb_height[2]= value;

	__inf("====display init para begin====\n");
	__inf("b_init:%d\n", init_para->b_init);
	__inf("disp_mode:%d\n\n", init_para->disp_mode);
	for(i=0; i<3; i++) {
		__inf("output_type[%d]:%d\n", i, init_para->output_type[i]);
		__inf("output_mode[%d]:%d\n", i, init_para->output_mode[i]);
	}
	for(i=0; i<3; i++) {
		__inf("buffer_num[%d]:%d\n", i, init_para->buffer_num[i]);
		__inf("format[%d]:%d\n", i, init_para->format[i]);
		__inf("fb_width[%d]:%d\n", i, init_para->fb_width[i]);
		__inf("fb_height[%d]:%d\n", i, init_para->fb_height[i]);
	}
	__inf("====display init para end====\n");

	return 0;
}