OMAP4: EMIF: Add processing of memory overheating.

We need to turn the device off if memory is overheated.
This patch makes shutdown device if memory overheated in run-time
and makes reboot if memory overheated during booting.
In last case bootloader should process overheating

Change-Id: I28a0bfcd79a4018a628ffc099e3715b17b7034c1
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Added Temp Control version 1.

Conflicts:
	drivers/misc/Kconfig
	drivers/misc/Makefile
	drivers/misc/omap_temp_sensor.c
sched: smart wake-affine foundation

wake-affine stuff is always trying to pull wakee close to waker, by theory,
this will bring benefit if waker's cpu cached hot data for wakee, or the
extreme ping-pong case.

And testing show it could benefit hackbench 15% at most.

However, the whole stuff is somewhat blindly and time-consuming, some
workload therefore suffer.

And testing show it could damage pgbench 50% at most.

Thus, wake-affine stuff should be more smart, and realise when to stop
it's thankless effort.

This patch introduced 'nr_wakee_switch', which will be increased each
time the task switch it's wakee.

So a high 'nr_wakee_switch' means the task has more than one wakee, and
bigger the number, higher the wakeup frequency.

Now when making the decision on whether to pull or not, pay attention on
the wakee with a high 'nr_wakee_switch', pull such task may benefit wakee,
but also imply that waker will face cruel competition later, it could be
very cruel or very fast depends on the story behind 'nr_wakee_switch',
whatever, waker therefore suffer.

Furthermore, if waker also has a high 'nr_wakee_switch', imply that multiple
tasks rely on it, then waker's higher latency will damage all of them, pull
wakee seems to be a bad deal.

Thus, when 'waker->nr_wakee_switch / wakee->nr_wakee_switch' become higher
and higher, the deal seems to be worse and worse.

The patch therefore help wake-affine stuff to stop it's work when:

	wakee->nr_wakee_switch > factor &&
	waker->nr_wakee_switch > (factor * wakee->nr_wakee_switch)
The factor here is the node-size of current-cpu, so bigger node will lead
to more pull since the trial become more severe.

After applied the patch, pgbench show 40% improvement at most.

Test:
	Tested with 12 cpu X86 server and tip 3.10.0-rc7.

	pgbench		    base	smart

	| db_size | clients |  tps  |	|  tps  |
	+---------+---------+-------+   +-------+
	| 22 MB   |       1 | 10598 |   | 10796 |
	| 22 MB   |       2 | 21257 |   | 21336 |
	| 22 MB   |       4 | 41386 |   | 41622 |
	| 22 MB   |       8 | 51253 |   | 57932 |
	| 22 MB   |      12 | 48570 |   | 54000 |
	| 22 MB   |      16 | 46748 |   | 55982 | +19.75%
	| 22 MB   |      24 | 44346 |   | 55847 | +25.93%
	| 22 MB   |      32 | 43460 |   | 54614 | +25.66%
	| 7484 MB |       1 |  8951 |   |  9193 |
	| 7484 MB |       2 | 19233 |   | 19240 |
	| 7484 MB |       4 | 37239 |   | 37302 |
	| 7484 MB |       8 | 46087 |   | 50018 |
	| 7484 MB |      12 | 42054 |   | 48763 |
	| 7484 MB |      16 | 40765 |   | 51633 | +26.66%
	| 7484 MB |      24 | 37651 |   | 52377 | +39.11%
	| 7484 MB |      32 | 37056 |   | 51108 | +37.92%
	| 15 GB   |       1 |  8845 |   |  9104 |
	| 15 GB   |       2 | 19094 |   | 19162 |
	| 15 GB   |       4 | 36979 |   | 36983 |
	| 15 GB   |       8 | 46087 |   | 49977 |
	| 15 GB   |      12 | 41901 |   | 48591 |
	| 15 GB   |      16 | 40147 |   | 50651 | +26.16%
	| 15 GB   |      24 | 37250 |   | 52365 | +40.58%
	| 15 GB   |      32 | 36470 |   | 50015 | +37.14%
