libaudio-qsd8k: acquire wakelock before starting playback

This fixes issue 2410711.

Change-Id: I01161b3febc02914f2c7a9ed3c4c9ae121ce181a
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/libaudio-qsd8k/AudioHardware.cpp b/libaudio-qsd8k/AudioHardware.cpp
index e5108e7..db39d9e 100644
--- a/libaudio-qsd8k/AudioHardware.cpp
+++ b/libaudio-qsd8k/AudioHardware.cpp
@@ -1587,6 +1587,9 @@
 
     if (mStandby) {
 
+        LOGV("acquire output wakelock");
+        acquire_wake_lock(PARTIAL_WAKE_LOCK, kOutputWakelockStr);
+
         // open driver
         LOGV("open pcm_out driver");
         status = ::open("/dev/msm_pcm_out", O_RDWR);
@@ -1637,8 +1640,6 @@
             goto Error;
         }
 
-        LOGV("acquire output wakelock");
-        acquire_wake_lock(PARTIAL_WAKE_LOCK, kOutputWakelockStr);
         mStandby = false;
     }
 
@@ -1663,7 +1664,7 @@
     }
     // Simulate audio output timing in case of error
     usleep(bytes * 1000000 / frameSize() / sampleRate());
-
+    release_wake_lock(kOutputWakelockStr);
     return status;
 }