Merge "qssi: Set AUDIO_FEATURE_ENABLED_AUDIOSPHERE to true"
diff --git a/configs/kona/audio_configs.xml b/configs/kona/audio_configs.xml
index 1afcd33..f27a18e 100644
--- a/configs/kona/audio_configs.xml
+++ b/configs/kona/audio_configs.xml
@@ -28,11 +28,11 @@
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<configs>
- <!-- system properties -->
- <property name="audio.offload.video" value="true"/>
+ <!-- APM Configs -->
+ <property name="audio.deep_buffer.media" value="true"/>
<property name="audio.offload.disable" value="false"/>
<property name="audio.offload.min.duration.secs" value="60"/>
- <property name="audio.deep_buffer.media" value="true"/>
+ <property name="audio.offload.video" value="true"/>
<property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
<property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
<property name="vendor.audio.av.streaming.offload.enable" value="false"/>
@@ -45,23 +45,17 @@
<property name="vendor.voice.playback.conc.disabled" value="false"/>
<property name="vendor.voice.record.conc.disabled" value="false"/>
<property name="vendor.voice.voip.conc.disabled" value="false"/>
+ <flag name="audio_extn_formats_enabled" value="true" />
+ <flag name="audio_extn_hdmi_spk_enabled" value="true" />
+ <flag name="use_xml_audio_policy_conf" value="true" />
+ <flag name="voice_concurrency" value="false" />
+ <!-- AV Configs -->
<property name="vendor.audio.use.sw.alac.decoder" value="true"/>
<property name="vendor.audio.use.sw.ape.decoder" value="true"/>
<property name="vendor.audio.use.sw.mpegh.decoder" value="false"/>
<property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
<property name="vendor.audio.hw.aac.encoder" value="true"/>
-
- <!-- feature flags -->
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="record_play_concurrency" value="false" />
- <flag name="use_xml_audio_policy_conf" value="true" />
-
<flag name="aac_adts_offload_enabled" value="true" />
<flag name="alac_offload_enabled" value="true" />
<flag name="ape_offload_enabled" value="true" />
@@ -71,4 +65,47 @@
<flag name="qti_flac_decoder" value="true" />
<flag name="vorbis_offload_enabled" value="true" />
<flag name="wma_offload_enabled" value="true" />
+
+ <!-- AHAL Configs -->
+ <flag name="a2dp_offload_enabled" value="true" />
+ <flag name="anc_headset_enabled" value="true" />
+ <flag name="audiosphere_enabled" value="true" />
+ <flag name="battery_listener_enabled" value="true" />
+ <flag name="compress_capture_enabled" value="false" />
+ <flag name="compress_in_enabled" value="true" />
+ <flag name="compress_metadata_needed" value="true" />
+ <flag name="concurrent_capture_enabled" value="true" />
+ <flag name="custom_stereo_enabled" value="true" />
+ <flag name="display_port_enabled" value="true" />
+ <flag name="dsm_feedback_enabled" value="false" />
+ <flag name="dynamic_ecns_enabled" value="true" />
+ <flag name="ext_hw_plugin_enabled" value="true" />
+ <flag name="ext_qdsp_enabled" value="false" />
+ <flag name="ext_spkr_enabled" value="false" />
+ <flag name="ext_spkr_tfa_enabled" value="false" />
+ <flag name="fluence_enabled" value="true" />
+ <flag name="hdmi_edid_enabled" value="true" />
+ <flag name="hdmi_passthrough_enabled" value="true" />
+ <flag name="hfp_enabled" value="true" />
+ <flag name="hifi_audio_enabled" value="false" />
+ <flag name="hwdep_cal_enabled" value="false" />
+ <flag name="incall_music_enabled" value="true" />
+ <flag name="keep_alive_enabled" value="true" />
+ <flag name="kpi_optimize_enabled" value="true" />
+ <flag name="receiver_aided_stereo" value="true" />
+ <flag name="snd_monitor_enabled" value="true" />
+ <flag name="source_track_enabled" value="true" />
+ <flag name="spkr_prot_enabled" value="true" />
+ <flag name="ssrec_enabled" value="true" />
+ <flag name="usb_offload_burst_mode" value="true" />
+ <flag name="usb_offload_enabled" value="true" />
+ <flag name="usb_offload_sidetone_vol_enabled" value="false" />
+ <flag name="use_deep_buffer_as_primary_output" value="false" />
+ <flag name="vbat_enabled" value="true" />
+
+ <!-- Common configs between APM and AHAL -->
+ <flag name="afe_proxy_enabled" value="true" />
+ <flag name="compress_voip_enabled" value="false" />
+ <flag name="fm_power_opt" value="true" />
+ <flag name="record_play_concurrency" value="false" />
</configs>
diff --git a/configs/kona/audio_configs_stock.xml b/configs/kona/audio_configs_stock.xml
new file mode 100644
index 0000000..7a4817a
--- /dev/null
+++ b/configs/kona/audio_configs_stock.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+Copyright (c) 2019, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of The Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<configs>
+ <!-- AHAL Configs -->
+ <flag name="a2dp_offload_enabled" value="true" />
+ <flag name="afe_proxy_enabled" value="false" />
+ <flag name="anc_headset_enabled" value="false" />
+ <flag name="audiosphere_enabled" value="false" />
+ <flag name="battery_listener_enabled" value="false" />
+ <flag name="compress_capture_enabled" value="false" />
+ <flag name="compress_in_enabled" value="false" />
+ <flag name="compress_metadata_needed" value="false" />
+ <flag name="compress_voip_enabled" value="false" />
+ <flag name="concurrent_capture_enabled" value="true" />
+ <flag name="custom_stereo_enabled" value="false" />
+ <flag name="display_port_enabled" value="false" />
+ <flag name="dsm_feedback_enabled" value="false" />
+ <flag name="dynamic_ecns_enabled" value="false" />
+ <flag name="ext_hw_plugin_enabled" value="false" />
+ <flag name="ext_qdsp_enabled" value="true" />
+ <flag name="ext_spkr_enabled" value="true" />
+ <flag name="ext_spkr_tfa_enabled" value="false" />
+ <flag name="fluence_enabled" value="false" />
+ <flag name="fm_power_opt" value="false" />
+ <flag name="hdmi_edid_enabled" value="false" />
+ <flag name="hdmi_passthrough_enabled" value="false" />
+ <flag name="hfp_enabled" value="true" />
+ <flag name="hifi_audio_enabled" value="false" />
+ <flag name="hwdep_cal_enabled" value="true" />
+ <flag name="incall_music_enabled" value="true" />
+ <flag name="keep_alive_enabled" value="false" />
+ <flag name="kpi_optimize_enabled" value="false" />
+ <flag name="receiver_aided_stereo" value="false" />
+ <flag name="record_play_concurrency" value="false" />
+ <flag name="snd_monitor_enabled" value="true" />
+ <flag name="source_track_enabled" value="false" />
+ <flag name="spkr_prot_enabled" value="true" />
+ <flag name="ssrec_enabled" value="false" />
+ <flag name="usb_offload_burst_mode" value="false" />
+ <flag name="usb_offload_enabled" value="true" />
+ <flag name="usb_offload_sidetone_vol_enabled" value="false" />
+ <flag name="use_deep_buffer_as_primary_output" value="false" />
+ <flag name="vbat_enabled" value="false" />
+</configs>
diff --git a/configs/kona/sound_trigger_platform_info.xml b/configs/kona/sound_trigger_platform_info.xml
index 09ebdce..668af5a 100644
--- a/configs/kona/sound_trigger_platform_info.xml
+++ b/configs/kona/sound_trigger_platform_info.xml
@@ -54,12 +54,13 @@
<param DEVICE_HANDSET_MIC_APE="100" />
<param DEVICE_HANDSET_MIC_PP_APE="135" />
<param DEVICE_HANDSET_DMIC_APE="149" />
- <param DEVICE_HANDSET_DMIC_LPI_APE="149" />
+ <param DEVICE_HANDSET_DMIC_LPI_APE="179" />
<param DEVICE_HANDSET_TMIC_APE="157" />
- <param DEVICE_HANDSET_TMIC_LPI_APE="157" />
+ <param DEVICE_HANDSET_TMIC_LPI_APE="180" />
<param DEVICE_HANDSET_QMIC_APE="137" />
- <param DEVICE_HANDSET_QMIC_LPI_APE="137" />
+ <param DEVICE_HANDSET_QMIC_LPI_APE="181" />
<param DEVICE_HEADSET_MIC_APE="141" />
+ <param DEVICE_HEADSET_MIC_APE_LPI="182" />
</acdb_ids>
<!-- Multiple sound_model_config tags can be listed, each with unique -->
diff --git a/configs/msmnile/audio_configs.xml b/configs/msmnile/audio_configs.xml
index 1afcd33..f27a18e 100644
--- a/configs/msmnile/audio_configs.xml
+++ b/configs/msmnile/audio_configs.xml
@@ -28,11 +28,11 @@
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<configs>
- <!-- system properties -->
- <property name="audio.offload.video" value="true"/>
+ <!-- APM Configs -->
+ <property name="audio.deep_buffer.media" value="true"/>
<property name="audio.offload.disable" value="false"/>
<property name="audio.offload.min.duration.secs" value="60"/>
- <property name="audio.deep_buffer.media" value="true"/>
+ <property name="audio.offload.video" value="true"/>
<property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
<property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
<property name="vendor.audio.av.streaming.offload.enable" value="false"/>
@@ -45,23 +45,17 @@
<property name="vendor.voice.playback.conc.disabled" value="false"/>
<property name="vendor.voice.record.conc.disabled" value="false"/>
<property name="vendor.voice.voip.conc.disabled" value="false"/>
+ <flag name="audio_extn_formats_enabled" value="true" />
+ <flag name="audio_extn_hdmi_spk_enabled" value="true" />
+ <flag name="use_xml_audio_policy_conf" value="true" />
+ <flag name="voice_concurrency" value="false" />
+ <!-- AV Configs -->
<property name="vendor.audio.use.sw.alac.decoder" value="true"/>
<property name="vendor.audio.use.sw.ape.decoder" value="true"/>
<property name="vendor.audio.use.sw.mpegh.decoder" value="false"/>
<property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
<property name="vendor.audio.hw.aac.encoder" value="true"/>
-
- <!-- feature flags -->
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="record_play_concurrency" value="false" />
- <flag name="use_xml_audio_policy_conf" value="true" />
-
<flag name="aac_adts_offload_enabled" value="true" />
<flag name="alac_offload_enabled" value="true" />
<flag name="ape_offload_enabled" value="true" />
@@ -71,4 +65,47 @@
<flag name="qti_flac_decoder" value="true" />
<flag name="vorbis_offload_enabled" value="true" />
<flag name="wma_offload_enabled" value="true" />
+
+ <!-- AHAL Configs -->
+ <flag name="a2dp_offload_enabled" value="true" />
+ <flag name="anc_headset_enabled" value="true" />
+ <flag name="audiosphere_enabled" value="true" />
+ <flag name="battery_listener_enabled" value="true" />
+ <flag name="compress_capture_enabled" value="false" />
+ <flag name="compress_in_enabled" value="true" />
+ <flag name="compress_metadata_needed" value="true" />
+ <flag name="concurrent_capture_enabled" value="true" />
+ <flag name="custom_stereo_enabled" value="true" />
+ <flag name="display_port_enabled" value="true" />
+ <flag name="dsm_feedback_enabled" value="false" />
+ <flag name="dynamic_ecns_enabled" value="true" />
+ <flag name="ext_hw_plugin_enabled" value="true" />
+ <flag name="ext_qdsp_enabled" value="false" />
+ <flag name="ext_spkr_enabled" value="false" />
+ <flag name="ext_spkr_tfa_enabled" value="false" />
+ <flag name="fluence_enabled" value="true" />
+ <flag name="hdmi_edid_enabled" value="true" />
+ <flag name="hdmi_passthrough_enabled" value="true" />
+ <flag name="hfp_enabled" value="true" />
+ <flag name="hifi_audio_enabled" value="false" />
+ <flag name="hwdep_cal_enabled" value="false" />
+ <flag name="incall_music_enabled" value="true" />
+ <flag name="keep_alive_enabled" value="true" />
+ <flag name="kpi_optimize_enabled" value="true" />
+ <flag name="receiver_aided_stereo" value="true" />
+ <flag name="snd_monitor_enabled" value="true" />
+ <flag name="source_track_enabled" value="true" />
+ <flag name="spkr_prot_enabled" value="true" />
+ <flag name="ssrec_enabled" value="true" />
+ <flag name="usb_offload_burst_mode" value="true" />
+ <flag name="usb_offload_enabled" value="true" />
+ <flag name="usb_offload_sidetone_vol_enabled" value="false" />
+ <flag name="use_deep_buffer_as_primary_output" value="false" />
+ <flag name="vbat_enabled" value="true" />
+
+ <!-- Common configs between APM and AHAL -->
+ <flag name="afe_proxy_enabled" value="true" />
+ <flag name="compress_voip_enabled" value="false" />
+ <flag name="fm_power_opt" value="true" />
+ <flag name="record_play_concurrency" value="false" />
</configs>
diff --git a/configs/msmnile/audio_configs_stock.xml b/configs/msmnile/audio_configs_stock.xml
new file mode 100644
index 0000000..7a4817a
--- /dev/null
+++ b/configs/msmnile/audio_configs_stock.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+Copyright (c) 2019, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of The Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<configs>
+ <!-- AHAL Configs -->
+ <flag name="a2dp_offload_enabled" value="true" />
+ <flag name="afe_proxy_enabled" value="false" />
+ <flag name="anc_headset_enabled" value="false" />
+ <flag name="audiosphere_enabled" value="false" />
+ <flag name="battery_listener_enabled" value="false" />
+ <flag name="compress_capture_enabled" value="false" />
+ <flag name="compress_in_enabled" value="false" />
+ <flag name="compress_metadata_needed" value="false" />
+ <flag name="compress_voip_enabled" value="false" />
+ <flag name="concurrent_capture_enabled" value="true" />
+ <flag name="custom_stereo_enabled" value="false" />
+ <flag name="display_port_enabled" value="false" />
+ <flag name="dsm_feedback_enabled" value="false" />
+ <flag name="dynamic_ecns_enabled" value="false" />
+ <flag name="ext_hw_plugin_enabled" value="false" />
+ <flag name="ext_qdsp_enabled" value="true" />
+ <flag name="ext_spkr_enabled" value="true" />
+ <flag name="ext_spkr_tfa_enabled" value="false" />
+ <flag name="fluence_enabled" value="false" />
+ <flag name="fm_power_opt" value="false" />
+ <flag name="hdmi_edid_enabled" value="false" />
+ <flag name="hdmi_passthrough_enabled" value="false" />
+ <flag name="hfp_enabled" value="true" />
+ <flag name="hifi_audio_enabled" value="false" />
+ <flag name="hwdep_cal_enabled" value="true" />
+ <flag name="incall_music_enabled" value="true" />
+ <flag name="keep_alive_enabled" value="false" />
+ <flag name="kpi_optimize_enabled" value="false" />
+ <flag name="receiver_aided_stereo" value="false" />
+ <flag name="record_play_concurrency" value="false" />
+ <flag name="snd_monitor_enabled" value="true" />
+ <flag name="source_track_enabled" value="false" />
+ <flag name="spkr_prot_enabled" value="true" />
+ <flag name="ssrec_enabled" value="false" />
+ <flag name="usb_offload_burst_mode" value="false" />
+ <flag name="usb_offload_enabled" value="true" />
+ <flag name="usb_offload_sidetone_vol_enabled" value="false" />
+ <flag name="use_deep_buffer_as_primary_output" value="false" />
+ <flag name="vbat_enabled" value="false" />
+</configs>
diff --git a/configs/msmnile/mixer_paths_tavil.xml b/configs/msmnile/mixer_paths_tavil.xml
index a684cc0..cd867ff 100644
--- a/configs/msmnile/mixer_paths_tavil.xml
+++ b/configs/msmnile/mixer_paths_tavil.xml
@@ -235,6 +235,7 @@
<ctl name="SLIM_0_RX_Voice Mixer VoiceMMode1" value="0" />
<ctl name="SLIM_6_RX_Voice Mixer VoiceMMode1" value="0" />
<ctl name="VoiceMMode1_Tx Mixer SLIM_0_TX_MMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_1_TX_MMode1" value="0" />
<!-- Multimode Voice1 BTSCO -->
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="0" />
<ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="0" />
@@ -251,6 +252,7 @@
<ctl name="SLIM_0_RX_Voice Mixer VoiceMMode2" value="0" />
<ctl name="SLIM_6_RX_Voice Mixer VoiceMMode2" value="0" />
<ctl name="VoiceMMode2_Tx Mixer SLIM_0_TX_MMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_1_TX_MMode2" value="0" />
<!-- Multimode Voice2 BTSCO -->
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="0" />
<ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="0" />
@@ -292,6 +294,7 @@
<ctl name="SLIM_0_RX_Voice Mixer Voip" value="0" />
<ctl name="SLIM_6_RX_Voice Mixer Voip" value="0" />
<ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="0" />
+ <ctl name="Voip_Tx Mixer SLIM_1_TX_Voip" value="0" />
<ctl name="SLIM_7_RX_Voice Mixer Voip" value="0" />
<ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="0" />
<ctl name="AFE_PCM_RX_Voice Mixer Voip" value="0" />
@@ -1645,7 +1648,7 @@
<path name="compress-voip-call headphones">
<ctl name="SLIM_6_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_1_TX_Voip" value="1" />
</path>
@@ -1681,7 +1684,7 @@
<path name="voicemmode1-call headphones">
<ctl name="SLIM_6_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer SLIM_0_TX_MMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_1_TX_MMode1" value="1" />
</path>
<path name="voicemmode1-call bt-sco">
@@ -1726,7 +1729,7 @@
<path name="voicemmode2-call headphones">
<ctl name="SLIM_6_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer SLIM_0_TX_MMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_1_TX_MMode2" value="1" />
</path>
<path name="voicemmode2-call bt-sco">
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index 90199cf..400d7d0 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -50,8 +50,7 @@
#endif
#define AUDIO_PARAMETER_A2DP_STARTED "A2dpStarted"
-#define BT_IPC_SOURCE_LIB_NAME "libbthost_if.so"
-#define BT_IPC_SOURCE_LIB_NAME_QTI "libbthost_if_qti.so"
+#define BT_IPC_SOURCE_LIB_NAME "btaudio_offload_if.so"
#define BT_IPC_SINK_LIB_NAME "libbthost_if_sink.so"
#define MEDIA_FMT_NONE 0
#define MEDIA_FMT_AAC 0x00010DA6
@@ -200,6 +199,7 @@
APTX_AD_44_1 = 0x2, // 44.1kHz
} enc_aptx_ad_s_rate;
+typedef void (*bt_audio_pre_init_t)(void);
typedef int (*audio_source_open_t)(void);
typedef int (*audio_source_close_t)(void);
typedef int (*audio_source_start_t)(void);
@@ -278,6 +278,7 @@
struct a2dp_data {
struct audio_device *adev;
void *bt_lib_source_handle;
+ bt_audio_pre_init_t bt_audio_pre_init;
audio_source_open_t audio_source_open;
audio_source_close_t audio_source_close;
audio_source_start_t audio_source_start;
@@ -842,34 +843,42 @@
return is_enhanced_fwk;
}
-/* API to open BT IPC library to start IPC communication for BT Source*/
-static void open_a2dp_source()
-{
+static void open_a2dp_source() {
int ret = 0;
ALOGD(" Open A2DP source start ");
- if (a2dp.bt_lib_source_handle == NULL) {
- if (is_running_with_enhanced_fwk == UNINITIALIZED)
- is_running_with_enhanced_fwk = check_if_enhanced_fwk();
- if (!is_running_with_enhanced_fwk) {
- ALOGD(" Requesting for BT lib handle");
- a2dp.bt_lib_source_handle = dlopen(BT_IPC_SOURCE_LIB_NAME, RTLD_NOW);
- if (a2dp.bt_lib_source_handle == NULL) {
- ALOGE("%s: DLOPEN failed for %s", __func__, BT_IPC_SOURCE_LIB_NAME);
- ret = -ENOSYS;
- goto init_fail;
+
+ if (a2dp.bt_lib_source_handle && a2dp.audio_source_open) {
+ if (a2dp.bt_state_source == A2DP_STATE_DISCONNECTED) {
+ ALOGD("calling BT stream open");
+ ret = a2dp.audio_source_open();
+ if(ret != 0) {
+ ALOGE("Failed to open source stream for a2dp: status %d", ret);
}
+ a2dp.bt_state_source = A2DP_STATE_CONNECTED;
} else {
- ALOGD(" Requesting for BT QTI lib handle");
- a2dp.bt_lib_source_handle = dlopen(BT_IPC_SOURCE_LIB_NAME_QTI, RTLD_NOW);
- if (a2dp.bt_lib_source_handle == NULL) {
- ALOGE("%s: DLOPEN failed for %s", __func__, BT_IPC_SOURCE_LIB_NAME_QTI);
- ret = -ENOSYS;
- goto init_fail;
- }
+ ALOGD("Called a2dp open with improper state %d", a2dp.bt_state_source);
+ }
+ } else {
+ ALOGE("a2dp handle is not identified, Ignoring open request");
+ a2dp.bt_state_source = A2DP_STATE_DISCONNECTED;
+ }
+}
+/* API to open BT IPC library to start IPC communication for BT Source*/
+static void a2dp_source_init()
+{
+ ALOGD("a2dp_source_init START");
+ if (a2dp.bt_lib_source_handle == NULL) {
+ ALOGD("Requesting for BT lib handle");
+ a2dp.bt_lib_source_handle = dlopen(BT_IPC_SOURCE_LIB_NAME, RTLD_NOW);
+ if (a2dp.bt_lib_source_handle == NULL) {
+ ALOGE("%s: dlopen failed for %s", __func__, BT_IPC_SOURCE_LIB_NAME);
+ return;
}
}
+ a2dp.bt_audio_pre_init = (bt_audio_pre_init_t)
+ dlsym(a2dp.bt_lib_source_handle, "bt_audio_pre_init");
a2dp.audio_source_open = (audio_source_open_t)
dlsym(a2dp.bt_lib_source_handle, "audio_stream_open");
a2dp.audio_source_start = (audio_source_start_t)
@@ -895,32 +904,12 @@
a2dp.audio_is_tws_mono_mode_enable = (audio_is_tws_mono_mode_enable_t)
dlsym(a2dp.bt_lib_source_handle,"isTwsMonomodeEnable");
- if (a2dp.bt_lib_source_handle && a2dp.audio_source_open) {
- if (a2dp.bt_state_source == A2DP_STATE_DISCONNECTED) {
- ALOGD("calling BT stream open");
- ret = a2dp.audio_source_open();
- if (ret != 0) {
- ALOGE("Failed to open source stream for a2dp: status %d", ret);
- goto init_fail;
- }
- a2dp.bt_state_source = A2DP_STATE_CONNECTED;
- } else {
- ALOGD("Called a2dp open with improper state, Ignoring request state %d", a2dp.bt_state_source);
- }
- } else {
- ALOGE("a2dp handle is not identified, Ignoring open request");
- a2dp.bt_state_source = A2DP_STATE_DISCONNECTED;
- goto init_fail;
- }
-
-init_fail:
- if (ret != 0 && (a2dp.bt_lib_source_handle != NULL)) {
- dlclose(a2dp.bt_lib_source_handle);
- a2dp.bt_lib_source_handle = NULL;
- }
- if (vndk_fwk_lib_handle != NULL) {
- dlclose(vndk_fwk_lib_handle);
- vndk_fwk_lib_handle = NULL;
+ if (is_running_with_enhanced_fwk == UNINITIALIZED)
+ is_running_with_enhanced_fwk = check_if_enhanced_fwk();
+ if (a2dp.bt_lib_source_handle && is_running_with_enhanced_fwk
+ && a2dp.bt_audio_pre_init) {
+ ALOGD("calling BT module preinit");
+ a2dp.bt_audio_pre_init();
}
}
@@ -2711,7 +2700,7 @@
a2dp.abr_config.imc_instance = 0;
a2dp.abr_config.abr_tx_handle = NULL;
a2dp.is_tws_mono_mode_on = false;
-
+ a2dp_source_init();
// init function pointers
fp_platform_get_pcm_device_id =
init_config.fp_platform_get_pcm_device_id;
diff --git a/hal/audio_extn/spkr_protection.c b/hal/audio_extn/spkr_protection.c
index 8b00f97..9c30bbe 100644
--- a/hal/audio_extn/spkr_protection.c
+++ b/hal/audio_extn/spkr_protection.c
@@ -101,7 +101,7 @@
#ifdef LINUX_ENABLED
#define CALIB_FILE "/data/audio/audio.cal"
#else
-#define CALIB_FILE "/data/vendor/misc/audio/audio.cal"
+#define CALIB_FILE "/data/vendor/audio/audio.cal"
#endif
/*Time between retries for calibartion or intial wait time
diff --git a/hal/audio_extn/usb.c b/hal/audio_extn/usb.c
index 7f784ed..5c2ec9c 100644
--- a/hal/audio_extn/usb.c
+++ b/hal/audio_extn/usb.c
@@ -1168,8 +1168,14 @@
usb_card_info->usb_card = card;
usb_card_info->usb_device_type = device;
usb_get_sidetone_mixer(usb_card_info);
- if (!usb_get_device_cap_config(usb_card_info, card))
- usbmod->is_capture_supported = true;
+ struct usb_card_config *usb_card_info_temp = NULL;
+ usb_card_info_temp = calloc(1, sizeof(struct usb_card_config));
+ if (usb_card_info_temp != NULL) {
+ list_init(&usb_card_info_temp->usb_device_conf_list);
+ if (!usb_get_capability(USB_CAPTURE, usb_card_info_temp, card))
+ usbmod->is_capture_supported = true;
+ free(usb_card_info_temp);
+ }
list_add_tail(&usbmod->usb_card_conf_list, &usb_card_info->list);
goto exit;
}