sched: add wait_for_completion_io[_timeout] - by Vladimir Davydov from anarkia1976/AK-xGenesis

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>

https://github.com/anarkia1976/AK-xGenesis/commit/fb85ee94f5a870bf2667b297f3c9aca7aeed27c7#diff-641541f9c37c8e531edb52b0000d97d2R3960
sound: Update faux sound to v3.5 - Thanks to faux123