int gpu_minfreq_handle(unsigned int req_value) { #if 0 pmqos_gpu_dfs_limit_min(req_value); #endif return 0; }
int mali_get_target_profile(u32 curr, int step) { int target; u32 currTmp = curr; u32 maxProfile = g_mali_dfs_var.dfs_Steps - 1; /* target profile calculate */ if ( 3 == step ) { target = maxProfile; } else if ( -3 == step ) { target = 0; } else { target = currTmp + step; target = (target > maxProfile) ? maxProfile : target; target = ((target < 0) ? 0 : target); } if(g_mali_dfs_var.dfs_limitMinRate > g_mali_dfs_var.dfs_limitMaxRate) { MALI_DEBUG_PRINT(1,("mali dfs Error: dfs_limitMinRate is bigger than dfs_limitMaxRate")); g_mali_dfs_var.dfs_limitMaxRate = g_mali_dvfs_profile[g_mali_dfs_var.dfs_limitMaxPrf].freq; g_mali_dfs_var.dfs_limitMinRate = g_mali_dvfs_profile[g_mali_dfs_var.dfs_limitMinPrf].freq; return -1; } if(g_mali_dfs_var.dfs_limitMaxRate != g_mali_dvfs_profile[g_mali_dfs_var.dfs_limitMaxPrf].freq) { pmqos_gpu_dfs_limit_max(1,g_mali_dfs_var.dfs_limitMaxRate); } if(g_mali_dfs_var.dfs_limitMinRate != g_mali_dvfs_profile[g_mali_dfs_var.dfs_limitMinPrf].freq) { pmqos_gpu_dfs_limit_min(1, g_mali_dfs_var.dfs_limitMinRate); } if(g_mali_dfs_var.dfs_limitMinPrf > g_mali_dfs_var.dfs_limitMaxPrf) { MALI_DEBUG_PRINT(1,("mali dfs Error: dfs_limitMinPrf is bigger than dfs_limitMaxPrf")); g_mali_dfs_var.dfs_limitMaxPrf = g_mali_dfs_var.dfs_Steps - 1; g_mali_dfs_var.dfs_limitMinPrf = 0; return -1; } target = (target > g_mali_dfs_var.dfs_limitMaxPrf) ? g_mali_dfs_var.dfs_limitMaxPrf : target; target = (target < g_mali_dfs_var.dfs_limitMinPrf) ? g_mali_dfs_var.dfs_limitMinPrf : target; if( g_mali_dfs_var.dfs_LockOn == 1) { target = g_mali_dfs_var.dfs_LockProfile; } return target; }
/***************************************************************************** function name : mali_gpu_utilization_proc description : mali_gpu_utilization_proc input vars : void output vars : NA return value : void calls : NA called : os history : 1.data : 20/11/2013 modify : new *****************************************************************************/ static void mali_gpu_utilization_proc(struct mali_gpu_utilization_data *data) { static int count = 0; /*Just lock the gpu for the first 40 seconds after power up, this function be called every 50ns, 40s = 50ns * 800*/ if(800 == count) { MALI_DEBUG_PRINT(2,("set the gpu min_freq to 160M after about 40 seconds\n")); pmqos_gpu_dfs_limit_min(0); count++; } mali_gpu_utilization_handler(data->utilization_gpu); if(count < 800) { count++; } }