cpufreq_pegasusq: make up_threshold_at_min_freq and freq_for_responsiveness configurable
pegasusq: Add flexrate capability

Additionally add a configurable maximum frequency threshold for which flexrate requests will be valid.
Revert "pegasusq: Add flexrate capability"

This was a buggy and stupid implementation, shame on me.

This reverts commit 6e6e624beb64a5eedfbdc9ad92da603dd97022ef.
pegasusq: Add flexrate capability

Ported cpufreq_ondemand_flexrate_request call compatibility to pegasusq and rewrote the main code in charge of handling the requests.

Added possibility to dismiss and cancel flexrate calls over a configurable maximum frequency.

Added hotplug sampling rate normalization during active flexrate requests; hotplug samples are delayed during accelerated governor sampling and are normalized to the usually active sampling rate.
pegasusq: Remove sysfs_duration from flexrate
pegasusq: Remove unused cpu_up_freq, cpu_down_freq parameters
pegasusq: Tune parameters alpha17

Conflicts:
	drivers/cpufreq/cpufreq_pegasusq.c
pegasusq: Add LCDFreq scaling mechanism
pegasusq: reduce sample window and adjust hotplug accordingly
pegasusq: Add core count load biasing, multiple freq-steps, and fast-down scaling logics.

Original implementations based on Samsung's new sources.
pegasusq: Don't scale down inside of flexrate sub-samples
pegasusq: Replace governor nr_running logic

Remove pegasusq's own nr_running() averaging logic and replace it with
Nvidia's avg_nr_running() in-scheduler collecting mechanism.

Compared to the old logic, the new one is able to do absolutely exact
runqueue monitoring as it is averaging deep inside the scheduler, whilst
the old logic could only do snap-shots every 10ms.

Furthermore, we're able to decrease runqueue peaks and lows by the
sliding-window averaging done by avg_nr_running(), averaging runqueues
over 134ms and retaining the precision.

We also remove a whole separate workqueue from the kernel and a lot of
overhead and code from inside the governor.
pegasusq: Remove io busy control
scheduler: compute time-average nr_running per run-queue

Compute the time-average number of running tasks per run-queue for a
trailing window of a fixed time period. The detla add/sub to the
average value is weighted by the amount of time per nr_running value
relative to the total measurement period.

Change-Id: I4b1fa8fee82a549889560ceded4b94bdb811671d
Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
Reviewed-on: http://git-master/r/108070
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ryan Wong <ryanw@nvidia.com>
Tested-by: Ryan Wong <ryanw@nvidia.com>
changed version to 0.2