diff --git a/services/audioflinger/FastMixer.cpp b/services/audioflinger/FastMixer.cpp
index 3c8a256..2160ea3 100644
--- a/services/audioflinger/FastMixer.cpp
+++ b/services/audioflinger/FastMixer.cpp
@@ -425,11 +425,11 @@
             //       but this code should be modified to handle both non-blocking and blocking sinks
             dumpState->mWriteSequence++;
 #if defined(ATRACE_TAG) && (ATRACE_TAG != ATRACE_TAG_NEVER)
-            Tracer::traceBegin(ATRACE_TAG, "write");
+            ATRACE_BEGIN("write");
 #endif
             ssize_t framesWritten = outputSink->write(mixBuffer, frameCount);
 #if defined(ATRACE_TAG) && (ATRACE_TAG != ATRACE_TAG_NEVER)
-            Tracer::traceEnd(ATRACE_TAG);
+            ATRACE_END();
 #endif
             dumpState->mWriteSequence++;
             if (framesWritten >= 0) {
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 1ceb850..6cada0a 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -1653,7 +1653,7 @@
 #define mBitShift 2 // FIXME
         size_t count = mixBufferSize >> mBitShift;
 #if defined(ATRACE_TAG) && (ATRACE_TAG != ATRACE_TAG_NEVER)
-        Tracer::traceBegin(ATRACE_TAG, "write");
+        ATRACE_BEGIN("write");
 #endif
         // update the setpoint when AudioFlinger::mScreenState changes
         uint32_t screenState = AudioFlinger::mScreenState;
@@ -1667,7 +1667,7 @@
         }
         ssize_t framesWritten = mNormalSink->write(mMixBuffer, count);
 #if defined(ATRACE_TAG) && (ATRACE_TAG != ATRACE_TAG_NEVER)
-        Tracer::traceEnd(ATRACE_TAG);
+        ATRACE_END();
 #endif
         if (framesWritten > 0) {
             bytesWritten = framesWritten << mBitShift;
