int gpu_dvfs_decide_max_clock(struct exynos_context *platform) { int table_id; int level; if (!platform) return -1; table_id = cal_get_table_ver(); if (table_id < 0) return -1; if (table_id >= GPU_DVFS_TABLE_LIST_SIZE(available_max_clock)) table_id = GPU_DVFS_TABLE_LIST_SIZE(available_max_clock)-1; level = available_max_clock[table_id]; platform->gpu_max_clock = MIN(platform->gpu_max_clock, platform->table[level].clock); if (is_max_limit_sample()) platform->gpu_max_clock = MIN(platform->gpu_max_clock, platform->table[GPU_L3].clock); return 0; }
static gpu_attribute gpu_config_attributes[] = { {GPU_MAX_CLOCK, 772}, {GPU_MAX_CLOCK_LIMIT, 770}, {GPU_MIN_CLOCK, 266}, {GPU_DVFS_START_CLOCK, 266}, {GPU_DVFS_BL_CONFIG_CLOCK, 266}, {GPU_GOVERNOR_TYPE, G3D_DVFS_GOVERNOR_INTERACTIVE}, {GPU_GOVERNOR_START_CLOCK_DEFAULT, 266}, {GPU_GOVERNOR_START_CLOCK_INTERACTIVE, 266}, {GPU_GOVERNOR_START_CLOCK_STATIC, 266}, {GPU_GOVERNOR_START_CLOCK_BOOSTER, 266}, {GPU_GOVERNOR_TABLE_DEFAULT, (uintptr_t)&gpu_dvfs_table_default}, {GPU_GOVERNOR_TABLE_INTERACTIVE, (uintptr_t)&gpu_dvfs_table_default}, {GPU_GOVERNOR_TABLE_STATIC, (uintptr_t)&gpu_dvfs_table_default}, {GPU_GOVERNOR_TABLE_BOOSTER, (uintptr_t)&gpu_dvfs_table_default}, {GPU_GOVERNOR_TABLE_SIZE_DEFAULT, GPU_DVFS_TABLE_LIST_SIZE(gpu_dvfs_table_default)}, {GPU_GOVERNOR_TABLE_SIZE_INTERACTIVE, GPU_DVFS_TABLE_LIST_SIZE(gpu_dvfs_table_default)}, {GPU_GOVERNOR_TABLE_SIZE_STATIC, GPU_DVFS_TABLE_LIST_SIZE(gpu_dvfs_table_default)}, {GPU_GOVERNOR_TABLE_SIZE_BOOSTER, GPU_DVFS_TABLE_LIST_SIZE(gpu_dvfs_table_default)}, {GPU_GOVERNOR_INTERACTIVE_HIGHSPEED_CLOCK, 420}, {GPU_GOVERNOR_INTERACTIVE_HIGHSPEED_LOAD, 95}, {GPU_GOVERNOR_INTERACTIVE_HIGHSPEED_DELAY, 0}, {GPU_DEFAULT_VOLTAGE, 890000}, {GPU_COLD_MINIMUM_VOL, 0}, {GPU_VOLTAGE_OFFSET_MARGIN, 37500}, {GPU_TMU_CONTROL, 1}, {GPU_TEMP_THROTTLING1, 544}, {GPU_TEMP_THROTTLING2, 420}, {GPU_TEMP_THROTTLING3, 350}, {GPU_TEMP_THROTTLING4, 266}, {GPU_TEMP_TRIPPING, 266},