msm: hotplug: Rewrite suspend-resume

* Use power-suspend instead of LCD notifier, power-suspend being
  less aggressive comparatively.
* When suspended, flush workqueue and put all sibling cores to rest.
  (yin-yan is complete as resume fires up all cores for downlock
   duration.)
* This should help to save little more battery.
* Additionally, it will help to save power and generate less heat
  when min_cpus_online > 1.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
msm: hotplug: Deallocate resources when disabled

* Based on @Dorimanx and @Alucard24 idea.
* Move resource allocation to new function msm_hotplug_start()
* Create resource deallocation counterpart msm_hotplug_stop()
* Reclaim memory when msm hotplug is disabled.
* Rectify store_history_size() to reschedule only when enabled.
* Rename suspend/resume helpers to match new start/stop helpers.
* Fire up all CPUs when msm_hotplug_start() is invoked.
  This should help for speedier boot process.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
msm: hotplug: fixed history_size modifications

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
intelli_plug: Simplify touch boost

* This change is under test.
* Drop boost workqueue.
* Move boost functionality to input_event, makes sense.
* Initialize and terminate mutex properly.
* Add minimum interval to prevent recurring boost.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
msm: hotplug: Initialize and terminate mutex properly

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
msm: rq_stats: Disable hotplug and stats by default

Userspace closed source mpdecision binary is nessecary for PowerHAL to work.
As it depends on rq_stats, let's at least disable hotplugging and stats
collection by default. /sys/devices/system/cpu/cpu0/rq-stats/hotplug_disable
is now writable, so hotplug can be reenabled.

Also, add some bits related to current cpu policy.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
defconfig: Disable alucard hotplug

* Until we review and optimize it like others.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
mmc: core: continue to wait, when unblocked by signal

Mmc thread is waiting for one of following events occurs:
- current running request completion (is_done_rcv)
- new request notification arrived (is_new_req)
- urgent request notification arrived (is_urgent)
or the thread received a signal. In this case none of described events
happened.

This change process the case, when mmc thread was unblocked from wait by
signal, for example system shutdown flow.

Signed-off-by: Konstantin Dorfman <kdorfman@codeaurora.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>