s32 bsp_disp_init(disp_bsp_init_para * para) { u32 num_screens, disp; memset(&gdisp,0x00,sizeof(disp_dev_t)); memcpy(&gdisp.init_para,para,sizeof(disp_bsp_init_para)); para->shadow_protect = bsp_disp_shadow_protect; disp_init_feat(); num_screens = bsp_disp_feat_get_num_screens(); for(disp = 0; disp < num_screens; disp++) { #if defined(__LINUX_PLAT__) spin_lock_init(&gdisp.screen[disp].flag_lock); #endif } bsp_disp_set_print_level(DEFAULT_PRINT_LEVLE); disp_init_al(para); disp_init_mgr(para); disp_init_lcd(para); disp_init_enhance(para); disp_init_smbl(para); disp_init_capture(para); disp_init_connections(); return DIS_SUCCESS; }
s32 bsp_disp_init(__disp_bsp_init_para * para) { u32 num_screens, screen_id; #if defined(CONFIG_ARCH_SUN9IW1P1) u32 temp; #endif memset(&gdisp,0x00,sizeof(__disp_dev_t)); memset(fps_data, 0x00, sizeof(disp_fps_data) * 3); memcpy(&gdisp.init_para,para,sizeof(__disp_bsp_init_para)); para->shadow_protect = bsp_disp_shadow_protect; disp_init_feat(); num_screens = bsp_disp_feat_get_num_screens(); for(screen_id = 0; screen_id < num_screens; screen_id++) { #if defined(__LINUX_PLAT__) spin_lock_init(&gdisp.screen[screen_id].flag_lock); init_waitqueue_head(&gdisp.screen[screen_id].wait); gdisp.screen[screen_id].wait_count = 0; #endif } #if defined(CONFIG_ARCH_SUN9IW1P1) { u32 addr; //FIXME temp = *((volatile u32*)(0xf60005a8)); temp = temp | 0x4; *((volatile u32*)(0xf60005a8)) = temp; addr = para->reg_base[DISP_MOD_TOP]; writel(0xffffffff, (void __iomem *)(addr + 0xc)); } #endif bsp_disp_set_print_level(DEFAULT_PRINT_LEVLE); disp_notifier_init(); disp_init_al(para); disp_init_lcd(para); #if defined(CONFIG_ARCH_SUN9IW1P1) disp_init_hdmi(para); disp_init_cursor(para); #endif disp_init_mgr(para); disp_init_lyr(para); //capture disp_init_capture(para); disp_init_smcl(para); disp_init_smbl(para); disp_init_connections(); return DIS_SUCCESS; }