Merge "configs: add proper backends for tty headset devices"
diff --git a/configs/atoll/atoll.mk b/configs/atoll/atoll.mk
index 8c40c39..e301a24 100644
--- a/configs/atoll/atoll.mk
+++ b/configs/atoll/atoll.mk
@@ -42,7 +42,9 @@
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
+ifeq ($(filter R% r%,$(TARGET_PLATFORM_VERSION)),)
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
+endif
AUDIO_FEATURE_ENABLED_AHAL_EXT := true
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
diff --git a/configs/atoll/mixer_paths_wcd937x.xml b/configs/atoll/mixer_paths_wcd937x.xml
index 4195193..c4784fd 100644
--- a/configs/atoll/mixer_paths_wcd937x.xml
+++ b/configs/atoll/mixer_paths_wcd937x.xml
@@ -2769,11 +2769,19 @@
</path>
<path name="hph-highquality-mode">
+ <ctl name="RX_HPH_PWR_MODE" value="LOHIFI" />
+ <ctl name="RX HPH Mode" value="CLS_H_LOHIFI" />
</path>
<path name="hph-lowpower-mode">
+ <ctl name="RX_HPH_PWR_MODE" value="ULP" />
+ <ctl name="RX HPH Mode" value="CLS_H_ULP" />
</path>
+ <path name="hph-class-ab-mode">
+ <ctl name="RX HPH Mode" value="CLS_AB" />
+ </path>
+
<path name="true-native-mode">
</path>
diff --git a/configs/bengal/bengal.mk b/configs/bengal/bengal.mk
index b1e105d..cb31b98 100644
--- a/configs/bengal/bengal.mk
+++ b/configs/bengal/bengal.mk
@@ -42,7 +42,9 @@
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
+ifeq ($(filter R% r%,$(TARGET_PLATFORM_VERSION)),)
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
+endif
AUDIO_FEATURE_ENABLED_AHAL_EXT := true
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
@@ -103,7 +105,7 @@
PRODUCT_PACKAGES += $(AUDIO_HAL_TEST_APPS)
ifeq ($(AUDIO_FEATURE_ENABLED_DLKM),true)
-BOARD_VENDOR_KERNEL_MODULES := \
+BOARD_VENDOR_KERNEL_MODULES += \
$(KERNEL_MODULES_OUT)/audio_apr.ko \
$(KERNEL_MODULES_OUT)/audio_q6_pdr.ko \
$(KERNEL_MODULES_OUT)/audio_q6_notifier.ko \
@@ -114,21 +116,19 @@
$(KERNEL_MODULES_OUT)/audio_swr.ko \
$(KERNEL_MODULES_OUT)/audio_wcd_core.ko \
$(KERNEL_MODULES_OUT)/audio_swr_ctrl.ko \
- $(KERNEL_MODULES_OUT)/audio_wsa881x.ko \
+ $(KERNEL_MODULES_OUT)/audio_wsa881x_analog.ko \
$(KERNEL_MODULES_OUT)/audio_platform.ko \
- $(KERNEL_MODULES_OUT)/audio_hdmi.ko \
$(KERNEL_MODULES_OUT)/audio_stub.ko \
$(KERNEL_MODULES_OUT)/audio_wcd9xxx.ko \
$(KERNEL_MODULES_OUT)/audio_mbhc.ko \
- $(KERNEL_MODULES_OUT)/audio_wcd938x.ko \
- $(KERNEL_MODULES_OUT)/audio_wcd938x_slave.ko \
+ $(KERNEL_MODULES_OUT)/audio_native.ko \
+ $(KERNEL_MODULES_OUT)/audio_wcd937x.ko \
+ $(KERNEL_MODULES_OUT)/audio_wcd937x_slave.ko \
$(KERNEL_MODULES_OUT)/audio_bolero_cdc.ko \
- $(KERNEL_MODULES_OUT)/audio_wsa_macro.ko \
$(KERNEL_MODULES_OUT)/audio_va_macro.ko \
$(KERNEL_MODULES_OUT)/audio_rx_macro.ko \
$(KERNEL_MODULES_OUT)/audio_tx_macro.ko \
- $(KERNEL_MODULES_OUT)/audio_native.ko \
- $(KERNEL_MODULES_OUT)/audio_machine_lito.ko \
+ $(KERNEL_MODULES_OUT)/audio_machine_bengal.ko \
$(KERNEL_MODULES_OUT)/audio_snd_event.ko
endif
@@ -139,25 +139,23 @@
AUDIO_DLKM += audio_adsp_loader.ko
AUDIO_DLKM += audio_q6.ko
AUDIO_DLKM += audio_usf.ko
-AUDIO_DLKM += audio_pinctrl_wcd.ko
+AUDIO_DLKM += audio_pinctrl_lpi.ko
AUDIO_DLKM += audio_swr.ko
AUDIO_DLKM += audio_wcd_core.ko
AUDIO_DLKM += audio_swr_ctrl.ko
-AUDIO_DLKM += audio_wsa881x.ko
+AUDIO_DLKM += audio_wsa881x_analog.ko
AUDIO_DLKM += audio_platform.ko
-AUDIO_DLKM += audio_hdmi.ko
AUDIO_DLKM += audio_stub.ko
AUDIO_DLKM += audio_wcd9xxx.ko
AUDIO_DLKM += audio_mbhc.ko
AUDIO_DLKM += audio_native.ko
-AUDIO_DLKM += audio_wcd938x.ko
-AUDIO_DLKM += audio_wcd938x_slave.ko
+AUDIO_DLKM += audio_wcd937x.ko
+AUDIO_DLKM += audio_wcd937x_slave.ko
AUDIO_DLKM += audio_bolero_cdc.ko
-AUDIO_DLKM += audio_wsa_macro.ko
AUDIO_DLKM += audio_va_macro.ko
AUDIO_DLKM += audio_rx_macro.ko
AUDIO_DLKM += audio_tx_macro.ko
-AUDIO_DLKM += audio_machine_lito.ko
+AUDIO_DLKM += audio_machine_bengal.ko
AUDIO_DLKM += audio_snd_event.ko
PRODUCT_PACKAGES += $(AUDIO_DLKM)
diff --git a/configs/common_au/audio_policy_configuration.xml b/configs/common_au/audio_policy_configuration.xml
index 10e8c5c..00eeb5a 100644
--- a/configs/common_au/audio_policy_configuration.xml
+++ b/configs/common_au/audio_policy_configuration.xml
@@ -58,10 +58,8 @@
<item>Nav Guidance Bus</item>
<item>Phone Bus</item>
<item>Rear Seat Bus</item>
- <item>Telephony Tx</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
- <item>Telephony Rx</item>
</attachedDevices>
<defaultOutputDevice>Media Bus</defaultOutputDevice>
<mixPorts>
diff --git a/configs/kona/kona.mk b/configs/kona/kona.mk
index 6b73f5d..9bdc261 100644
--- a/configs/kona/kona.mk
+++ b/configs/kona/kona.mk
@@ -43,7 +43,9 @@
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
+ifeq ($(filter R% r%,$(TARGET_PLATFORM_VERSION)),)
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
+endif
AUDIO_FEATURE_ENABLED_AHAL_EXT := true
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
diff --git a/configs/kona/sound_trigger_platform_info.xml b/configs/kona/sound_trigger_platform_info.xml
index 479d7dc..b4a611f 100644
--- a/configs/kona/sound_trigger_platform_info.xml
+++ b/configs/kona/sound_trigger_platform_info.xml
@@ -213,7 +213,7 @@
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
- <param adm_cfg_profile="NONE" />
+ <param adm_cfg_profile="DEFAULT" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
@@ -229,7 +229,7 @@
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
- <param adm_cfg_profile="NONE" />
+ <param adm_cfg_profile="DEFAULT" />
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="4" /> <!-- app type for MD used in ACDB -->
@@ -263,7 +263,7 @@
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
- <param adm_cfg_profile="NONE" />
+ <param adm_cfg_profile="DEFAULT" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
@@ -288,7 +288,7 @@
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
- <param adm_cfg_profile="NONE" />
+ <param adm_cfg_profile="DEFAULT" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
@@ -311,7 +311,7 @@
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
- <param adm_cfg_profile="NONE" />
+ <param adm_cfg_profile="DEFAULT" />
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="3" /> <!-- app type used in ACDB -->
@@ -344,7 +344,7 @@
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
- <param adm_cfg_profile="NONE" />
+ <param adm_cfg_profile="DEFAULT" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
@@ -361,7 +361,7 @@
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
- <param adm_cfg_profile="NONE" />
+ <param adm_cfg_profile="DEFAULT" />
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="3" /> <!-- app type used in ACDB -->
@@ -391,4 +391,12 @@
<param bit_width="16" />
<param out_channels="5"/>
</adm_config>
+
+ <adm_config>
+ <param adm_cfg_profile="DEFAULT" />
+ <param app_type="69938" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param out_channels="1"/>
+ </adm_config>
</sound_trigger_platform_info>
diff --git a/configs/lito/lito.mk b/configs/lito/lito.mk
index 777cc12..16ff87a 100644
--- a/configs/lito/lito.mk
+++ b/configs/lito/lito.mk
@@ -43,7 +43,9 @@
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
+ifeq ($(filter R% r%,$(TARGET_PLATFORM_VERSION)),)
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
+endif
AUDIO_FEATURE_ENABLED_AHAL_EXT := true
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
diff --git a/configs/msmnile/msmnile.mk b/configs/msmnile/msmnile.mk
index 9fe6c35..5440c7b 100644
--- a/configs/msmnile/msmnile.mk
+++ b/configs/msmnile/msmnile.mk
@@ -41,7 +41,9 @@
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
+ifeq ($(filter R% r%,$(TARGET_PLATFORM_VERSION)),)
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
+endif
AUDIO_FEATURE_ENABLED_AHAL_EXT := true
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
diff --git a/configs/qssi/qssi.mk b/configs/qssi/qssi.mk
index 457e860..5ae801c 100644
--- a/configs/qssi/qssi.mk
+++ b/configs/qssi/qssi.mk
@@ -22,7 +22,9 @@
AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
+ifeq ($(filter R% r%,$(TARGET_PLATFORM_VERSION)),)
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
+endif
AUDIO_FEATURE_ENABLED_AHAL_EXT := true
DOLBY_ENABLE := false
endif
diff --git a/configs/sdm710/sdm710.mk b/configs/sdm710/sdm710.mk
index 9af31e1..1a113cf 100644
--- a/configs/sdm710/sdm710.mk
+++ b/configs/sdm710/sdm710.mk
@@ -32,7 +32,9 @@
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
+ifeq ($(filter R% r%,$(TARGET_PLATFORM_VERSION)),)
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
+endif
AUDIO_FEATURE_ENABLED_VOICE_PRINT := false
USE_LEGACY_AUDIO_DAEMON := false
USE_LEGACY_AUDIO_MEASUREMENT := false
diff --git a/configs/sdm845/sdm845.mk b/configs/sdm845/sdm845.mk
index bf73e64..d9a9251 100644
--- a/configs/sdm845/sdm845.mk
+++ b/configs/sdm845/sdm845.mk
@@ -30,7 +30,9 @@
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
+ifeq ($(filter R% r%,$(TARGET_PLATFORM_VERSION)),)
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
+endif
AUDIO_FEATURE_ENABLED_AHAL_EXT := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index 34869d4..bffa3fd 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -202,6 +202,7 @@
APTX_AD_SR_UNCHANGED = 0x0,
APTX_AD_48 = 0x1, // 48 KHz default
APTX_AD_44_1 = 0x2, // 44.1kHz
+ APTX_AD_96 = 0x3, // 96KHz
} enc_aptx_ad_s_rate;
typedef void (*bt_audio_pre_init_t)(void);
@@ -1701,7 +1702,7 @@
a2dp.enc_channels = CH_MONO;
aptx_dsp_cfg->custom_cfg.num_channels = CH_MONO;
aptx_dsp_cfg->custom_cfg.channel_mapping[0] = PCM_CHANNEL_C;
- break;
+ break;
}
switch(aptx_dsp_cfg->aptx_ad_cfg.sampling_freq) {
case APTX_AD_SR_UNCHANGED:
@@ -1713,7 +1714,7 @@
case APTX_AD_44_1:
a2dp.enc_sampling_rate = SAMPLING_RATE_441K;
aptx_dsp_cfg->custom_cfg.sample_rate = SAMPLING_RATE_441K;
- break;
+ break;
}
ALOGV("Successfully updated APTX AD enc format with \
samplingrate: %d channels:%d",
@@ -1774,7 +1775,7 @@
a2dp.enc_channels = CH_MONO;
aptx_dsp_cfg->custom_cfg.num_channels = CH_MONO;
aptx_dsp_cfg->custom_cfg.channel_mapping[0] = PCM_CHANNEL_C;
- break;
+ break;
}
switch(aptx_dsp_cfg->aptx_ad_cfg.sampling_freq) {
case APTX_AD_SR_UNCHANGED:
@@ -1786,7 +1787,11 @@
case APTX_AD_44_1:
a2dp.enc_sampling_rate = SAMPLING_RATE_441K;
aptx_dsp_cfg->custom_cfg.sample_rate = SAMPLING_RATE_441K;
- break;
+ break;
+ case APTX_AD_96:
+ a2dp.enc_sampling_rate = SAMPLING_RATE_96K;
+ aptx_dsp_cfg->custom_cfg.sample_rate = SAMPLING_RATE_96K;
+ break;
}
ALOGV("Successfully updated APTX AD enc format with \
samplingrate: %d channels:%d",
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 67cf2bb..38bfeb2 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -302,6 +302,7 @@
bool ec_ref_enabled;
bool is_wsa_speaker;
bool hifi_audio;
+ bool is_cls_ab_only_supported;
bool is_i2s_ext_modem;
bool is_acdb_initialized;
bool ec_car_state;
@@ -3253,7 +3254,6 @@
my_data->hifi_audio = true;
set_platform_defaults(my_data);
-
/* Initialize ACDB ID's */
if (my_data->is_i2s_ext_modem && !is_auto_snd_card(snd_card_name))
platform_info_init(PLATFORM_INFO_XML_PATH_I2S, my_data, PLATFORM);
@@ -3758,6 +3758,11 @@
my_data->adev->snd_card,
my_data->codec_version);
+ /* WCD9370 codec variant only supports Class AB power mode */
+ if (strstr(my_data->codec_variant, "WCD9370")) {
+ my_data->is_cls_ab_only_supported = true;
+ }
+
if (NATIVE_AUDIO_MODE_INVALID != platform_get_native_support()) {
/*
* Native playback is enabled from the UI.
@@ -9469,13 +9474,18 @@
if (snd_device == SND_DEVICE_OUT_HEADPHONES || snd_device ==
SND_DEVICE_OUT_HEADPHONES_44_1 || snd_device == SND_DEVICE_OUT_HEADPHONES_HIFI_FILTER) {
- if (sample_rate > 48000 ||
- (bit_width >= 24 && (sample_rate == 48000 || sample_rate == 44100))) {
- ALOGI("%s: apply HPH HQ mode\n", __func__);
- audio_route_apply_and_update_path(adev->audio_route, "hph-highquality-mode");
+ if (my_data->is_cls_ab_only_supported) {
+ ALOGI("%s: apply CLS AB HPH power mode\n", __func__);
+ audio_route_apply_and_update_path(adev->audio_route, "hph-class-ab-mode");
} else {
- ALOGI("%s: apply HPH LP mode\n", __func__);
- audio_route_apply_and_update_path(adev->audio_route, "hph-lowpower-mode");
+ if (sample_rate > 48000 ||
+ (bit_width >= 24 && (sample_rate == 48000 || sample_rate == 44100))) {
+ ALOGI("%s: apply HPH HQ mode\n", __func__);
+ audio_route_apply_and_update_path(adev->audio_route, "hph-highquality-mode");
+ } else {
+ ALOGI("%s: apply HPH LP mode\n", __func__);
+ audio_route_apply_and_update_path(adev->audio_route, "hph-lowpower-mode");
+ }
}
}