zzmoove Version 0.7 - slow down (in cooperation with Yank555)
Changelog:

        - reindroduced the 'old way' of hotplugging and scaling in form of the 'Legacy Mode' (macros for enabling/disabling this done by Yank555, thx)
          NOTE: this mode can only handle 4 cores and a scaling max frequency up to 1800mhz.
        - added hotplug idle threshold for a balanced load at CPU idle to reduce possible higher idle temperatures when running on just one core.
          (inspired by JustArchi's observations, thx)
        - added hotplug block cycles to reduce possible hotplugging overhead (credits to ktoonsez)
        - added possibility to disable hotplugging only at suspend (inspired by a request of STAticKY, thx for the idea)
        - introduced hotplug frequency thresholds (credits to Yank555)
        - hotplug tuneables handling optimized (credits to Yank555)
        - added version information tuneable (credits to Yank555)

          for this functions following new tuneables were indroduced:

          legacy_mode                   -> for switching to the 'old' method of scaling/hotplugging. possible values 0 to disable,
                                           any values above 0 to enable (default is 0)
                                           NOTE: the legacy mode has to be enabled by uncommenting the macro ENABLE_LEGACY_MODE below
          hotplug_idle_threshold        -> amount of load under which hotplugging should be disabled at idle times (respectively at scaling minimum).
                                           possible values 0 disable, from 1 to 100 (default is 0)
          hotplug_block_cycles          -> slow down hotplugging by waiting a given amount of cycles before plugging.
                                           possible values 0 disbale, any values above 0 (default is 0)
          disable_hotplug_sleep         -> same as disable_hotplug but will only take effect at suspend.
                                           possible values 0 disable, any values above 0 to enable (default is 0)
          up_threshold_hotplug_freq1    -> hotplug up frequency threshold for core1.
                                           possible values 0 disable and range from over down_threshold_hotplug_freq1 to max scaling freqency (default is 0)
          up_threshold_hotplug_freq2    -> hotplug up frequency threshold for core2.
                                           possible values 0 disable and range from over down_threshold_hotplug_freq2 to max scaling freqency (default is 0)
          up_threshold_hotplug_freq3    -> hotplug up frequency threshold for core3.
                                           possible values 0 disable and range from over down_threshold_hotplug_freq3 to max scaling freqency (default is 0)
          down_threshold_hotplug_freq1  -> hotplug down frequency threshold for core1.
                                           possible values 0 disable and range from min saling to under up_threshold_hotplug_freq1 freqency (default is 0)
          down_threshold_hotplug_freq2  -> hotplug down frequency threshold for core2.
                                           possible values 0 disable and range from min saling to under up_threshold_hotplug_freq2 freqency (default is 0)
          down_threshold_hotplug_freq3  -> hotplug down frequency threshold for core3.
                                           possible values 0 disable and range from min saling to under up_threshold_hotplug_freq3 freqency (default is 0)
          version                       -> show the version of zzmoove governor
Samsung Update 10 -> Update 11
mm/slab : fix compilation errors for Samsung kernel (Yank555.lu)
Linux 3.0.90
Update temasek defconfig
mali: GPU clock and voltage control including auto-applied full freq. range voltage table (Yank555.lu)

- (new) voltage interface switchabled readonly/readwrite in menuconfig

- Fixed a derp in mali_platform_dvfs.c that impeeded voltage being initialized for highest frequency (Yank555.lu)

mali_dvfs_table_update gets called before the initialization of the ASV level, which
at that stage is reported as ASV 0 when it is 6 once boot is completed on my device

- Included proper voltage table for all 20 freq. levels with automatic update when changing any GPU freq. (Yank555.lu)

SysFS interface :

* clock control (old legacy interface) :
*
* - set frequencies (5 steps) :
*
* echo "step0 step1 step2 step3 step4" > /sys/class/misc/gpu_clock_control/gpu_control
*
* available frequency steps :
*
* 54, 108, 160, 200*, 266, 275, 300,
* 333, 350, 400*, 440, 500*, 533, 600*,
* 640*, 666*, 700*, 733*, 750*, 800
* (* newly introduced steps)
*
* NB: Any change will trigger a reset of all voltages !
*
* - set frequency-step thresholds (up & down) :
*
* echo "step0_up% step1_down% step1_up% step2_down% step2_up% step3_down% step3_up% step4_down%" > /sys/class/misc/gpu_clock_control/gpu_control
*
* available thresholds :
*
* 0% - 100%
*
* - set staycount for each step (default = 0) :
*
* echo "step0 step1 step2 step3 step4" > /sys/class/misc/gpu_clock_control/gpu_staycount
*
* available staycount values :
*
* 0 - 255
*
* clock control (new interface) :
*
* - set frequencies (5 steps) :
*
* echo "freq" > /sys/class/misc/gpu_clock_control/gpu_freq_0...4
*
* available frequency steps :
*
* 54, 108, 160, 200*, 266, 275, 300,
* 333, 350, 400*, 440, 500*, 533, 600*,
* 640*, 666*, 700*, 733*, 750*, 800
* (* newly introduced steps)
*
* NB: Only actually existing steps will be accepted (old legacy accepts anything between min and max !!)
* Any change will trigger a reset of all voltages !
*
* - set frequency-step thresholds (up & down) :
*
* echo "threshold" > /sys/class/misc/gpu_clock_control/gpu_upthreshold_0...3
*
* echo "threshold" > /sys/class/misc/gpu_clock_control/gpu_downthreshold_1...4
*
* available thresholds :
*
* 0 - 100
*
* - set staycount for each step (default = 0) :
*
* echo "staycount" > /sys/class/misc/gpu_clock_control/gpu_staycount_0...4
*
* available staycount values :
*
* 0 - 255
*
* - list all available frequencies (read-only) :
*
* cat /sys/class/misc/gpu_clock_control/available_frequencies
*
* voltage control (old legacy interface) :
*
* - set frequency-step voltage (5 steps) :
*
* echo "step0 step1 step2 step3 step4" > /sys/class/misc/gpu_voltage_control/gpu_control
*
* available voltages :
*
* 600000 - 1400000
*
* voltage control (new interface) :
*
* - set frequency-step voltage (5 steps) :
*
* echo "voltage" > /sys/class/misc/gpu_voltage_control/gpu_voltage_0...4
*
* available voltages :
*
* 600000 - 1400000
*
* - display ASV level (read-only) :
*
* cat /sys/class/misc/gpu_voltage_control/asv_level
*
* - recalculate mali_dvfs_table (write-only) :
*
* echo 1 > /sys/class/misc/gpu_voltage_control/mali_dvfs_table_update

Conflicts:

	drivers/media/video/samsung/mali/common/gpu_voltage_control.c
mali: GPU clock and voltage control including auto-applied full freq. range voltage table (Yank555.lu)

- (new) added global voltage delta to be applied on all steps whenever voltages are reset

- voltage interface switchabled readonly/readwrite in menuconfig

- Fixed a derp in mali_platform_dvfs.c that impeeded voltage being initialized for highest frequency (Yank555.lu)

    mali_dvfs_table_update gets called before the initialization of the ASV level, which
    at that stage is reported as ASV 0 when it is 6 once boot is completed on my device

- Included proper voltage table for all 20 freq. levels with automatic update when changing any GPU freq. (Yank555.lu)

SysFS interface :

* clock control (old legacy interface) :
*
*    - set frequencies (5 steps) :
*
*          echo "step0 step1 step2 step3 step4" > /sys/class/misc/gpu_clock_control/gpu_control
*
*       available frequency steps :
*
*           54 , 108 , 160 , 200*, 266 , 275, 300 ,
*          333 , 350 , 400*, 440 , 500*, 533, 600*,
*          640*, 666*, 700*, 733*, 750*, 800
*          (* newly introduced steps)
*
*       NB: Any change will trigger a reset of all voltages !
*
*    - set frequency-step thresholds (up & down) :
*
*          echo "step0_up% step1_down% step1_up% step2_down% step2_up% step3_down% step3_up% step4_down%" > /sys/class/misc/gpu_clock_control/gpu_control
*
*       available thresholds :
*
*          0% - 100%
*
*    - set staycount for each step (default = 0) :
*
*          echo "step0 step1 step2 step3 step4" > /sys/class/misc/gpu_clock_control/gpu_staycount
*
*       available staycount values :
*
*          0 - 255
*
* clock control (new interface) :
*
*    - set frequencies (5 steps) :
*
*          echo "freq" > /sys/class/misc/gpu_clock_control/gpu_freq_0...4
*
*       available frequency steps :
*
*           54 , 108 , 160 , 200*, 266 , 275, 300 ,
*          333 , 350 , 400*, 440 , 500*, 533, 600*,
*          640*, 666*, 700*, 733*, 750*, 800
*          (* newly introduced steps)
*
*       NB: Only actually existing steps will be accepted (old legacy accepts anything between min and max !!)
*           Any change will trigger a reset of all voltages !
*
*    - set frequency-step thresholds (up & down) :
*
*          echo "threshold" > /sys/class/misc/gpu_clock_control/gpu_upthreshold_0...3
*
*          echo "threshold" > /sys/class/misc/gpu_clock_control/gpu_downthreshold_1...4
*
*       available thresholds :
*
*          0 - 100
*
*    - set staycount for each step (default = 0) :
*
*          echo "staycount" > /sys/class/misc/gpu_clock_control/gpu_staycount_0...4
*
*       available staycount values :
*
*          0 - 255
*
*    - list all available frequencies (read-only) :
*
*          cat /sys/class/misc/gpu_clock_control/available_frequencies
*
* voltage control (old legacy interface) :
*
*    - set frequency-step voltage (5 steps) :
*
*          echo "step0 step1 step2 step3 step4" > /sys/class/misc/gpu_voltage_control/gpu_control
*
*       available voltages :
*
*          600000 - 1400000
*
* voltage control (new interface) :
*
*    - set frequency-step voltage (5 steps) :
*
*          echo "voltage" > /sys/class/misc/gpu_voltage_control/gpu_voltage_0...4
*
*       available voltages :
*
*          600000 - 1400000
*
*    - global over-/undervolt all steps (5 steps) :
*
*          echo "voltage" > /sys/class/misc/gpu_voltage_control/gpu_voltage_detla
*
*       available delta voltages :
*
*          -250000 - +250000 (applied voltages will never drop below 600000 nor cross 1400000)
*
*    - display ASV level (read-only) :
*
*          cat /sys/class/misc/gpu_voltage_control/asv_level
*
*    - recalculate mali_dvfs_table (write-only) :
*
*          echo 1 > /sys/class/misc/gpu_voltage_control/mali_dvfs_table_update
Update temasek defconfig