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.

ayysir <dresadd09691@gmail.com>:
  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>
Signed-off-by: flar2 <asegaert@gmail.com>
USB fastcharge for Nexus 7 (2013)

Signed-off-by: flar2 <asegaert@gmail.com>
thermal: Merge my custom ghost_thermal driver

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
msm: msm_fb: Add parameter to dim lowest backlight level

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
Merge my build scripts

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
flo: Generate personal config

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
kernel: Replace timeconst.pl with a bc script

bc is the standard tool for multi-precision arithmetic.  We switched
to Perl because akpm reported a hard-to-reproduce build hang, which
was very odd because affected and unaffected machines were all running
the same version of GNU bc.

Unfortunately switching to Perl required a really ugly "canning"
mechanism to support Perl < 5.8 installations lacking the Math::BigInt
module.

It was recently pointed out to me that some very old versions of GNU
make had problems with pipes in subshells, which was indeed the
construct used in the Makefile rules in that version of the patch;
Perl didn't need it so switching to Perl fixed the problem for
unrelated reasons.  With the problem (hopefully) root-caused, we can
switch back to bc and do the arbitrary-precision arithmetic naturally.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>

Conflicts:
	kernel/Makefile
kernel/hz.bc: ignore.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Makefile: Modify for compilation

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
localversion: Rebranding

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
mmc: core: Expose software CRCs parameter to userspace

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
sync: Implement FSync control

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
flo: Boot with NOOP scheduler

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>