cpufreq: cpuboost: Make cpu boost driver aware of LCD events

* We previously removed "placebo" wake boost from intelli
  hotplug driver and stated we may add same to MSM Limiter
  driver.
* However, we already have good boost driver in place.
  So we use same to apply CPU boost whenever screen is
  turned on!
* Tested and worked well.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
cpufreq: cpu-boost: Export wakeup_boost

* This is needed to unify boost functions in cpu boost
  and hotplug drivers.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>

Conflicts:
	drivers/cpufreq/cpu-boost.c
cpufreq: cpu-boost: Fix cores getting stuck. Finally.

* In exclusive hotplug system, if a core is not taken down
  explicitly, it is observed that it gets stuck at input
  boost frequency.
* This fix resolves this issue completely.
* Root cause seems to be removal work is lost if queued on
  sibling cores. So simply fix this by queuing on boot CPU.

* Finally, I can use min_cpus_online > 1 for hotplug drivers
  without any issue.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
msm: hotplug: Use wakeup_boost hint and other fixes

* In current scenario, we boost (turn all cores online)
  whenever LCD turns on. This is really not required when
  we have good hotplug mechanism in place. The mechanism
  should detect load and put appropriate cpus online.
* Boosting CPUs each time will increase battery consumption
  (maybe not so much but we should prevent this)
* So boost CPUs and apply downlock only in two cases viz.
  hotplug was suspended and user requested wakeup_boost
  via cpu-boost driver from userspace.
* Also, it is observed that suspend_defer_time is not
  working as required. It should suspend as soon as defer
  time is completed. Therefore, make use of separate freezable
  workqueue to do this smoothly.
* Organize sequence for initiating and cancelling work.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>