hal: Add apptype support for HFP client call
Add support to send apptype and calibration for HFP client call
Change-Id: I71105baa28d98d4646620601a31a5ff373c9e9e9
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;