Merge "configs: msm8937: Add support for hfp pcm loopback id."
diff --git a/configs/lahaina/yupik_overlay/mixer_paths_yupikqrd_overlay.xml b/configs/lahaina/yupik_overlay/mixer_paths_yupikqrd_overlay.xml
index 94ad89d..d57fdad 100644
--- a/configs/lahaina/yupik_overlay/mixer_paths_yupikqrd_overlay.xml
+++ b/configs/lahaina/yupik_overlay/mixer_paths_yupikqrd_overlay.xml
@@ -173,33 +173,23 @@
</path>
<path name="speaker-dmic-endfire">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
- <ctl name="TX DEC1 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX1" value="SWR_MIC1" />
- <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="ADC2 ChMap" value="SWRM_TX1_CH2" />
- <ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="ADC2 MUX" value="INP3" />
- <ctl name="HDR12 MUX" value="NO_HDR12" />
- <ctl name="TX DEC2 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX2" value="SWR_MIC0" />
- <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
- <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC"/>
+ <ctl name="TX SMIC MUX1" value="SWR_MIC4"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1"/>
+ <ctl name="ADC3 ChMap" value="SWRM_TX2_CH1"/>
+ <ctl name="ADC3 MUX" value="INP4"/>
+ <ctl name="HDR34 MUX" value="NO_HDR34"/>
+ <ctl name="ADC3_MIXER Switch" value="1"/>
+ <ctl name="TX DEC2 MUX" value="SWR_MIC"/>
+ <ctl name="TX SMIC MUX2" value="SWR_MIC1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1"/>
+ <ctl name="ADC2 ChMap" value="SWRM_TX1_CH2"/>
+ <ctl name="ADC2 MUX" value="INP3"/>
+ <ctl name="HDR12 MUX" value="NO_HDR12"/>
+ <ctl name="ADC2_MIXER Switch" value="1"/>
</path>
<path name="speaker-dmic-broadside">
- <ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
- <ctl name="TX DEC1 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX1" value="SWR_MIC1" />
- <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="ADC2 ChMap" value="SWRM_TX1_CH2" />
- <ctl name="ADC2_MIXER Switch" value="1" />
- <ctl name="ADC2 MUX" value="INP3" />
- <ctl name="HDR12 MUX" value="NO_HDR12" />
- <ctl name="TX DEC2 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX2" value="SWR_MIC0" />
- <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
- <ctl name="ADC1_MIXER Switch" value="1" />
+ <path name="speaker-dmic-endfire" />
</path>
<path name="three-mic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Three" />
diff --git a/configs/msm8937/audio_policy_configuration_sdm429w.xml b/configs/msm8937/audio_policy_configuration_sdm429w.xml
index 67b930e..b210fbc 100644
--- a/configs/msm8937/audio_policy_configuration_sdm429w.xml
+++ b/configs/msm8937/audio_policy_configuration_sdm429w.xml
@@ -120,13 +120,34 @@
<devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
</devicePort>
+ <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
+ encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </devicePort>
+ <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
+ encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </devicePort>
+ <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
+ encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </devicePort>
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
@@ -156,11 +177,36 @@
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
+ <route type="mix" sink="BT A2DP Out"
+ sources="primary output,deep_buffer,compressed_offload"/>
+ <route type="mix" sink="BT A2DP Headphones"
+ sources="primary output,deep_buffer,compressed_offload"/>
+ <route type="mix" sink="BT A2DP Speaker"
+ sources="primary output,deep_buffer,compressed_offload"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
- <xi:include href="/vendor/etc/a2dp_audio_policy_configuration.xml"/>
+ <module name="a2dp" halVersion="2.0">
+ <mixPorts>
+ <mixPort name="a2dp input" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </mixPort>
+ </mixPorts>
+
+ <devicePorts>
+ <devicePort tagName="BT A2DP In" type="AUDIO_DEVICE_IN_BLUETOOTH_A2DP" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </devicePort>
+ </devicePorts>
+
+ <routes>
+ <route type="mix" sink="a2dp input"
+ sources="BT A2DP In"/>
+ </routes>
+ </module>
<!-- Usb Audio HAL -->
<xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
diff --git a/configs/msm8937/audio_policy_configuration_sdm429w_law.xml b/configs/msm8937/audio_policy_configuration_sdm429w_law.xml
old mode 100644
new mode 100755
index a5dff0a..7f90a55
--- a/configs/msm8937/audio_policy_configuration_sdm429w_law.xml
+++ b/configs/msm8937/audio_policy_configuration_sdm429w_law.xml
@@ -21,7 +21,7 @@
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
- <globalConfiguration speaker_drc_enabled="true"/>
+ <globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/>
<!-- Modules section:
@@ -134,7 +134,7 @@
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
+ samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink">
@@ -142,6 +142,12 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
+ <mixPort name="incall_music_uplink" role="source"
+ flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000,48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="surround_sound" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
@@ -187,10 +193,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
- <devicePort tagName="BT SCO All" type="AUDIO_DEVICE_OUT_ALL_SCO" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
- </devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
@@ -268,14 +270,20 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="Proxy"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload"/>
+ <route type="mix" sink="Telephony Tx"
+ sources="voice_tx,incall_music_uplink"/>
<route type="mix" sink="FM"
sources="primary output"/>
- <route type="mix" sink="BT SCO All"
+ <route type="mix" sink="BT SCO"
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
+ <route type="mix" sink="BT SCO Headset"
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
+ <route type="mix" sink="BT SCO Car Kit"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx"/>
<route type="mix" sink="primary input"
- sources="Wired Headset Mic,BT SCO Headset Mic,FM Tuner,Telephony Rx"/>
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner"/>
<route type="mix" sink="surround_sound"
sources="Built-In Mic,Built-In Back Mic"/>
<route type="mix" sink="voice_rx"
diff --git a/configs/msm8937/mixer_paths_sdm429w.xml b/configs/msm8937/mixer_paths_sdm429w.xml
index 9a271ed..cc2c73c 100644
--- a/configs/msm8937/mixer_paths_sdm429w.xml
+++ b/configs/msm8937/mixer_paths_sdm429w.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
- Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
+ Copyright (c) 2019-2021, 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
@@ -591,6 +591,16 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 bt-a2dp">
+ <ctl name="INTERNAL_A2DP_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback2 bt-a2dp" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+
<path name="compress-offload-playback transmission-fm">
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
</path>
diff --git a/hal/Android.mk b/hal/Android.mk
index 4cc91a2..e57b859 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -126,6 +126,10 @@
LOCAL_CFLAGS += -DPLATFORM_AUTO
endif
+ifeq ($(TARGET_SUPPORTS_WEARABLES),true)
+ LOCAL_CFLAGS += -DENABLE_HFP_CALIBRATION
+endif
+
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DAEMON_SUPPORT)), true)
LOCAL_CFLAGS += -DDAEMON_SUPPORT_AUTO
endif
diff --git a/hal/audio_extn/hfp.c b/hal/audio_extn/hfp.c
index cb85e1a..ca5d3bb 100644
--- a/hal/audio_extn/hfp.c
+++ b/hal/audio_extn/hfp.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2021, 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
@@ -50,6 +50,8 @@
#define AUDIO_PARAMETER_HFP_SET_SAMPLING_RATE "hfp_set_sampling_rate"
#define AUDIO_PARAMETER_KEY_HFP_VOLUME "hfp_volume"
#define AUDIO_PARAMETER_HFP_PCM_DEV_ID "hfp_pcm_dev_id"
+#define AUDIO_PARAMETER_HFP_VOL_MIXER_CTL "hfp_vol_mixer_ctl"
+#define AUDIO_PARAMETER_HFP_VALUE_MAX 128
#define AUDIO_PARAMETER_KEY_HFP_MIC_VOLUME "hfp_mic_volume"
#define PLAYBACK_VOLUME_MAX 0x2000
@@ -85,6 +87,7 @@
struct pcm *hfp_pcm_tx;
bool is_hfp_running;
float hfp_volume;
+ char hfp_vol_mixer_ctl[AUDIO_PARAMETER_HFP_VALUE_MAX];
int32_t hfp_pcm_dev_id;
audio_usecase_t ucid;
float mic_volume;
@@ -98,6 +101,7 @@
.hfp_pcm_tx = NULL,
.is_hfp_running = 0,
.hfp_volume = 0,
+ .hfp_vol_mixer_ctl = {0, },
.hfp_pcm_dev_id = HFP_ASM_RX_TX,
.ucid = USECASE_AUDIO_HFP_SCO,
.mic_volume = CAPTURE_VOLUME_DEFAULT,
@@ -155,8 +159,13 @@
}
ALOGD("%s: Setting HFP volume to %d \n", __func__, vol);
- ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
- if (!ctl) {
+
+ if (0 == hfpmod.hfp_vol_mixer_ctl[0])
+ ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+ else
+ ctl = mixer_get_ctl_by_name(adev->mixer, hfpmod.hfp_vol_mixer_ctl);
+
+ if(!ctl) {
ALOGE("%s: Could not get ctl for mixer cmd - %s",
__func__, mixer_ctl_name);
return -EINVAL;
@@ -584,6 +593,15 @@
}
memset(value, 0, sizeof(value));
+ ret = str_parms_get_str(parms, AUDIO_PARAMETER_HFP_VOL_MIXER_CTL,
+ value, sizeof(value));
+ if (ret >= 0) {
+ ALOGD("%s: mixer ctl name: %s", __func__, value);
+ strlcpy(hfpmod.hfp_vol_mixer_ctl, value, sizeof(value));
+ str_parms_del(parms, AUDIO_PARAMETER_HFP_VOL_MIXER_CTL);
+ }
+
+ memset(value, 0, sizeof(value));
ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_HFP_VOLUME,
value, sizeof(value));
if (ret >= 0) {
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index 9cd7416..65c8fb7 100755
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2014 The Android Open Source Project
@@ -1669,6 +1669,9 @@
num_devices = 1;
}
break;
+ case PCM_HFP_CALL:
+ rc = audio_extn_utils_send_app_type_cfg_hfp(adev,usecase);
+ return rc;
default:
ALOGI("%s: not a playback/capture path, no need to cfg app type", __func__);
rc = 0;
@@ -2040,7 +2043,15 @@
} else if (type == PCM_CAPTURE && usecase->stream.in != NULL) {
platform_send_audio_calibration(adev->platform, usecase,
usecase->stream.in->app_type_cfg.app_type);
- } else if ((type == PCM_HFP_CALL) || (type == PCM_CAPTURE) ||
+ } else if (type == PCM_HFP_CALL) {
+ /* when app type is default. the sample rate is not used to send cal */
+#ifdef ENABLE_HFP_CALIBRATION
+ platform_send_audio_calibration_hfp(adev->platform, usecase->in_snd_device);
+#else
+ platform_send_audio_calibration(adev->platform, usecase,
+ platform_get_default_app_type_v2(adev->platform, usecase->type));
+#endif
+ } else if ((type == PCM_CAPTURE) ||
(type == TRANSCODE_LOOPBACK_RX && usecase->stream.inout != NULL) ||
(type == ICC_CALL) || (type == SYNTH_LOOPBACK)) {
platform_send_audio_calibration(adev->platform, usecase,
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 2f8a6f2..e5c2ab2 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -3780,6 +3780,12 @@
return 0;
}
+int platform_send_audio_calibration_hfp(void *platform __unused,
+ snd_device_t snd_device __unused)
+{
+ return 0;
+}
+
int platform_switch_voice_call_device_pre(void *platform)
{
struct platform_data *my_data = (struct platform_data *)platform;
diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index 94c0a62..439b6d7 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -536,6 +536,12 @@
return -ENOSYS;
}
+int platform_send_audio_calibration_hfp(void *platform __unused,
+ snd_device_t snd_device __unused)
+{
+ return 0;
+}
+
int platform_send_audio_calibration(void *platform, struct audio_usecase *usecase,
int app_type __unused)
{
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 86c1cc9..8571a71 100755
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -5593,6 +5593,52 @@
return 0;
}
+int platform_send_audio_calibration_hfp(void *platform, snd_device_t snd_device)
+{
+ struct platform_data *my_data = (struct platform_data *)platform;
+ int acdb_dev_id, acdb_dev_type;
+ int sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
+ int app_type = 0;
+
+ acdb_dev_id = platform_get_snd_device_acdb_id(snd_device);
+ if (acdb_dev_id < 0) {
+ ALOGE("%s: Could not find acdb id for device(%d)",
+ __func__, snd_device);
+ return -EINVAL;
+ }
+
+ if ((snd_device >= SND_DEVICE_OUT_BEGIN) &&
+ (snd_device < SND_DEVICE_OUT_END)) {
+ acdb_dev_type = ACDB_DEV_TYPE_OUT;
+ app_type = DEFAULT_APP_TYPE_RX_PATH;
+ } else {
+ acdb_dev_type = ACDB_DEV_TYPE_IN;
+ app_type = DEFAULT_APP_TYPE_TX_PATH;
+ }
+
+ if ((my_data->acdb_send_audio_cal_v3) &&
+ ((snd_device == SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP) ||
+ (snd_device == SND_DEVICE_IN_VOICE_SPEAKER_DMIC))) {
+ /* TX path calibration */
+ my_data->acdb_send_audio_cal_v3(acdb_dev_id, ACDB_DEV_TYPE_IN,
+ DEFAULT_APP_TYPE_TX_PATH, sample_rate, 0);
+ my_data->acdb_send_audio_cal_v3(acdb_dev_id, ACDB_DEV_TYPE_OUT,
+ DEFAULT_APP_TYPE_RX_PATH, sample_rate, 0);
+ } else if ((my_data->acdb_send_audio_cal_v3) &&
+ (snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_HFP)) {
+ /* RX path calibration */
+ my_data->acdb_send_audio_cal_v3(acdb_dev_id, ACDB_DEV_TYPE_IN,
+ DEFAULT_APP_TYPE_TX_PATH, sample_rate,0 );
+ my_data->acdb_send_audio_cal_v3(acdb_dev_id, ACDB_DEV_TYPE_OUT,
+ DEFAULT_APP_TYPE_RX_PATH, sample_rate,0 );
+ } else if (my_data->acdb_send_audio_cal) {
+ my_data->acdb_send_audio_cal(acdb_dev_id, acdb_dev_type, app_type,
+ sample_rate);
+ }
+
+ return 0;
+}
+
int platform_switch_voice_call_device_pre(void *platform)
{
struct platform_data *my_data = (struct platform_data *)platform;
diff --git a/hal/platform_api.h b/hal/platform_api.h
index ca72708..29322e1 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -182,6 +182,7 @@
int platform_get_native_support();
int platform_send_audio_calibration(void *platform, struct audio_usecase *usecase,
int app_type);
+int platform_send_audio_calibration_hfp(void *platform, snd_device_t snd_device);
int platform_get_default_app_type(void *platform);
int platform_get_default_app_type_v2(void *platform, usecase_type_t type);
int platform_switch_voice_call_device_pre(void *platform);