ondemand: Add support to consider other cpu load when scaling frequencies

Currently only current cpu load is considered when frequency scaling.
As a side effect of this when scheduler migrates a thread to a slower
core, the execution time increases unexpectedly.

The new algorithm not only considers current cpu load for frequency
scaling, but also takes into account load of other online cpus. The
treshold for this can be controlled using up_threshold_any_cpu_load.
When the up_threshold_any_cpu_load is crossed in any cpu then the
current cpu is set to sync_freq.

Also, when more than one cpu is online a two step ramp-up mechanism
is used. When the up_threshold_multi_core is crossed the cpu is ramped
up to optimal_freq which is less than policy->max and set to a power
friendly value.

Change-Id: I64bed1b142cde1f239e73aa1f78981c78aaf59ce
Signed-off-by: Narayanan Gopalakrishnan <nargop@codeaurora.org>
(cherry picked from commit d3ca78370df00ec7a5b6816321ea1a1a371f2850)
cpufreq: fix interactive bug during hotplug.

When a new cpu is added and if does not enter idle
for long, the interactive timer is not started and hence
the cpu remains at lowest frequecny, despite the system
load. This impacts mainly benchmarks. Starting a timer
at governor start to handle low frequency.

Signed-off-by: Narayanan Gopalakrishnan <nargop@codeaurora.org>
(cherry picked from commit 940d4b98eab2577d6c1e710f2939a2b0b6b3f028)

Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
(cherry picked from commit 472595c3e1e47ffe310e8b2d1c7a4dbd34c0bb59)

Change-Id: Icf7180f6f914e8c928c73a68d2684a5b39d1f72a
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
smartmax: cleanup cur_load calculation
msm_rq_stats: sync with CAF and added ignore_nice and io_is_busy options