__s32 disp_video_exit() { __u32 num_screen; __u32 num_scalers; __u32 scaler_id; num_screen = bsp_disp_feat_get_num_screens(); num_scalers = bsp_disp_feat_get_num_scalers(); #ifdef __LINUX_OSAL__ for(scaler_id=0; scaler_id<num_scalers; scaler_id++) { if(maf_flag_mem[scaler_id][0]) { kfree(maf_flag_mem[scaler_id][0]); } if(maf_flag_mem[scaler_id][1]) { kfree(maf_flag_mem[scaler_id][1]); } } #else for(scaler_id=0; scaler_id<num_scalers; scaler_id++) { if(maf_flag_mem[scaler_id][0]) { OSAL_PhyFree(maf_flag_mem[scaler_id][0], maf_flag_mem_len); } if(maf_flag_mem[scaler_id][1]) { OSAL_PhyFree(maf_flag_mem[scaler_id][1], maf_flag_mem_len); } } #endif memset(g_video,0,sizeof(g_video)); return DIS_SUCCESS; }
__s32 IEP_Deu_Exit(__u32 sel) { deu_clk_exit(sel); OSAL_PhyFree(g_strtab_addr, 512); return DIS_SUCCESS; }
__s32 IEP_Drc_Exit(__u32 sel) { drc_clk_exit(sel); #ifdef __LINUX_OSAL__ kfree(pttab[sel]); #else OSAL_PhyFree(pttab[sel],IEP_LGC_TAB_SIZE); #endif return DIS_SUCCESS; }
__s32 iep_drc_resume (__u32 sel)//restore register { __u32 i; __u32 reg_val; if(drc_reg_bak[sel]) { for(i=4; i<0x3fc; i+=4) { reg_val = sys_get_wvalue(drc_reg_bak[sel] + i); sys_put_wvalue(DRC_EBIOS_Get_Reg_Base(sel) + i,reg_val); } reg_val = sys_get_wvalue(drc_reg_bak[sel]); sys_put_wvalue(DRC_EBIOS_Get_Reg_Base(sel),reg_val); #if defined(__LINUX_OSAL__) kfree((void*)drc_reg_bak[sel]); drc_reg_bak[sel] = 0; #else OSAL_PhyFree((void *)drc_reg_bak[sel], sizeof(__u32)*0x3fc); #endif } return 0; }