of xhci controller.
config TEGRA_CPU_FREQ_GOVERNOR_KERNEL_START
- bool "Initialize CPU governor to a performance after DVFS initialization"
+ bool "Start scaling CPU rate to maximum after DVFS initialization"
default 0
help
During a boot up, once DVFS is initialized, there is a period of
- time in which the frequency could adjusted higher before the userspace
- configures the governor by using a more performance governor for
- a faster boot up. Selecting this option will make the system to choose
- a performance governor once the DVFS initialization is complete. Userspace
- or init script can override the governor chosen here.
+ time in which the frequency could be adjusted higher for faster boot.
+ Selecting this option will make the system to set maximum possible
+ rate once the DVFS initialization is complete. This top rate persists
+ if default USERSPACE governor is retained, or it will be scaled down
+ if/when governor is reloaded from user space.
config TEGRA_DYNAMIC_PWRDET
bool "Enable dynamic activation of IO level auto-detection"
}
#ifdef CONFIG_TEGRA_CPU_FREQ_GOVERNOR_KERNEL_START
-static int __init tegra_cpufreq_governor_init(void)
+static int __init tegra_cpufreq_governor_start(void)
{
/*
- * At this point, the full range of clocks should be available
- * Set the CPU governor to performance for a faster boot up
+ * At this point, the full range of clocks should be available,
+ * scaling up can start: set the CPU frequency, maximum possible
*/
- unsigned int i;
struct cpufreq_policy *policy;
- static char *start_scaling_gov = "performance";
- for_each_online_cpu(i) {
- policy = cpufreq_cpu_get(i);
- if (!(policy && policy->governor &&
- !(strcmp(policy->governor->name, start_scaling_gov) &&
- cpufreq_set_gov(start_scaling_gov, i))))
- pr_info("Failed to set the governor to %s for cpu %u\n",
- start_scaling_gov, i);
- if (policy)
- cpufreq_cpu_put(policy);
- }
+
+ policy = cpufreq_cpu_get(0);
+ if (!policy || tegra_target(policy, UINT_MAX, CPUFREQ_RELATION_H))
+ pr_warn("Failed to set maximum possible CPU frequency\n");
+ else
+ pr_info("Set maximum possible CPU frequency %u\n",
+ tegra_getspeed_actual());
+
+ if (policy)
+ cpufreq_cpu_put(policy);
+
return 0;
}
-late_initcall_sync(tegra_cpufreq_governor_init);
+late_initcall_sync(tegra_cpufreq_governor_start);
#endif
static void __exit tegra_cpufreq_exit(void)