CC: Ingo Molnar <mingo@kernel.org>
CC: Peter Zijlstra <peterz@infradead.org>
CC: Mike Galbraith <efault@gmx.de>
Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
sched: reduce the overhead of obtain factor

Smart wake-affine is using node-size as the factor, but the overhead of
mask operation is high.

Thus, this patch introduce the 'sd_llc_size', which will record the highest
cache-share domain size, and make it to be the new factor, in order to
reduce the overhead and make more reasonable.

And we suppose it will benefit a lot when facing a huge platform.

Test:
	Tested with 12 cpu X86 server and tip 3.10.0-rc7.

	pgbench		    base	smart + optimization

	| db_size | clients |  tps  |	|  tps  |
	+---------+---------+-------+   +-------+
	| 22 MB   |       1 | 10598 |   | 10781 |
	| 22 MB   |       2 | 21257 |   | 21328 |
	| 22 MB   |       4 | 41386 |   | 41622 |
	| 22 MB   |       8 | 51253 |   | 60351 |
	| 22 MB   |      12 | 48570 |   | 54255 |
	| 22 MB   |      16 | 46748 |   | 55534 | +18.79%
	| 22 MB   |      24 | 44346 |   | 55976 | +26.23%
	| 22 MB   |      32 | 43460 |   | 55279 | +27.20%
	| 7484 MB |       1 |  8951 |   |  9054 |
	| 7484 MB |       2 | 19233 |   | 19252 |
	| 7484 MB |       4 | 37239 |   | 37354 |
	| 7484 MB |       8 | 46087 |   | 51218 |
	| 7484 MB |      12 | 42054 |   | 49510 |
	| 7484 MB |      16 | 40765 |   | 52151 | +27.93%
	| 7484 MB |      24 | 37651 |   | 52720 | +40.02%
	| 7484 MB |      32 | 37056 |   | 51094 | +37.88%
	| 15 GB   |       1 |  8845 |   |  9139 |
	| 15 GB   |       2 | 19094 |   | 19379 |
	| 15 GB   |       4 | 36979 |   | 37077 |
	| 15 GB   |       8 | 46087 |   | 50490 |
	| 15 GB   |      12 | 41901 |   | 48235 |
	| 15 GB   |      16 | 40147 |   | 51878 | +29.22%
	| 15 GB   |      24 | 37250 |   | 52676 | +41.41%
	| 15 GB   |      32 | 36470 |   | 50198 | +37.64%
CC: Ingo Molnar <mingo@kernel.org>
CC: Peter Zijlstra <peterz@infradead.org>
CC: Mike Galbraith <efault@gmx.de>
Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
reduce latency
tune sched features
nohz: Remove "Switched to NOHz mode" debugging messages

When performing cpu hotplug tests the kernel printk log buffer gets flooded
with pointless "Switched to NOHz mode..." messages. Especially when afterwards
analyzing a dump this might have removed more interesting stuff out of the
buffer.
Assuming that switching to NOHz mode simply works just remove the printk.

