Implement kexec-hardboot "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>

Signed-off-by: Paul Reioux <reioux@gmail.com>

Conflicts:
	arch/arm/boot/compressed/head.S
kexec: use mem_text_write_kernel_word to set reboot_code_buffer args

* In order to avoid protection faults (writes to read-only
  kernel memory) when CONFIG_STRICT_MEMORY_RWX is enabled.

Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
Add kexec-hardboot changes for mako

Signed-off-by: Paul Reioux <reioux@gmail.com>
Enable kexec-hardboot
msm: display: mipi_lgit: Userspace display gamma control

Originally written by Paul Reioux (faux123)

Modified from his original implementation as follows:
* Remove kgamma_ctrl sysfs entry - it did absolutely nothing
* Alter the show() functions to output the checksum in the
first entry, in order to match the expected input of
the store() functions.  This should not break existing
applications
* Move store/show code to a common function
* Add limit checks from Mike Cain (motley)
* Added a kgamma_apply sysfs entry which will apply
  the current state when anything is stored to it,
  instead of waiting until the next time the LCD
  is power cycled

Change-Id: I8835e42709cefa547e02e28a7e5a381d88282700
LCD_KCAL: Prevent out-of-range input values
LCD_KCAL: Introduce configurable kcal_min

Lower values such as 0-10 ultimately create a dark, washed out display, if a user accidently sets their kcal values to "0 0 0" they will loose visual control of the device, potentially requiring a hard reboot.
Introduce minimum kcal values to prevent this behavior.

Willing users can disable this protection by setting the kcal_min value to '0', however the default value of 35 is recommended.

sysfs:
echo "1/255" > /sys/devices/platform/kcal_ctrl.0/kcal_min

kcal_min will detect and block values attempting to set lower than itself, resetting the specific values to that of kcal_min. There is also behavior to adjust the kcal if kcal_min is set to a level higher than that of any kcal value(s).
defconfig: Add KEXEC and ATAGS_PROC