Merge "hal: fix compilation error if disabling MULTI_VOICE_SESSIONS"
diff --git a/configs/msmnile/sound_trigger_platform_info.xml b/configs/msmnile/sound_trigger_platform_info.xml
index 91fcb35..799f9db 100644
--- a/configs/msmnile/sound_trigger_platform_info.xml
+++ b/configs/msmnile/sound_trigger_platform_info.xml
@@ -262,7 +262,7 @@
         <param wdsp_fluence_type="NONE" />
         <gcs_usecase>
             <param uid="0x3" />
-            <param acdb_devices="DEVICE_HANDSET_MIC_CPE" />
+            <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HEADSET_MIC_CPE" />
             <param load_sound_model_ids="0x18000001, 0x4, 0x18000100" />
             <param start_engine_ids="0x18000001, 0x4, 0x18000101" />
             <param confidence_levels_ids="0x18000001, 0x4, 0x00012C28" />
diff --git a/configs/sdm845/sound_trigger_platform_info.xml b/configs/sdm845/sound_trigger_platform_info.xml
index 0942fab..328d101 100644
--- a/configs/sdm845/sound_trigger_platform_info.xml
+++ b/configs/sdm845/sound_trigger_platform_info.xml
@@ -175,7 +175,7 @@
         <param wdsp_fluence_type="NONE" />
         <gcs_usecase>
             <param uid="0x3" />
-            <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE" />
+            <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
             <param load_sound_model_ids="0x18000001, 0x4, 0x00012C14" />
             <param confidence_levels_ids="0x18000001, 0x4, 0x00012C28" />
             <param detection_event_ids="0x18000001, 0x4, 0x00012C29" />
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index 1a72bf8..831825f 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -418,6 +418,7 @@
     uint32_t  max_sink_modeB;
     uint32_t  min_sink_modeC;
     uint32_t  max_sink_modeC;
+    uint32_t  mode;
 } __attribute__ ((packed));
 
 struct aptx_ad_enc_cfg_t
@@ -491,6 +492,7 @@
     uint8_t  TTP_modeB_low;
     uint8_t  TTP_modeB_high;
     uint32_t bits_per_sample;
+    uint16_t  encoder_mode;
 } audio_aptx_ad_config;
 
 typedef struct {
@@ -1151,6 +1153,7 @@
     aptx_dsp_cfg->aptx_ad_cfg.max_sink_modeB = aptx_bt_cfg->ad_cfg->max_sink_modeB;
     aptx_dsp_cfg->aptx_ad_cfg.min_sink_modeC = aptx_bt_cfg->ad_cfg->min_sink_modeC;
     aptx_dsp_cfg->aptx_ad_cfg.max_sink_modeC = aptx_bt_cfg->ad_cfg->max_sink_modeC;
+    aptx_dsp_cfg->aptx_ad_cfg.mode = aptx_bt_cfg->ad_cfg->encoder_mode;
     aptx_dsp_cfg->abr_cfg.imc_info.direction = IMC_RECEIVE;
     aptx_dsp_cfg->abr_cfg.imc_info.enable = IMC_ENABLE;
     aptx_dsp_cfg->abr_cfg.imc_info.purpose = IMC_PURPOSE_ID_BT_INFO;
@@ -2049,6 +2052,8 @@
             latency = (avsync_runtime_prop > 0) ? ldac_offset : ENCODER_LATENCY_LDAC;
             latency += (slatency <= 0) ? DEFAULT_SINK_LATENCY_LDAC : slatency;
             break;
+        case ENC_CODEC_TYPE_APTX_AD: // for aptx adaptive the latency depends on the mode (HQ/LL) and
+            latency = slatency;      // BT IPC will take care of accomodating the mode factor and return latency
         default:
             latency = 200;
             break;