Change-Id: I1746f8c0119a512055716c3fd77a966b735ca49b
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Link: http://lkml.kernel.org/r/20110823112046.GB2540@osiris.boeblingen.de.ibm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jeff Ohlstein <johlstei@codeaurora.org>
random: backport updates from Linux master (3.13-rc4)
lib, net: make isodigit() public and use itAndy Shevchenko
random: add debugging code to detect early use of get_random_bytes()Theodore Ts'o
random: initialize the last_time field in struct timer_rand_stateTheodore Ts'o
random: don't zap entropy count in rand_initialize()Theodore Ts'o
random: printk notifications for urandom pool initializationTheodore Ts'o
random: make add_timer_randomness() fill the nonblocking pool firstTheodore Ts'o
random: convert DEBUG_ENT to tracepointsTheodore Ts'o
random: push extra entropy to the output poolsTheodore Ts'o
random: drop trickle modeTheodore Ts'o
random: adjust the generator polynomials in the mixing function slightlyTheodore Ts'o
random: speed up the fast_mix function by a factor of fourTheodore Ts'o
random: cap the rate which the /dev/urandom pool gets reseededTheodore Ts'o
random: optimize the entropy_store structureTheodore Ts'o
random: optimize spinlock use in add_device_randomness()Theodore Ts'o
random: fix the tracepoint for get_random_bytes(_arch)Theodore Ts'o
random: account for entropy loss due to overwritesH. Peter Anvin
random: allow fractional bits to be trackedH. Peter Anvin
random: statically compute poolbitshift, poolbytes, poolbitsH. Peter Anvin
random: mix in architectural randomness earlier in extract_buf()Theodore Ts'o
random: allow architectures to optionally define random_get_entropy()Theodore Ts'o
random: run random_int_secret_init() run after all late_initcallsTheodore Ts'o
char: Convert use of typedef ctl_table to struct ctl_tableJoe Perches1
random: fix accounting race condition with lockless irq entropy_count updateJiri Kosina
drivers/char/random.c: fix priming of last_dataJarod Wilson
lib/string_helpers: introduce generic string_unescapeAndy Shevchenko
random: fix locking dependency with the tasklist_lockTheodore Ts'o
locking: Various static lock initializer fixesThomas Gleixner
random: prime last_data value per fips requirementsJarod Wilson
random: fix debug format stringsJiri Kosina
random: make it possible to enable debugging without rebuildJiri Kosina
random: mix in architectural randomness in extract_buf()H. Peter Anvin
random: Add comment to random_initialize()Tony Luck
random: add tracepoints for easier debugging and verificationTheodore Ts'o

Conflicts:
	drivers/char/random.c
	include/linux/ctype.h
	include/trace/events/random.h
	lib/Makefile

Conflicts:
	drivers/char/random.c
	include/linux/ctype.h
	include/trace/events/random.h
	lib/Makefile
block: ROW: Correct minimum values of ROW tunable parameters

The ROW scheduling algorithm exposes several tunable parameters.
This patch updates the minimum allowed values for those parameters.

Change-Id: I5ec19d54b694e2e83ad5376bd99cc91f084967f5
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>

Conflicts:
	block/row-iosched.c

Conflicts:
	block/row-iosched.c
update row
block:row: fix idling mechanism in ROW

This patch addresses the following issues found in the ROW idling
mechanism:
1. Fix the delay passed to queue_delayed_work (pass actual delay
   and not the time when to start the work)
2. Change the idle time and the idling-trigger frequency to be
   HZ dependent (instead of using msec_to_jiffies())
3. Destroy idle_workqueue() in queue_exit

Change-Id: If86513ad6b4be44fb7a860f29bd2127197d8d5bf
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>

Conflicts:
	block/row-iosched.c
row: Adding support for reinsert already dispatched req

Add support for reinserting already dispatched request back to the
schedulers internal data structures.
The request will be reinserted back to the queue (head) it was
dispatched from as if it was never dispatched.

Change-Id: I70954df300774409c25b5821465fb3aa33d8feb5
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>

Conflicts:
	block/row-iosched.c
update ROW
update ROW to upstream 3.4

Conflicts:
	block/row-iosched.c
random-hw: add randomness to system from rng sources (faux123)
ARM: L1 cache optimization
fastchg: change fast charge to override the high current GPIO, not the USB cable mode

Conflicts:
	arch/arm/mach-omap2/board-tuna-connector.c

Conflicts:
	arch/arm/mach-omap2/board-tuna-connector.c
fastchg: Only enable fast charge GPIO as long as we actually have some charging to do.
OTG Host Mode On Charge: Version 3 - Thanks Caioketo

- Auto detects if its a charger in the OTG cable,
  if it is, charges, if it isnt, uses default OTG

https://github.com/caioketo/journeymanmod/
  commit/56c8eb7ba0b72dcb1a85982cb8bc8442c2ce2e33

Conflicts:
	arch/arm/mach-omap2/board-tuna-connector.c
fastchg: Remove vestigial fsa9480 "force AC" switch.

Conflicts:
	drivers/misc/fsa9480.c

Conflicts:
	drivers/misc/fsa9480.c