sched: add wait_for_completion_io[_timeout]

The only difference between wait_for_completion[_timeout]() and
wait_for_completion_io[_timeout]() is that the latter calls
io_schedule_timeout() instead of schedule_timeout() so that the caller
is accounted as waiting for IO, not just sleeping.

These functions can be used for correct iowait time accounting when the
completion struct is actually used for waiting for IO (e.g. completion
of a bio request in the block layer).

Modified to compile with 3.4.0 on the Nexus 4 (Mako)

Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
msm: cpufreq: Break out early if target frequency is the same as the current

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
msm_thermal: add the work to a dedicated WQ. We need the driver to be notified of temp changes as fast as possible, and during high system load the latency might be big and delay the response of the throttling.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
drivers: misc: Initial support for touchwake

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: Possible fix touchwake reboot issue

Call touch_press in work_func instead of input_report

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
touchwake: Fix checkpatch warnings

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
touch_wake: Remove unused code

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
touchwake: Introduce LED trigger

It may be used when touchwake is enabled during the wakelock.

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>