cpu 토폴로지 & cpu 파워 추가
policy 변경에 의한 cpufreq 버그 수정
XZ 압축 빠진 부분 추가 & 트윅
XZ 압축
AIO plug 제거 (34% improvement in the I/O latency)
Prevent Superbrick bug (Remove MMC_CAP_ERASE from mshci.c) thx kgp700
 RWSEM_XCHGADD_ALGORITHM for ARM (R/W semaphores implemented using ARM…

… atomic functions) by CodeAurora
SLUB 트윅
 timer: hrtimer: Don't check idle_cpu() before calling get_nohz_timer_…

…target()

Check for current cpu's idleness is already done in implementation of
sched_select_non_idle_cpu() which is called by get_nohz_timer_target(). So, no
need to call idle_cpu() twice, once from sched_select_non_idle_cpu() and once
from timer and hrtimer before calling get_nohz_timer_target().

This patch removes calls to idle_cpu() from timer and hrtimer.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Seongmin Park <r_data@naver.com>
 drivers: mmc: disable CRC

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Signed-off-by: Seongmin Park <r_data@naver.com>
 Dynamically adjust cpufreq_max_limit according to scaling_max setting…

… without breaking power save mode thx yank555-lu
Dynamically adjust cpufreq_max_limit Merge 오류 수정
Cpufreq 수정 thx arighi
sched: Create sched_select_non_idle_cpu() to give preferred CPU for power saving

In order to save power, it would be useful to schedule light weight work on cpus
that aren't IDLE instead of waking up an IDLE one.

By idle cpu (from scheduler's perspective) we mean:
- Current task is idle task
- nr_running == 0
- wake_list is empty

This is already implemented for timers as get_nohz_timer_target(). We can figure
out few more users of this feature, like workqueues.

This patch converts get_nohz_timer_target() into a generic API
sched_select_non_idle_cpu() so that other frameworks (like workqueue) can also
use it.

This routine returns the cpu which is non-idle. If the local CPU isn't idle OR
all cpus are idle, local cpu is returned back. If local cpu is idle, then we
must look for another CPU which isn't idle.

This patch reuses the code from get_nohz_timer_target() routine, which had
similar implementation.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Seongmin Park <r_data@naver.com>
ARM: disable preemption in machine_shutdown

Since the smp call to stop the other cpus are handled in those
cpus in interrupt context, there's a potential for those smp
handlers to interrupt threads holding spin locks (such as the
one a mutex holds).  This prevents those threads from ever
releasing their spin lock, so if the cpu doing the shutdown
is allowed to switch to another thread that tries to grab the
same lock/mutex, we could get into a deadlock (the spin lock
call is called with preemption disabled in the mutex lock code).

To avoid that possibility, disable preemption before doing the
smp_send_stop().

Change-Id: I7976c5382d7173fcb3cd14da8cc5083d442b2544
Signed-off-by: Mike J. Chen <mjchen@google.com>
sched: don't call task_group() many times in set_task_rq()

It improves perfomance, especially if autogroup enabled.

The size of set_task_rq() was 0x180 and now it is 0xa0.

Signed-off-by: Andrew Vagin <avagin@openvz.org>
 [PATCH] sched: Fix loadavg calculations (patch by AndreiLux: https://…

…gist.github.com/AndreiLux/5411832)

This includes the alteration of the load calculation frequency
by Klaus Ripke <klaus@ripke.com> 'LOAD_FREQ (4*HZ+61) avoids loadavg Moire'
http://ripke.com/loadavg/moire

But correctly alters the timings for 200 HZ devices as in the mobile
space, the original patch is meant for 100 HZ kernels on x86 and other archs.

Furthermore, the exponential constants are completely wrong for the same
reason, they were caluclated and hardcoded for 100 HZ.

From https://lkml.org/lkml/2013/2/1/93 , the exponential math is taken
to fully expand the macro behind those values and to be truly HZ independent.

The 64bit-ness of the above patch is avoided for our ARM purposes.

Change-Id: If2b3479dd26f9666cfcb837488234a9b43fdb6c9
Revert ' [PATCH] sched: Fix loadavg calculations (patch by AndreiLux: https://…

…gist.github.com/AndreiLux/5411832)'
sdhci: Remove Samsung's broken hack

To avoid a divide-by-zero, Samsung returns a 0 if
host->clock is not set.

This is bad - the timeout will (of course) now be
as short as possible.

Mainline does it differently - It uses a base
timeout value regardless of whether host->clock
exists, then adds that value if it exists.

Signed-off-by: Andrew Dodd <atd7@cornell.edu>

thx to Entropy512
 mms_ts: introduce TouchBoost control

thanks to @franciscofranco for the implementation (all credits to him)

i have modded it to be config dependent (CONFIG_TOUCHBOOST_CONTROL), and also
to work with my touchboost mods, which make it working the best way.