Merge "sthal: incorrect order of microphone SRC plugin" into qt-r1-dev
am: 03ff3215a9
Change-Id: I71d265bee3ad0a2dfea1fb7bee74d1eb76fc6552
diff --git a/sound_trigger_hw_iaxxx.c b/sound_trigger_hw_iaxxx.c
index 9247f00..1d322a2 100644
--- a/sound_trigger_hw_iaxxx.c
+++ b/sound_trigger_hw_iaxxx.c
@@ -1559,9 +1559,27 @@
/*
* Reset mic and src package if sound trigger recording is active
- * If sound trigger recording isn't active, then we don't need to
- * recover src package.
+ * The src-mic, src-amp must be enable before AEC enable, because
+ * the endpoint sequence control.
+ *
+ * The stream 0 should be enable at last moment for the data alignment.
*/
+ if (stdev->is_mic_route_enabled == true) {
+ // recover src package if sound trigger recording is active
+ err = setup_src_plugin(stdev->odsp_hdl, SRC_MIC);
+ if (err != 0) {
+ ALOGE("failed to load SRC package");
+ }
+ err = enable_src_route(stdev->route_hdl, false, SRC_MIC);
+ if (err != 0) {
+ ALOGE("Failed to tear SRC-mic route");
+ }
+ err = enable_src_route(stdev->route_hdl, true, SRC_MIC);
+ if (err != 0) {
+ ALOGE("Failed to restart SRC-mic route");
+ }
+ }
+
if (stdev->is_music_playing == true &&
stdev->is_bargein_route_enabled == true) {
if (is_mic_controlled_by_audhal(stdev) == true) {
@@ -1603,20 +1621,6 @@
}
if (stdev->is_mic_route_enabled == true) {
- // recover src package if sound trigger recording is active
- err = setup_src_plugin(stdev->odsp_hdl, SRC_MIC);
- if (err != 0) {
- ALOGE("failed to load SRC package");
- }
- err = enable_src_route(stdev->route_hdl, false, SRC_MIC);
- if (err != 0) {
- ALOGE("Failed to tear SRC-mic route");
- }
- err = enable_src_route(stdev->route_hdl, true, SRC_MIC);
- if (err != 0) {
- ALOGE("Failed to restart SRC-mic route");
- }
-
if (is_mic_controlled_by_audhal(stdev) == false) {
err = enable_mic_route(stdev->route_hdl, false, ct);
if (err != 0) {