mach-midas.c: increase USB charging rate
ksm.c: for testing purposes I enabled KSM in the kernel config, so we enable it here by default with some tweaked options
Revert "sched.h: set tweaked LOAD AVG moire values"

This reverts commit c76e6c9814ef1efa7c433c8f0c667fd6a5842074.
Revert "Revert "sched: Fix nohz load accounting -- again!""

This reverts commit 176ea88ac8946a1945545d567cfeff8f8bbf4de9.
[PATCHv2 1/2] sched: Folding nohz load accounting more accurate

V1-->V2 Use per-cpu variable instead of cpumask to avoid lock.

After patch 453494c3d4 (sched: Fix nohz load accounting -- again!), we can fold
the idle into calc_load_tasks_idle between the last cpu load calculating and
calc_global_load calling. However problem still exits between the first cpu
load calculating and the last cpu load calculating. Every time when we do load
calculating, calc_load_tasks_idle will be added into calc_load_tasks, even if
the idle load is caused by calculated cpus. Consider following case:
5HZ+1
| cpu0_load     cpu1    cpu2    cpu3    calc_load_tasks    tasks_idle
|    1           1       1       1
|  -->calc_load                             1                  0
|    1           1       1       1
|                    -->calc_load           2                  0
|    0           0       1       0
|                    -->calc_load           2+1-3=0            -3
|    1           1       0       1
|                            -->calc_load   1-1=0              -1
V
5HZ+11     -->calc_global_load              0                  0

actually the load should be around 3, but shows nearly 0.

This can be found in our work load. The average running processes number
is about 15, but the load only shows about 4.

We provides a solution, by taking those load not calculated cpus' idle out from
global idle as calc_unmask_cpu_load_idle. Then when calc_load execute on every
cpu, we only fold calc_unmask_cpu_load_idle. After this patch, case above
should be as follow:
5HZ+1
| cpu0_load     cpu1    cpu2    cpu3   calc_load_tasks tasks_idle  unmask_idle
|    1           1       1       1
|  -->calc_load                             1              0           0
|    1           1       1       1
|              -->calc_load                 2              0           0
|    0           0       1       0
|                    -->calc_load           2+1-1=2        -3          -1
|    1           1       0       1
|                            -->calc_load   2+1=3          -2-1=-3     0
V
5HZ+11     -->calc_global_load              3              -3          0

CC: Peter Zijlstra <peterz@infradead.org>
CC: Doug Smythies <dsmythies@telus.net>
CC: Ingo Molnar <mingo@redhat.com>
CC: Tao Ma <tm@tao.ma>
CC: Sha Zhengju <handai.szj@gmail.com>
Reported-by: Sha Zhengju <handai.szj@gmail.com>
Signed-off-by: Charles Wang <muming.wq@taobao.com>
Patch Final: sched: Folding nohz load accounting more accurate! + GOVS
Thanks to Charles Wang for spotting the defects in the current code:

 - If we go idle during the sample window -- after sampling, we get a
   negative bias because we can negate our own sample.

 - If we wake up during the sample window we get a positive bias
   because we push the sample to a known active period.

So rewrite the entire nohz load-avg muck once again, now adding
copious documentation to the code.

Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Reported-and-tested-by: Doug Smythies <dsmythies@xxxxxxxxx>
Reported-and-tested-by: Charles Wang <muming.wq@xxxxxxxxx>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
deadline-iosched.c: we were already doing single batches so it makes sense to me to reduce the read/write submit times. OMAP4460 runs with 128HZ so read submits occur 4 times every kernel tick and write submits occur 1 time per kernel tick (was 1 submit every 5 ticks before). This seems to have improved latency according to tests.
mali: platform rewrite

Samsung integrated checks on in the Pegasus platform that prevented the GPU control interfaces to work; on every decideNextStatus call the DVFS tables would be rewritten with separate fixed values. Module parameters for these values were present in the kernel so the hypothesis is that they were used for debugging during development.

-All checks are removed and the driver now looks very similar to the Orion platform.

-Removal of the CPU frequency lock to 1200MHz if the GPU is at 440MHz, this is excessive as 3D load heavy applications usually do not tax the CPU that far, and is an unnecessary power consumption burden.

-The thermal control unit temperature throttling causes to fix the voltage to a fixed value when throttling is in place; this is useless considering frequency is not limited, making the whole thing senseless. Thus removed.

-Cleaned up the files from unnecessary ifdef's for readability considering the fixed platform values.
Update to Samsung Update3 (LFB sources)
mms_ts.c: disable Touch Booster
Add hMDNIE tweaks - props to hardcore
tmu.c: add toggle to turn thermal throttle on/off
bcmdhd: Change packet filter settings to block multicast

A common complaint of users is that battery life on wifi
is very poor, with frequent wlan_rx_wake wakelocks.

It turns out Samsung "opened up" the packet filter
settings from Gingerbread to ICS.

This makes them match the tuna configuration, minus
the filter to allow mDNS through (which lets a bunch
of other stuff through too.)

The original patch reverted to Gingerbread settings,
but it seems like the filter definitions changed
from GB to ICS.

Change-Id: Ib56d50374d86733f9a2893b5a4afbcc6cd859a75
Signed-off-by: Andrew Dodd <atd7@cornell.edu>
Revert "cpufreq*.c: make the proper ajustments for 1,5Ghz step"

I don't want overclock anymore, it's pointless in this device.

This reverts commit ea5fbc44396d427ef78deb68a3e311b1f2204f1d.
mach-midas.c: increase USB mAh from 600 to 800
max77686.c: no more stupid dmesg debugging, bye bye.
busfreq_opp_4x12.c: decrease up_threshold from 30 to 20. I'm not sure how big is the impact on performance, but at least in theory it will jump bus OPP's with lesser load, which in my opinion makes sense.
cpufreq-4x12.c: since we're building for the international SGS3 there's no harm in removing the soc routine check - that's one step. Another step was to unify all the ASV versions into a single voltage table - in this case asv_voltage_s array. Much easier to tweak the voltages on my own likings instead of updating asv_voltage_step_12_5. This works just fine on my device, but might/can crash others (although I only did 25-50mV undervolt on all steps).
Revert "Add hMDNIE tweaks - props to hardcore"

This reverts commit b9deca82edebbc564c5a2bdfc6d6b02e7e8592e0.
Add hardcore's latest MDNIE tweaks - less color saturation on standard screen mode