cpufreq: zzmoove governor v0.5

Changelog:

- completely reworked fast scaling functionality. now using a 'line jump' logic instead of fixed freq 'colums'.
  fast scaling now in 4 steps and 2 modes possible (mode 1: only fast scaling up and mode2: fast scaling up/down)
- added support for 'Dynamic Screen Frequency Scaling' (original implementation into zzmoove governor highly improved by Yank555)
  originated by AndreiLux more info: http://forum.xda-developers.com/showpost.php?p=38499071&postcount=3
- re-enabled broken conservative sampling down factor functionality ('down skip' method).
  originated by Stratosk - upstream kernel 3.10rc1:
  https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?id=refs%2Ftags%2Fv3.10-rc1&qt=author&q=Stratos+Ka
- changed down threshold check to act like it should.
  originated by Stratosk - upstream kernel 3.10rc1:
  https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?id=refs%2Ftags%2Fv3.10-rc1&qt=author&q=Stratos+Ka
- implemented/ported 'early demand' from ondemand governor.
  originated by Stratosk - more info: http://www.semaphore.gr/80-latests/98-ondemand-early-demand
- implemented/ported 'sampling down momentum' from ondemand governor.
  originated by Stratosk - more info: http://www.semaphore.gr/80-latests/80-sampling-down-momentum
- modified some original conservative code parts regarding frequency scaling which should work better now.
  originated by DerTeufel1980: https://github.com/DerTeufel/android_kernel_samsung_smdk4412/commit/6bab622344c548be853db19adf28c3917896f0a0
- added the possibility to use sampling down momentum or conservative 'down skip' method.
- increased possible max sampling rate sleep multiplier to 4 and sampling down factor to 100000
  accordingly to sampling down momentum implementation.
- added frequency search limit for more efficient frequency searching in scaling 'table' and for improving
  frequency 'hard' and 'soft' limit handling.
- added cpu idle exit time handling like it is in lulzactive
  again work from ktoonsez : https://github.com/ktoonsez/KT747-JB/commit/a5931bee6ea9e69f386a340229745da6f2443b78
  description in lulzactive governor:
  https://github.com/ktoonsez/KT747-JB/blob/a5931bee6ea9e69f386a340229745da6f2443b78/drivers/cpufreq/cpufreq_lulzactive.c
- fixed a little scaling step mistake and added overclocking frequencies up to 1800 mhz in scaling frequency 'tables'.
- fixed possible freezes during start/stop/reload of governor and frequency limit change.
- fixed hotplugging logic at online core 0+3 or 0+2 situations and improved hotplugging in general by
  removing mutex locks and skipping hotplugging when it is not needed.
- added possibility to disable hotplugging (that's a debugging relict but i thought maybe someone will find that usefull so i didn't remove it)
- try to fix lags when coming from suspend if hotplug limitation at sleep was active by enabling all offline cores during resume.
- code cleaning and documentation.

Signed-off-by: ZaneZam <cyxman@yahoo.com>
cpufreq: zzmoove governor v0.5 : corrected a small bug not allowing to set scaling max as freq in 3 tunables

Anyway this is just for a quick release, a new version is in the making, so this will be dropped anyway...
cpufreq: zzmoove governor v0.5.1a
cpufreq: zzmoove governor v0.5.1b-beta1
cpufreq: zzmoove governor v0.5.1b-beta2
cpufreq: zzmoove governor v0.5.1b-beta3

Hotplugging reviewed by ZaneZam
cpufreq: zzmoove governor v0.5.1b-beta3

Fix hotplug_sleep (was ignored)
cpufreq: zzmoove governor v0.5.1b-beta4

Skip Hotplugging added and Hotplugging reviewed to avoid freeze/reboot switching from zzmoove governor by ZaneZam
cpufreq: zzmoove governor v0.5.1b-beta4

Version number was missing "b"...
cpufreq: zzmoove governor v0.5.1b-beta5

Fixed freezes/reboots when switching from zzmoove to another governor on-the-fly (by ZaneZam)
cpufreq: zzmoove governor v0.5.1b-beta6

Rewrite of scaling, using logic and system frequency table instead of a lookup table
cpufreq: zzmoove governor v0.6-beta1

Fixed freezes/reboots when switching from zzmoove to another governor on-the-fly (by ZaneZam)
cpufreq: zzmoove governor v0.6-beta1

Reverted, this was a double fix, and certain deadlock (mutex) ... sorry for this !
cpufreq: zzmoove governor v0.5.1b (by ZaneZam)

Changelog:

- highly optimised scaling logic (thx and credits to Yank555)
- simplified some tuneables by using already available stuff instead of using redundant code (thx Yank555)
- reduced/optimised hotplug logic and preperation for automatic detection of available cores
  (maybe this fixes also the scaling/core stuck problems)
- finally fixed the freezing issue on governor stop!
cpufreq: zzmoove governor v0.6-beta1
cpufreq: zzmoove governor v0.6-beta2
cpufreq: zzmoove governor v0.6-beta2

Support up to 4 cores only in this kernel
cpufreq: zzmoove governor v0.6-beta1

Corrected a small mistake in my sysfs code :

  - stop looping once the frequency has been found
  - return invalid error if new frequency is not found in the frequency table
cpufreq: zzmoove governor v0.6-beta3

- added 2,4,8 core support (2 core was still missing)
- corrected small mistake in frequency sysfs tunables
cpufreq: zzmoove governor v0.6-beta4

try to fix stuck issues by using seperate hotplug functions out of dbs_check_cpu (ZaneZam, credits to ktoonesz)