diff --git a/services/audioflinger/MelReporter.cpp b/services/audioflinger/MelReporter.cpp
index b185959..6c783ec 100644
--- a/services/audioflinger/MelReporter.cpp
+++ b/services/audioflinger/MelReporter.cpp
@@ -60,8 +60,6 @@
         return false;
     }
 
-    std::lock_guard _l(mLock);
-    mUseHalSoundDoseInterface = true;
     stopInternalMelComputation();
     return true;
 }
@@ -77,12 +75,6 @@
     }
 
     mSoundDoseManager->setHalSoundDoseInterface(nullptr);
-
-    for (const auto& activePatches : mActiveMelPatches) {
-        for (const auto& deviceId : activePatches.second.deviceHandles) {
-            startMelComputationForNewPatch(activePatches.second.streamHandle, deviceId);
-        }
-    }
 }
 
 void AudioFlinger::MelReporter::onFirstRef() {
@@ -205,16 +197,9 @@
 
 void AudioFlinger::MelReporter::stopInternalMelComputation() {
     ALOGV("%s", __func__);
-    std::unordered_map<audio_patch_handle_t, ActiveMelPatch> activePatchesCopy;
-    {
-        std::lock_guard _l(mLock);
-        activePatchesCopy = mActiveMelPatches;
-        mActiveMelPatches.clear();
-    }
-
-    for (const auto& activePatch : activePatchesCopy) {
-        stopInternalMelComputationForStream(activePatch.second.streamHandle);
-    }
+    std::lock_guard _l(mLock);
+    mActiveMelPatches.clear();
+    mUseHalSoundDoseInterface = true;
 }
 
 void AudioFlinger::MelReporter::stopInternalMelComputationForStream(audio_io_handle_t streamId) {
