Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0063fec authored by Sridhar Vashist's avatar Sridhar Vashist Committed by Chris Elliott
Browse files

DO NOT MERGE audioflinger: dont release wakelock during offload drain sequence



workaround to avoid lost offload audio buffers during a compress_drain
when a wakelock is not held.
reference internal commit# 078538cf

Change-Id: I91fe76f985dfb619610f92f946022184564598cb
Signed-off-by: default avatarSridhar Vashist <svashist@motorola.com>
parent 9cc01515
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -2467,13 +2467,23 @@ bool AudioFlinger::PlaybackThread::threadLoop()
                if (exitPending()) {
                    break;
                }
                bool released = false;
                // The following works around a bug in the offload driver. Ideally we would release
                // the wake lock every time, but that causes the last offload buffer(s) to be
                // dropped while the device is on battery, so we need to hold a wake lock during
                // the drain phase.
                if (mBytesRemaining && !(mDrainSequence & 1)) {
                    releaseWakeLock_l();
                    released = true;
                }
                mWakeLockUids.clear();
                mActiveTracksGeneration++;
                ALOGV("wait async completion");
                mWaitWorkCV.wait(mLock);
                ALOGV("async completion/wake");
                if (released) {
                    acquireWakeLock_l();
                }
                standbyTime = systemTime() + standbyDelay;
                sleepTime = 0;