summaryrefslogtreecommitdiffstats
path: root/services/soundtrigger
diff options
context:
space:
mode:
Diffstat (limited to 'services/soundtrigger')
-rw-r--r--services/soundtrigger/SoundTriggerHwService.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/services/soundtrigger/SoundTriggerHwService.cpp b/services/soundtrigger/SoundTriggerHwService.cpp
index f09e79e..fa59388 100644
--- a/services/soundtrigger/SoundTriggerHwService.cpp
+++ b/services/soundtrigger/SoundTriggerHwService.cpp
@@ -367,8 +367,12 @@ status_t SoundTriggerHwService::Module::unloadSoundModel(sound_model_handle_t ha
if (index < 0) {
return BAD_VALUE;
}
+ sp<Model> model = mModels.valueAt(index);
mModels.removeItem(handle);
-
+ if (model->mState == Model::STATE_ACTIVE) {
+ mHwDevice->stop_recognition(mHwDevice, model->mHandle);
+ model->deallocateMemory();
+ }
return mHwDevice->unload_sound_model(mHwDevice, handle);
}