Workaround AudioRecord bug for large buffer sizes

Bug: 9556436
Change-Id: I92d1238b623d2cfd648e0a684d0e710fb0bd8b43
diff --git a/media/libmedia/AudioTrackShared.cpp b/media/libmedia/AudioTrackShared.cpp
index 4b7f368..5f8f292 100644
--- a/media/libmedia/AudioTrackShared.cpp
+++ b/media/libmedia/AudioTrackShared.cpp
@@ -482,7 +482,8 @@
     } else if (minimum > half) {
         minimum = half;
     }
-    if (!mDeferWake && mAvailToClient + stepCount >= minimum) {
+    // FIXME AudioRecord wakeup needs to be optimized; it currently wakes up client every time
+    if (!mIsOut || (!mDeferWake && mAvailToClient + stepCount >= minimum)) {
         ALOGV("mAvailToClient=%u stepCount=%u minimum=%u", mAvailToClient, stepCount, minimum);
         int32_t old = android_atomic_or(CBLK_FUTEX_WAKE, &cblk->mFutex);
         if (!(old & CBLK_FUTEX_WAKE)) {