hal: Set echo reference from mixer file
Set echo reference from mixer file.
Change-Id: I8b9d1209002ead0f82eb6052d41ab00ba41ce6a2
diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index ed1a781..70e0b9e 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -193,20 +193,14 @@
#define DEEP_BUFFER_PLATFORM_DELAY (29*1000LL)
#define LOW_LATENCY_PLATFORM_DELAY (13*1000LL)
-static int set_echo_reference(struct mixer *mixer, const char* ec_ref)
+static void set_echo_reference(struct audio_device *adev, bool enable)
{
- struct mixer_ctl *ctl;
- const char *mixer_ctl_name = "EC_REF_RX";
+ if (enable)
+ audio_route_apply_and_update_path(adev->audio_route, "echo-reference");
+ else
+ audio_route_reset_and_update_path(adev->audio_route, "echo-reference");
- ctl = mixer_get_ctl_by_name(mixer, mixer_ctl_name);
- if (!ctl) {
- ALOGE("%s: Could not get ctl for mixer cmd - %s",
- __func__, mixer_ctl_name);
- return -EINVAL;
- }
- ALOGV("Setting EC Reference: %s", ec_ref);
- mixer_ctl_set_enum_by_string(ctl, ec_ref);
- return 0;
+ ALOGV("Setting EC Reference: %d", enable);
}
void *platform_init(struct audio_device *adev)
@@ -748,9 +742,9 @@
} else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
snd_device = SND_DEVICE_IN_HEADSET_MIC_AEC;
}
- set_echo_reference(adev->mixer, "SLIM_RX");
+ set_echo_reference(adev, true);
} else
- set_echo_reference(adev->mixer, "NONE");
+ set_echo_reference(adev, false);
}
} else if (source == AUDIO_SOURCE_DEFAULT) {
goto exit;