soc: qcom: msm_perf: Add msm_performance module

msm_performance addresses the scenarios to meet power/perf needs
namely setting min/max frequencies and ability to hot plug based
on user space requests.

Userspace may need to set scaling_min/scaling_max for different
usecases based on perf/power requirement.
Currently available userspace nodes exposed by cpufreq framework
might not be appropriate in situations where userspace wants to
revert back its vote and the CPU in question is offline. This module
also adds support to set min/max limits on cpufreq for
different CPUs such that the module maintains the userspace vote
across hotplugs and applies it whenever CPU policy gets updated
(after it comes online).

Sometimes for power saving reasons we might want to keep fewer CPUs
online without adversely affecting performance for certain real world
usecases. This module helps to provide that hotplug support to the
userspace such that it tries to make a best effort in keeping
certain number of CPUs online as specified by the userspace.

This includes the following changes as part of migration from 4.4:
commit 03e7659014b7f5f7afc ("soc: qcom: msm_perf: Replace obsolete..")
commit 5151ee897d65c53123a ("soc: qcom: msm_perf: Detect and notify..")
commit 5e635690ee27b98046d ("soc: qcom: msm_perf: use device_offli..")
commit 56f6d6c3529d4fbd4b3 ("soc: qcom: msm_perf: free allocated ..")
commit 7a391c8e10fe946dc88 ("soc: qcom: msm_perf: prevent cpumask..")
commit 025f0650f0bddb4d3e3 ("soc: qcom: msm_perf: Add sysfs node to..")
commit c022987819f67a15a2f ("soc: qcom: msm_perf: Add support for..")
commit 9ccb569bd7ec6245b89 ("soc: qcom: msm_perf: Add support for ..")
commit e85e0f6452f41392ecf ("soc: qcom: msm_perf: Add timers to ..")
commit 010aa5bd7cdeee25c1f ("soc: qcom: msm_perf: Optionally com..")
commit ad20b57ffba6c4577b3 ("soc: qcom: msm_perf: Detect & notify..")
commit d1e73b29199f806ece2 ("soc: qcom: msm_perf: Add detection..")
commit fd9840587441a81e610 ("soc: qcom: msm_perf: Rename the hot..")
commit 11ff15ea438cd77dafc ("soc: qcom: msm_perf: Fix a race cond..")
commit a47233f55bf1097ef16 ("soc: qcom: Avoid accessing invalid..")
commit d4fe676390ac9aaa888 ("soc: qcom: Fix for loop exit cond..")
commit ab06a7e2c0c3e13d4ed ("soc: qcom: msm_perf: Offline cores..")
commit a6928ae603eebb6d3b0 ("soc: qcom: msm_performance: Maintain..")
commit 86d4e1554fd8a008750 ("soc: qcom: Manage multipe clusters at..")
commit 5c8690eb75f10be6fd8 ("soc: qcom: Add cpufreq limits voting..")
commit c4d4ef627d935f0fdcf ("soc: qcom: Add a msm_performance module")

Change-Id: I98e0f3925aaaf538da06a08bf0987c59c02a3020
Signed-off-by: Vijay Ganti <viganti@codeaurora.org>
4 files changed