Merge "configs:sdm845/sdm855/sdm710:Disable device overlay" into audio-hal.lnx.5.0
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index af3d02f..c6569b6 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -235,12 +235,9 @@
PRODUCT_PROPERTY_OVERRIDES += \
ro.af.client_heap_size_kbyte=7168
-ifneq ($(strip $(TARGET_HAS_LOW_RAM)),true)
-PRODUCT_PACKAGES += android.hardware.audio@2.0-service
-endif
-
# for HIDL related packages
PRODUCT_PACKAGES += \
+ android.hardware.audio@2.0-service \
android.hardware.audio@2.0-impl \
android.hardware.audio.effect@2.0-impl \
android.hardware.soundtrigger@2.0-impl
diff --git a/hal/audio_extn/spkr_protection.c b/hal/audio_extn/spkr_protection.c
index 8596a08..1f2f3db 100644
--- a/hal/audio_extn/spkr_protection.c
+++ b/hal/audio_extn/spkr_protection.c
@@ -1006,6 +1006,7 @@
int ret;
bool spv3_enable = false;
unsigned int afe_api_version = 0;
+ struct mixer_ctl *ctl;
memset(&protCfg, 0, sizeof(protCfg));
/* If the value of this persist.vendor.audio.spkr.cal.duration is 0
@@ -1113,9 +1114,18 @@
}
if (goahead) {
if (spk_1_tzn >= 0) {
+ const char *mixer_ctl_name = "SpkrLeft WSA T0 Init";
snprintf(wsa_path, MAX_PATH, TZ_WSA, spk_1_tzn);
ALOGV("%s: wsa_path: %s\n", __func__, wsa_path);
thermal_fd = -1;
+
+ ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+ if (ctl) {
+ ALOGD("%s: Got ctl for mixer cmd %s",
+ __func__, mixer_ctl_name);
+ mixer_ctl_set_value(ctl, 0, 1);
+ }
+
thermal_fd = open(wsa_path, O_RDONLY);
if (thermal_fd > 0) {
if ((ret = read(thermal_fd, buf, sizeof(buf))) >= 0)
@@ -1126,6 +1136,9 @@
} else {
ALOGE("%s: fd for %s is NULL\n", __func__, wsa_path);
}
+ if (ctl) {
+ mixer_ctl_set_value(ctl, 0, 0);
+ }
if (t0_spk_1 < TZ_TEMP_MIN_THRESHOLD ||
t0_spk_1 > TZ_TEMP_MAX_THRESHOLD) {
pthread_mutex_unlock(&adev->lock);
@@ -1137,8 +1150,15 @@
t0_spk_1 = (t0_spk_1 * (1 << 6));
}
if (spk_2_tzn >= 0) {
+ const char *mixer_ctl_name = "SpkrRight WSA T0 Init";
snprintf(wsa_path, MAX_PATH, TZ_WSA, spk_2_tzn);
ALOGV("%s: wsa_path: %s\n", __func__, wsa_path);
+ ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+ if (ctl) {
+ ALOGD("%s: Got ctl for mixer cmd %s",
+ __func__, mixer_ctl_name);
+ mixer_ctl_set_value(ctl, 0, 1);
+ }
thermal_fd = open(wsa_path, O_RDONLY);
if (thermal_fd > 0) {
if ((ret = read(thermal_fd, buf, sizeof(buf))) >= 0)
@@ -1149,6 +1169,9 @@
} else {
ALOGE("%s: fd for %s is NULL\n", __func__, wsa_path);
}
+ if (ctl) {
+ mixer_ctl_set_value(ctl, 0, 0);
+ }
if (t0_spk_2 < TZ_TEMP_MIN_THRESHOLD ||
t0_spk_2 > TZ_TEMP_MAX_THRESHOLD) {
pthread_mutex_unlock(&adev->lock);
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index d726a9f..45cf3ef 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -5423,7 +5423,8 @@
lock_input_stream(in);
pthread_mutex_lock(&in->dev->lock);
- if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) &&
+ if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
+ in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) &&
in->enable_aec != enable &&
(memcmp(&desc.type, FX_IID_AEC, sizeof(effect_uuid_t)) == 0)) {
in->enable_aec = enable;
@@ -5437,7 +5438,8 @@
(memcmp(&desc.type, FX_IID_NS, sizeof(effect_uuid_t)) == 0)) {
in->enable_ns = enable;
if (!in->standby) {
- if (in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) {
+ if (in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
+ in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) {
if (enable_disable_effect(in->dev, EFFECT_NS, enable) == ENOSYS)
select_devices(in->dev, in->usecase);
} else
@@ -6696,7 +6698,8 @@
bool valid_ch = audio_channel_count_from_in_mask(in->channel_mask) == 1;
#ifndef COMPRESS_VOIP_ENABLED
- if (valid_rate && valid_ch) {
+ if (valid_rate && valid_ch &&
+ in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) {
in->usecase = USECASE_AUDIO_RECORD_VOIP;
in->config = default_pcm_config_voip_copp;
in->config.period_size = VOIP_IO_BUF_SIZE(in->sample_rate,
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 8b4ba5e..a48d5b0 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -2563,6 +2563,9 @@
my_data->adev->mixer = NULL;
}
+ if (my_data->acdb_deallocate)
+ my_data->acdb_deallocate();
+
free(platform);
/* deinit usb */
audio_extn_usb_deinit();