int BoardInit_Display(int displayDevice, int displayMode) { int var6; int var7; int var8; L428126B4[3] = displayDevice; if(displayDevice < 0 || displayMode < 0) { L428126B4[3] = -1; return 0; } var6 = svc_50("c:\\drv_de.drv"); if(var6 != 0) { wlibc_uprintf("ERR: wBoot_driver_install display driver failed\n"); return -1; } if( (L428126B4[1] = svc_52(3, 0)) == 0 ) { wlibc_uprintf("ERR: open display driver failed\n"); return -1; } var7 = 0; var8 = 0; switch( displayDevice ) { case 1: var7 = 2; var8 = 1; break; case 2: var7 = 2; var8 = 2; break; case 3: var7 = 4; break; case 4: var7 = 8; break; default: var7 = 1; } var6 = De_OpenDevice(var7 << 16 | var8 << 8 | displayMode); if(var6 != 0) { wlibc_uprintf("ERR: De Open LCD or TV failed\n"); return -1; } *L428126B4 = De_RequestLayer(0); if(*L428126B4 == 0) { wlibc_uprintf("ERR: De_RequestLayer failed\n"); return -1; } return 0; }
/* ******************************************************************************* * BoardInit_Display * * Description: * 加载 display 驱动 * * Parameters: * void * * Return value: * 0 : 成功 * !0 : 失败 * * note: * void * ******************************************************************************* */ __s32 BoardInit_Display(__s32 source, __s32 mode) { __s32 ret = 0; __s32 source_type, tv_mode, dislpay_device; board_res.display_source = source; if((source < 0) || (mode < 0)) { board_res.display_source = -1; return 0; } ret = wBoot_driver_install("c:\\drv_de.drv"); if(ret != 0) { DMSG_PANIC("ERR: wBoot_driver_install display driver failed\n"); return -1; } //提前打开显示设备 board_res.disp_hd = wBoot_driver_open(EGON2_EMOD_TYPE_DRV_DISP, NULL); if(board_res.disp_hd == NULL) { DMSG_PANIC("ERR: open display driver failed\n"); return -1; } source_type = 0; tv_mode = 0; switch(source) { case 1: //CVBS source_type = DISP_OUTPUT_TYPE_TV; tv_mode = DISP_TV_CVBS; break; case 2: //YPBPR source_type = DISP_OUTPUT_TYPE_TV; tv_mode = DISP_TV_YPBPR; break; // case 3: //SVIDEO // source_type = DISP_OUTPUT_TYPE_TV; // tv_mode = DISP_TV_SVIDEO; // break; case 3: //HDMI source_type = DISP_OUTPUT_TYPE_HDMI; break; case 4: //VGA source_type = DISP_OUTPUT_TYPE_VGA; break; default: source_type = DISP_OUTPUT_TYPE_LCD; break; } dislpay_device = (source_type << 16) | (tv_mode << 8) | ((mode << 0)); //打开显示屏幕 ret = De_OpenDevice(dislpay_device); if(ret != 0) { DMSG_PANIC("ERR: De Open LCD or TV failed\n"); return -1; } board_res.layer_hd = De_RequestLayer(DISP_LAYER_WORK_MODE_NORMAL); if(board_res.layer_hd == NULL) { DMSG_PANIC("ERR: De_RequestLayer failed\n"); return -1; } //wBoot_block_init(); LCD_DisplayInit(); return 0; }