Implement kexec-hardboot (tilak)

"Allows hard booting (i.e., with a full hardware reboot) to a kernel
previously loaded in memory by kexec.  This works around the problem of
soft-booted kernel hangs due to improper device shutdown and/or
reinitialization."
More info in /arch/arm/Kconfig.

Original author: Mike Kasick <mike@kasick.org>

Vojtech Bocek <vbocek@gmail.com>:
  I've ported it to flo, it is based of my grouper port, which is based of
  Asus TF201 patches ported by Jens Andersen <jens.andersen@gmail.com>.

  I've moved atags copying from guest to the host kernel, which means there
  is no need to patch the guest kernel, assuming the --mem-min in kexec call
  is within the first 256MB of System RAM, otherwise it will take a long time
  to load. I've also fixed /proc/atags entry, which would give the kexec-tools
  userspace binary only the first 1024 bytes of atags,
  see arch/arm/kernel/atags.c for more details.

  Other than that, memory-reservation code for the hardboot page and
  some assembler to do the watchdog reset on MSM chip are new for this device.

Signed-off-by: Vojtech Bocek <vbocek@gmail.com>

Conflicts:
	arch/arm/boot/compressed/head.S
	arch/arm/configs/flo_defconfig
	arch/arm/kernel/machine_kexec.c
	arch/arm/mach-msm/asustek/devices_asustek.c
	arch/arm/mach-msm/include/mach/memory.h
	arch/arm/mach-msm/restart.c
[PATCH] nohz: Fix update_ts_time_stat idle accounting (ZaneZam)

update_ts_time_stat currently updates idle time even if we are in
iowait loop at the moment. The only real users of the idle counter
(via get_cpu_idle_time_us) are CPU governors and they expect to get
cumulative time for both idle and iowait times.
The value (idle_sleeptime) is also printed to userspace by print_cpu
but it prints both idle and iowait times so the idle part is misleading.

Let's clean this up and fix update_ts_time_stat to account both counters
properly and update consumers of idle to consider iowait time as well.
If we do this we might use get_cpu_{idle,iowait}_time_us from other
contexts as well and we will get expected values.
ZZmoove Version 1.0 beta1

Changelog:

- bump version to 1.0 beta1 because of brought forward plan 'outbreak'
- reworked scaling logic:
  removed unessesary calls of external cpufreq function and use a static variable instead to hold the system freq table during runtime
  fixed frequency stuck on max hard and soft frequency limit (under some circumstances freq was out of scope for the main search loop)
  and added precautions to avoid problems when for what ever reason the freq table is 'messed' or even not available for the governor
  fixed not properly working scaling with descend ordered frequency table like it is for example on qualcomm platform
  added additional propotional scaling mode (mode '1' as usual decide and use the lowest freq, new mode '2' use only propotional
  frequencies like ondemand governor does - switchable as before in 'scaling_proportional' tuneable)
- use static frequency table variable in all frequency checks agains system frequency table in the governor
- fixed 'update_ts_time_stat idle accounting' (kernel patch for kernel version 3.0.x needed, example available in github zzmoove repository)
- fixed non setting of scaling down threshold tuneables under some circumstances (issue on kernel 3.4 when running multible zzmoove instances)
- changed some variable names in scaling range evaluation and debugging tuneable
- added compatibility for kernel version 3.4 (or higher, but only tested on 3.4.0 yet)
- added compatibility for cpufreq implementation used since kernel version 3.10 (NOTE: for backports u can use the macro CPU_IDLE_TIME_IN_CPUFREQ)
- added support for powersuspend (used on some platforms since kernel version 3.4)
- added support for opo specific 'backlight ext control' (kernel patch for opo bacon devices needed, example available in github zzmoove repository)
- added macros to exclude hotplugging functionality (default in this version is enabled=uncommented)

profile header file (Version 0.3 beta1)

- bump version to 0.3 beta1 because of brought forward plan 'outbreak'
- removed dynamic freq scaling tuneable leftovers
- added macros to switch code depending of used power management implementation
  or used supend/resume backlight hook (opo specific)
- added macros to be able to disable hotplugging
silence annoying kmsgs during core changes
Revert "ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp"

This reverts commit 6cb0233cda21a7d6c233ae8ad0656fd4079a77d9.
misc changes (fs, kernel, net, uaccess) ggy"
Revert "readded wakelock: instead of directly going to suspend_mem, use the new suspend_freeze"

This reverts commit f09fe08a049953111d684d251ec4cf3052a87de6.
Revert "PM: Introduce suspend state PM_SUSPEND_FREEZE"

This reverts commit f28d5cc67d68731a1b5680b6659df6366c7a7469.
Update LTE and non-LTE modems from SAMSUNG OSRC I9305 EUR KK Update
Implement USB HID Keyboard/Mouse ROLE support for Android device
https://github.com/pelya/android-keyboard-gadget

needs supported APK from :
https://raw.githubusercontent.com/pelya/android-keyboard-gadget/master/USB-Keyboard.apk
Add v2.9.0 configs