Skip to content

Commit

Permalink
cpufreq : Add intelliminmax Governor
Browse files Browse the repository at this point in the history
intelliminmax (intellimm) governor is designed to work with the newer SOCs with fixed voltage rails (ie MSM8974+ SOCs).  It is designed to work within those
fixed voltage ranges in order to maximize battery performance while creating a
smooth UI operations.

Copyright 2014 Paul Reioux <aka faux123>

Signed-off-by: Paul Reioux <reioux@gmail.com>

WIP: Intellimm: remove unused code and change tblmap algorithm

tblmap: add power-save frequencies for the first 5 entries

Signed-off-by: Paul Reioux <reioux@gmail.com>

WIP: intellimm: more tweaks and table clean up

Signed-off-by: Paul Reioux <reioux@gmail.com>

WIP: intellimm: more tweaks

Signed-off-by: Paul Reioux <reioux@gmail.com>

WIP: intellimm: clean up derpy logic

Signed-off-by: Paul Reioux <reioux@gmail.com>

WIP: intellimm: final clean up and algorithm tweaks

Signed-off-by: Paul Reioux <reioux@gmail.com>

WIP: intellimm: finalizing part 2

Signed-off-by: Paul Reioux <reioux@gmail.com>

WIP: intellimm: finalizing part 3

add back burst for smoother UI

Signed-off-by: Paul Reioux <reioux@gmail.com>

intellimm: fix div by zero derp

Signed-off-by: Paul Reioux <reioux@gmail.com>
  • Loading branch information
yank555-lu authored and gugu0das committed Feb 16, 2017
1 parent c5aa955 commit 7186ee6
Show file tree
Hide file tree
Showing 6 changed files with 1,697 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/configs/cm_msm8974_sec_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ CONFIG_CPU_FREQ_GOV_INTELLIDEMAND=y
CONFIG_CPU_FREQ_GOV_INTELLIACTIVE=y
CONFIG_CPU_FREQ_GOV_ARTERACTIVE=y
CONFIG_CPU_FREQ_GOV_ONDEMANDPLUS=y
CONFIG_CPU_FREQ_GOV_INTELLIMM=y
CONFIG_CPU_BOOST=y

#Enable CPUFREQ LIMIT.
Expand Down
1 change: 1 addition & 0 deletions arch/arm/configs/msm8974_sec_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ CONFIG_CPU_FREQ_GOV_INTELLIDEMAND=y
CONFIG_CPU_FREQ_GOV_INTELLIACTIVE=y
CONFIG_CPU_FREQ_GOV_ARTERACTIVE=y
CONFIG_CPU_FREQ_GOV_ONDEMANDPLUS=y
CONFIG_CPU_FREQ_GOV_INTELLIMM=y
CONFIG_CPU_BOOST=y

#Enable CPUFREQ LIMIT.
Expand Down
17 changes: 17 additions & 0 deletions drivers/cpufreq/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ config CPU_FREQ_DEFAULT_GOV_ONDEMANDPLUS
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_INTELLIMM
bool "intelliminmax"
select CPU_FREQ_GOV_INTELLIMM
help
Use the CPUFreq governor 'intelliminmax' as default. This is
governor will use only 3 different frequencies, idle, UI and max

endchoice

config CPU_FREQ_GOV_PERFORMANCE
Expand Down Expand Up @@ -298,6 +305,16 @@ config CPU_FREQ_GOV_ONDEMANDPLUS

If in doubt, say N.

config CPU_FREQ_GOV_INTELLIMM
tristate "'intelliminmax' cpufreq policy governor"
help
To compile this driver as a module, choose M here: the
module will be called cpufreq_interactive.

For details, take a look at linux/Documentation/cpu-freq.

If in doubt, say N.

menu "x86 CPU frequency scaling drivers"
depends on X86
source "drivers/cpufreq/Kconfig.x86"
Expand Down
1 change: 1 addition & 0 deletions drivers/cpufreq/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ obj-$(CONFIG_CPU_FREQ_GOV_INTELLIDEMAND) += cpufreq_intellidemand.o
obj-$(CONFIG_CPU_FREQ_GOV_INTELLIACTIVE) += cpufreq_intelliactive.o
obj-$(CONFIG_CPU_FREQ_GOV_ARTERACTIVE) += cpufreq_arteractive.o
obj-$(CONFIG_CPU_FREQ_GOV_ONDEMANDPLUS) += cpufreq_ondemandplus.o
obj-$(CONFIG_CPU_FREQ_GOV_INTELLIMM) += cpufreq_intellimm.o

# CPUfreq cross-arch helpers
obj-$(CONFIG_CPU_FREQ_TABLE) += freq_table.o
Expand Down

0 comments on commit 7186ee6

Please sign in to comment.