--- 46fb51d7f4e82c24bc4188007e14764a4f576fb3 +++ 121ac55f1f0511a5c37bd1b3cc5faf372c7cbd9e @@ -17,6 +17,44 @@ config CPU_FREQ if CPU_FREQ +if ARCH_MSM + +config CPU_FREQ_MIN_SCALING_LIMIT + int "Min CPU Scaling Frequency Limit" + depends on CPU_FREQ + default 384000 + +config CPU_FREQ_MAX_SCALING_LIMIT + int "Max CPU Scaling Frequency Limit" + depends on CPU_FREQ + default 1900000 + +config MSM_VMIN + int "VMIN used for acpuclock" + default 900000 + depends on CPU_FREQ + +config CPU_FREQ_MAX_VDD_SC + int "Max CPU VDD SC uV" + depends on CPU_FREQ + default 1400000 + +config CPU_FREQ_MIN_VDD_SC + int "Min CPU VDD SC uV" + depends on CPU_FREQ + default 850000 + +config CPU_FREQ_MSM_DCVS_CPU1_DELAY + int "Delay prior to initializing dcvs for cpu1 (ms)" + depends on CPU_FREQ + default 1000 + help + The MSM-DCVS governor sometimes does not register + the second cpu, cpu1, correctly. This delay gives + cpu1 additional time to become ready prior to registering + +endif + config CPU_FREQ_TABLE tristate @@ -100,6 +138,19 @@ config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE governor. If unsure have a look at the help section of the driver. Fallback governor will be the performance governor. + +config CPU_FREQ_DEFAULT_GOV_LAGFREE + bool "lagfree" + select CPU_FREQ_GOV_LAGFREE + select CPU_FREQ_GOV_PERFORMANCE + help + Use the CPUFreq governor 'lagfree' as default. This allows + you to get a full dynamic frequency capable system by simply + loading your cpufreq low-level hardware driver. + Be aware that not all cpufreq drivers support the lagfree + governor. If unsure have a look at the help section of the + driver. Fallback governor will be the performance governor. + config CPU_FREQ_DEFAULT_GOV_INTERACTIVE bool "interactive" select CPU_FREQ_GOV_INTERACTIVE @@ -109,6 +160,12 @@ config CPU_FREQ_DEFAULT_GOV_INTERACTIVE loading your cpufreq low-level hardware driver, using the 'interactive' governor for latency-sensitive workloads. +config CPU_FREQ_DEFAULT_GOV_SMARTASSV2 + bool "smartassv2" + select CPU_FREQ_GOV_SMARTASSV2 + help + Use the CPUFreq governor 'smartassV2' as default. + endchoice config CPU_FREQ_GOV_PERFORMANCE @@ -206,11 +263,173 @@ config CPU_FREQ_GOV_CONSERVATIVE If in doubt, say N. +config CPU_FREQ_GOV_LAGFREE + tristate "'lagfree' cpufreq governor" + depends on CPU_FREQ + help + 'lagfree' - this driver is rather similar to the 'ondemand' + governor both in its source code and its purpose, the difference is + its optimisation for better suitability in a battery powered + environment. The frequency is gracefully increased and decreased + rather than jumping to 100% when speed is required. + +config LAGFREE_MAX_LOAD + int "Max CPU Load" + default 50 + depends on CPU_FREQ_GOV_LAGFREE + help + CPU freq will be increased if measured load > max_cpu_load; + +config LAGFREE_MIN_LOAD + int "Min CPU Load" + default 15 + depends on CPU_FREQ_GOV_LAGFREE + help + CPU freq will be decrease if measured load < min_cpu_load; + +config LAGFREE_FREQ_STEP_DOWN + int "Frequency Step Down" + default 108000 + depends on CPU_FREQ_GOV_LAGFREE + help + Max freqeuncy delta when ramping down. + +config LAGFREE_FREQ_SLEEP_MAX + int "Max Sleep frequeny" + default 384000 + depends on CPU_FREQ_GOV_LAGFREE + help + Max freqeuncy for screen off. + +config LAGFREE_FREQ_AWAKE_MIN + int "Min Awake frequeny" + default 384000 + depends on CPU_FREQ_GOV_LAGFREE + help + Min freqeuncy for screen on. + +config LAGFREE_FREQ_STEP_UP_SLEEP_PERCENT + int "Freq step up percent sleep" + default 20 + depends on CPU_FREQ_GOV_LAGFREE + help + Frequency percent to step up while screen off. + +config CPU_FREQ_GOV_SMARTASSV2 + tristate "'smartassV2' cpufreq governor" + depends on CPU_FREQ + help + 'smartassV2' - a "smart" governor + If in doubt, say N. + +config SMARTASSV2_AWAKE_IDEAL_FREQ + int "The ideal frequency to use when awake." + default 1026000 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + The "ideal" frequency to use when awake. The governor will ramp up faster + towards the ideal frequency and slower after it has passed it. Similarly, + lowering the frequency towards the ideal frequency is faster than below it. + +config SMARTASSV2_SLEEP_IDEAL_FREQ + int "The ideal frequency to use when suspended." + default 0 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + The "ideal" frequency to use when suspended. + When set to 0, the governor will not track the suspended state (meaning + that practically when sleep_ideal_freq==0 the awake_ideal_freq is used + also when suspended). + +config SMARTASSV2_RAMP_UP_STEP + int "Freqeuncy delta when ramping up above the ideal freqeuncy." + default 256000 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + Freqeuncy delta when ramping up above the ideal freqeuncy. + Zero disables and causes to always jump straight to max frequency. + When below the ideal freqeuncy we always ramp up to the ideal freq. + +config SMARTASSV2_RAMP_DOWN_STEP + int "Freqeuncy delta when ramping down below the ideal freqeuncy." + default 256000 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + Freqeuncy delta when ramping down below the ideal freqeuncy. + Zero disables and will calculate ramp down according to load heuristic. + When above the ideal freqeuncy we always ramp down to the ideal freq. + +config SMARTASSV2_MAX_CPU_LOAD + int "CPU freq will be increased if measured load > max_cpu_load." + default 50 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + CPU freq will be increased if measured load > max_cpu_load. + +config SMARTASSV2_MIN_CPU_LOAD + int "CPU freq will be decreased if measured load < max_cpu_load." + default 25 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + CPU freq will be decreased if measured load < max_cpu_load. + +config SMARTASSV2_UP_RATE_US + int "The minimum amount of time to spend at a frequency before we can ramp up." + default 48000 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + The minimum amount of time to spend at a frequency before we can ramp up. + Notice we ignore this when we are below the ideal frequency. + +config SMARTASSV2_DOWN_RATE_US + int "The minimum amount of time to spend at a frequency before we can ramp down." + default 99000 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + The minimum amount of time to spend at a frequency before we can ramp down. + Notice we ignore this when we are below the ideal frequency. + +config SMARTASSV2_SLEEP_WAKEUP_FREQ + int "The frequency to set when waking up from sleep." + default 99999999 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + The frequency to set when waking up from sleep. + When sleep_ideal_freq=0 this will have no effect. + +config SMARTASSV2_SAMPLE_RATE_JIFFIES + int "Sampling rate." + default 2 + depends on CPU_FREQ_GOV_SMARTASSV2 + help + Sampling rate, I highly recommend to leave it at 2. + +config CPU_FREQ_MIN_TICKS + int "Ticks between governor polling interval." + default 10 + help + Minimum number of ticks between polling interval for governors. + +config CPU_FREQ_SAMPLING_LATENCY_MULTIPLIER + int "Sampling rate multiplier for governors." + default 1000 + help + Sampling latency rate multiplied by the cpu switch latency. + Affects governor polling. + config SEC_DVFS bool "DVFS job" default n depends on CPU_FREQ +config VDD_USERSPACE + bool "VDD sysfs interface" + default n + depends on CPU_FREQ_STAT + help + exposes the VDD table to userspace + allows users to adjust voltages on the fly + menu "x86 CPU frequency scaling drivers" depends on X86 source "drivers/cpufreq/Kconfig.x86"