Merge Kexec Hardboot (Multy Kernel Boot code) Thanks to @PatrikKT

This is backported and modded from HTC for LG G2.

https://gist.github.com/PatrikKT/50faf32e8931d51c0c9a
Allow to use KEXEC address for all LG G2 Models.

http://forum.xda-developers.com/showpost.php?p=55340408&postcount=46
kthread_work: wake up worker only when the worker is idle

If the worker is already executing a work item when another is queued,
we can safely skip wakeup without worrying about stalling queue thus
avoiding waking up the busy worker spuriously.  Spurious wakeups
should be fine but still isn't nice and avoiding it is trivial here.

tj: Updated description.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Reduced i2c clock rate to 19.2 MHz

* Referenced CAF:
  https://www.codeaurora.org/cgit/quic/la/kernel/msm/commit/arch/arm/boot/dts/msm8974.dtsi?h=kk_3.5&id=2762366bdeb1d2d3bb43ffb21ad3a0908d51551e

Thanks @neobuddy89 for TIP :)
Revert "Allow to use KEXEC address for all LG G2 Models."

This reverts commit fd06269c4b17d570f7976d0d5f57c803e88767e9.
Allow to use KEXEC address for all LG G2 Models. fixed.

http://forum.xda-developers.com/showpost.php?p=55340408&postcount=46