summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRios Kao <rioskao@google.com>2019-07-31 20:43:56 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-07-31 20:43:56 -0700
commit3462a14da1d833d135a14da08823a6d824267c61 (patch)
tree0ccc926a2c64e3b36050c1ea22971d0e79470c9f
parent24f6d8e18f3663a86c11b81c77b1c93d5a010bf1 (diff)
parent97f14122298e02cbce28c4cdabd9f1d613ed9113 (diff)
downloadandroid_hardware_knowles_athletico_sound_trigger_hal-3462a14da1d833d135a14da08823a6d824267c61.tar.gz
android_hardware_knowles_athletico_sound_trigger_hal-3462a14da1d833d135a14da08823a6d824267c61.tar.bz2
android_hardware_knowles_athletico_sound_trigger_hal-3462a14da1d833d135a14da08823a6d824267c61.zip
sthal: buffer ref count incorrect cause routing unbalance
am: 97f1412229 Change-Id: I186628297d2f6c42decd6f4abe0b16719d950326
-rw-r--r--sound_trigger_hw_iaxxx.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sound_trigger_hw_iaxxx.c b/sound_trigger_hw_iaxxx.c
index 1d322a2..2f12383 100644
--- a/sound_trigger_hw_iaxxx.c
+++ b/sound_trigger_hw_iaxxx.c
@@ -819,6 +819,7 @@ static int setup_buffer(struct knowles_sound_trigger_device *stdev,
err = setup_howord_buffer(stdev->odsp_hdl);
if (err != 0) {
+ stdev->hotword_buffer_enable--;
ALOGE("Failed to create the buffer plugin");
goto exit;
}
@@ -831,6 +832,7 @@ static int setup_buffer(struct knowles_sound_trigger_device *stdev,
err = setup_music_buffer(stdev->odsp_hdl);
if (err != 0) {
+ stdev->music_buffer_enable--;
ALOGE("Failed to load music buffer package");
goto exit;
}
@@ -838,7 +840,10 @@ static int setup_buffer(struct knowles_sound_trigger_device *stdev,
} else {
if ((check_uuid_equality(model->uuid, stdev->hotword_model_uuid))
|| (check_uuid_equality(model->uuid, stdev->wakeup_model_uuid))) {
-
+ if (stdev->hotword_buffer_enable == 0) {
+ ALOGW("Invalid call for setup buffer");
+ goto exit;
+ }
stdev->hotword_buffer_enable--;
if (stdev->hotword_buffer_enable != 0)
goto exit;
@@ -852,7 +857,10 @@ static int setup_buffer(struct knowles_sound_trigger_device *stdev,
} else if ((check_uuid_equality(model->uuid, stdev->ambient_model_uuid))
|| (check_uuid_equality(model->uuid, stdev->entity_model_uuid))) {
-
+ if (stdev->music_buffer_enable == 0) {
+ ALOGW("Invalid call for setup buffer");
+ goto exit;
+ }
stdev->music_buffer_enable--;
if (stdev->music_buffer_enable != 0)
goto exit;