hal : send audio cal using v6 api with fe id
* Since kernel is fetching app type and topo info using fe id,
hal is expected to send fe id as usecase value aligned with kernel.
* V6 api is used and audio cal is sent along with fe id.
* For dynamic modification of fe id, audio_platform_info.xml
can be used.
Change-Id: I6869baf11864907f163b9016ad4c95e8ff305fc7
Signed-off-by: Manoj Kumar N D <quic_mnd@quicinc.com>
diff --git a/configs/msmnile_au/audio_platform_info.xml b/configs/msmnile_au/audio_platform_info.xml
old mode 100755
new mode 100644
index fddf2cd..f5e7fbf
--- a/configs/msmnile_au/audio_platform_info.xml
+++ b/configs/msmnile_au/audio_platform_info.xml
@@ -94,56 +94,56 @@
</bit_width_configs>
<pcm_ids>
- <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_ALERTS" type="out" id="59"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54"/>
- <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
- <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
- <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15"/>
- <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15"/>
- <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
- <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
- <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
- <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
- <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
- <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
- <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" />
- <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" />
- <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" />
- <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" />
- <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" />
- <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" />
- <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" />
- <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" />
- <usecase name="USECASE_ICC_CALL" type="in" id="33" />
- <usecase name="USECASE_ICC_CALL" type="out" id="33" />
- <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="in" id="33" />
- <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="out" id="33" />
- <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="31" />
- <usecase name="USECASE_AUDIO_RECORD2" type="in" id="61" />
- <usecase name="USECASE_AUDIO_RECORD3" type="in" id="62" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9" fe="4"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7" fe="3"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11" fe="6"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21" fe="10"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22" fe="11"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23" fe="12"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24" fe="13"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25" fe="14"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9" fe="4"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1" fe="1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_ALERTS" type="out" id="59" fe="30"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55" fe="22"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54" fe="21"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2" fe="50"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2" fe="50"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15" fe="51"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15" fe="51"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1" fe="-1"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1" fe="-1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5" fe="-1"/>
+ <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6" fe="-1"/>
+ <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" fe="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" fe="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" fe="15"/>
+ <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" fe="15"/>
+ <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" fe="22"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" fe="21"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" fe="20"/>
+ <usecase name="USECASE_ICC_CALL" type="in" id="33" fe="8"/>
+ <usecase name="USECASE_ICC_CALL" type="out" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="in" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="out" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="31" fe="16"/>
+ <usecase name="USECASE_AUDIO_RECORD2" type="in" id="61" fe="32"/>
+ <usecase name="USECASE_AUDIO_RECORD3" type="in" id="62" fe="33"/>
</pcm_ids>
<soft_volume_params>
diff --git a/configs/msmsteppe_au/audio_platform_info.xml b/configs/msmsteppe_au/audio_platform_info.xml
index 0960da2..ce989d9 100644
--- a/configs/msmsteppe_au/audio_platform_info.xml
+++ b/configs/msmsteppe_au/audio_platform_info.xml
@@ -94,56 +94,56 @@
</bit_width_configs>
<pcm_ids>
- <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_ALERTS" type="out" id="59"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54"/>
- <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
- <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
- <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15"/>
- <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15"/>
- <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
- <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
- <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
- <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
- <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
- <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
- <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" />
- <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" />
- <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" />
- <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" />
- <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" />
- <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" />
- <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" />
- <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" />
- <usecase name="USECASE_ICC_CALL" type="in" id="33" />
- <usecase name="USECASE_ICC_CALL" type="out" id="33" />
- <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="in" id="33" />
- <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="out" id="33" />
- <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="31" />
- <usecase name="USECASE_AUDIO_RECORD2" type="in" id="61" />
- <usecase name="USECASE_AUDIO_RECORD3" type="in" id="62" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9" fe="4"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7" fe="3"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11" fe="6"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21" fe="10"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22" fe="11"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23" fe="12"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24" fe="13"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25" fe="14"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9" fe="4"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1" fe="1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_ALERTS" type="out" id="59" fe="30"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55" fe="22"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54" fe="21"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2" fe="50"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2" fe="50"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15" fe="51"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15" fe="51"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1" fe="-1"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1" fe="-1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5" fe="-1"/>
+ <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6" fe="-1"/>
+ <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" fe="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" fe="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" fe="15"/>
+ <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" fe="15"/>
+ <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" fe="22"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" fe="21"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" fe="20"/>
+ <usecase name="USECASE_ICC_CALL" type="in" id="33" fe="8"/>
+ <usecase name="USECASE_ICC_CALL" type="out" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="in" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="out" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="31" fe="16"/>
+ <usecase name="USECASE_AUDIO_RECORD2" type="in" id="61" fe="32"/>
+ <usecase name="USECASE_AUDIO_RECORD3" type="in" id="62" fe="33"/>
</pcm_ids>
<config_params>
diff --git a/hal/acdb.h b/hal/acdb.h
index 750c9cf..943a303 100644
--- a/hal/acdb.h
+++ b/hal/acdb.h
@@ -55,6 +55,7 @@
typedef void (*acdb_send_audio_cal_t)(int, int, int , int);
typedef void (*acdb_send_audio_cal_v3_t)(int, int, int, int, int);
typedef void (*acdb_send_audio_cal_v4_t)(int, int, int, int, int, int);
+typedef void (*acdb_send_audio_cal_v6_t)(int, int, int, int, int, int, int, int);
typedef void (*acdb_send_voice_cal_t)(int, int);
typedef int (*acdb_reload_vocvoltable_t)(int);
typedef int (*acdb_get_default_app_type_t)(void);
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 52df55c..674601c 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -186,6 +186,7 @@
#define MAX_CAL_NAME 20
#define MAX_MIME_TYPE_LENGTH 30
#define MAX_SND_CARD_NAME_LENGTH 100
+#define FE_ID_TABLE_INDEX 2
#define GET_IN_DEVICE_INDEX(SND_DEVICE) ((SND_DEVICE) - (SND_DEVICE_IN_BEGIN))
@@ -248,6 +249,12 @@
CAL_MODE_RTAC = 0x4
};
+enum {
+ CAL_OFFSET_NONE = 0x0,
+ CAL_OFFSET_ASM_TOP = 0x1,
+ CAL_OFFSET_INDEX_MAX
+};
+
#define PLATFORM_CONFIG_KEY_OPERATOR_INFO "operator_info"
char vendor_config_path[VENDOR_CONFIG_PATH_MAX_LENGTH];
char xml_file_path[VENDOR_CONFIG_FILE_MAX_LENGTH];
@@ -351,6 +358,7 @@
acdb_send_audio_cal_t acdb_send_audio_cal;
acdb_send_audio_cal_v3_t acdb_send_audio_cal_v3;
acdb_send_audio_cal_v4_t acdb_send_audio_cal_v4;
+ acdb_send_audio_cal_v6_t acdb_send_audio_cal_v6;
acdb_set_audio_cal_t acdb_set_audio_cal;
acdb_get_audio_cal_t acdb_get_audio_cal;
acdb_send_voice_cal_t acdb_send_voice_cal;
@@ -413,149 +421,183 @@
};
#endif
-static int pcm_device_table[AUDIO_USECASE_MAX][2] = {
+static int pcm_device_table[AUDIO_USECASE_MAX][4] = {
[USECASE_AUDIO_PLAYBACK_DEEP_BUFFER] = {DEEP_BUFFER_PCM_DEVICE,
- DEEP_BUFFER_PCM_DEVICE},
+ DEEP_BUFFER_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1,
+ MSM_FRONTEND_DAI_MULTIMEDIA1},
[USECASE_AUDIO_PLAYBACK_WITH_HAPTICS] = {AUDIO_HAPTICS_PCM_DEVICE,
- AUDIO_HAPTICS_PCM_DEVICE},
+ AUDIO_HAPTICS_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_PLAYBACK_HAPTICS] = {HAPTICS_PCM_DEVICE,
- HAPTICS_PCM_DEVICE},
+ HAPTICS_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_PLAYBACK_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE,
- LOWLATENCY_PCM_DEVICE},
+ LOWLATENCY_PCM_DEVICE,
+ MSM_FRONTEND_DAI_VOICEMMODE2,
+ MSM_FRONTEND_DAI_VOICEMMODE2},
[USECASE_AUDIO_PLAYBACK_ULL] = {MULTIMEDIA3_PCM_DEVICE,
- MULTIMEDIA3_PCM_DEVICE},
+ MULTIMEDIA3_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA3,
+ MSM_FRONTEND_DAI_MULTIMEDIA3},
[USECASE_AUDIO_PLAYBACK_MULTI_CH] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
+ MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_AUDIO_PLAYBACK_HIFI] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
+ MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_AUDIO_PLAYBACK_TTS] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
+ MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_AUDIO_PLAYBACK_OFFLOAD] =
- {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE},
+ {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA5, MSM_FRONTEND_DAI_MULTIMEDIA5},
[USECASE_AUDIO_PLAYBACK_OFFLOAD2] =
- {PLAYBACK_OFFLOAD_DEVICE2, PLAYBACK_OFFLOAD_DEVICE2},
+ {PLAYBACK_OFFLOAD_DEVICE2, PLAYBACK_OFFLOAD_DEVICE2, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD3] =
- {PLAYBACK_OFFLOAD_DEVICE3, PLAYBACK_OFFLOAD_DEVICE3},
+ {PLAYBACK_OFFLOAD_DEVICE3, PLAYBACK_OFFLOAD_DEVICE3, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD4] =
- {PLAYBACK_OFFLOAD_DEVICE4, PLAYBACK_OFFLOAD_DEVICE4},
+ {PLAYBACK_OFFLOAD_DEVICE4, PLAYBACK_OFFLOAD_DEVICE4, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD5] =
- {PLAYBACK_OFFLOAD_DEVICE5, PLAYBACK_OFFLOAD_DEVICE5},
+ {PLAYBACK_OFFLOAD_DEVICE5, PLAYBACK_OFFLOAD_DEVICE5,
+ MSM_FRONTEND_DAI_MULTIMEDIA20,
+ MSM_FRONTEND_DAI_MULTIMEDIA20},
[USECASE_AUDIO_PLAYBACK_OFFLOAD6] =
- {PLAYBACK_OFFLOAD_DEVICE6, PLAYBACK_OFFLOAD_DEVICE6},
+ {PLAYBACK_OFFLOAD_DEVICE6, PLAYBACK_OFFLOAD_DEVICE6,
+ MSM_FRONTEND_DAI_MULTIMEDIA21, MSM_FRONTEND_DAI_MULTIMEDIA21},
[USECASE_AUDIO_PLAYBACK_OFFLOAD7] =
- {PLAYBACK_OFFLOAD_DEVICE7, PLAYBACK_OFFLOAD_DEVICE7},
+ {PLAYBACK_OFFLOAD_DEVICE7, PLAYBACK_OFFLOAD_DEVICE7, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD8] =
- {PLAYBACK_OFFLOAD_DEVICE8, PLAYBACK_OFFLOAD_DEVICE8},
+ {PLAYBACK_OFFLOAD_DEVICE8, PLAYBACK_OFFLOAD_DEVICE8, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD9] =
- {PLAYBACK_OFFLOAD_DEVICE9, PLAYBACK_OFFLOAD_DEVICE9},
+ {PLAYBACK_OFFLOAD_DEVICE9, PLAYBACK_OFFLOAD_DEVICE9, -1, -1},
- [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE},
- [USECASE_AUDIO_RECORD2] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE},
- [USECASE_AUDIO_RECORD3] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_COMPRESS] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE},
- [USECASE_AUDIO_RECORD_COMPRESS2] = {COMPRESS_CAPTURE_DEVICE,COMPRESS_CAPTURE_DEVICE},
- [USECASE_AUDIO_RECORD_COMPRESS3] = {-1, -1},
- [USECASE_AUDIO_RECORD_COMPRESS4] = {-1, -1},
- [USECASE_AUDIO_RECORD_COMPRESS5] = {-1, -1},
- [USECASE_AUDIO_RECORD_COMPRESS6] = {-1, -1},
- [USECASE_AUDIO_RECORD_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE,
- LOWLATENCY_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_FM_VIRTUAL] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_HIFI] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_FM] = {FM_PLAYBACK_PCM_DEVICE, FM_CAPTURE_PCM_DEVICE},
- [USECASE_AUDIO_HFP_SCO] = {HFP_PCM_RX, HFP_SCO_RX},
- [USECASE_AUDIO_HFP_SCO_WB] = {HFP_PCM_RX, HFP_SCO_RX},
- [USECASE_AUDIO_HFP_SCO_DOWNLINK] = {HFP_ASM_RX_TX, HFP_ASM_RX_TX},
- [USECASE_AUDIO_HFP_SCO_WB_DOWNLINK] = {HFP_ASM_RX_TX, HFP_ASM_RX_TX},
- [USECASE_VOICE_CALL] = {VOICE_CALL_PCM_DEVICE, VOICE_CALL_PCM_DEVICE},
+ [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_RECORD2] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_RECORD3] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_RECORD_COMPRESS] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS2] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS3] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS4] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS5] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS6] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, LOWLATENCY_PCM_DEVICE,
+ MSM_FRONTEND_DAI_VOICEMMODE2, MSM_FRONTEND_DAI_VOICEMMODE2},
+ [USECASE_AUDIO_RECORD_FM_VIRTUAL] = {MULTIMEDIA2_PCM_DEVICE, MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
+ [USECASE_AUDIO_RECORD_HIFI] = {MULTIMEDIA2_PCM_DEVICE, MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
+ [USECASE_AUDIO_PLAYBACK_FM] = {FM_PLAYBACK_PCM_DEVICE, FM_CAPTURE_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_HFP_SCO] = {HFP_PCM_RX, HFP_SCO_RX,
+ MSM_FRONTEND_DAI_MULTIMEDIA6, MSM_FRONTEND_DAI_MULTIMEDIA6},
+ [USECASE_AUDIO_HFP_SCO_WB] = {HFP_PCM_RX, HFP_SCO_RX,
+ MSM_FRONTEND_DAI_MULTIMEDIA6, MSM_FRONTEND_DAI_MULTIMEDIA6},
+ [USECASE_AUDIO_HFP_SCO_DOWNLINK] = {HFP_ASM_RX_TX, HFP_ASM_RX_TX,
+ MSM_FRONTEND_DAI_MULTIMEDIA21, MSM_FRONTEND_DAI_MULTIMEDIA21},
+ [USECASE_AUDIO_HFP_SCO_WB_DOWNLINK] = {HFP_ASM_RX_TX, HFP_ASM_RX_TX,
+ MSM_FRONTEND_DAI_MULTIMEDIA21, MSM_FRONTEND_DAI_MULTIMEDIA21},
+ [USECASE_VOICE_CALL] = {VOICE_CALL_PCM_DEVICE, VOICE_CALL_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_PLAYBACK_MMAP] = {MMAP_PLAYBACK_PCM_DEVICE,
- MMAP_PLAYBACK_PCM_DEVICE},
+ MMAP_PLAYBACK_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_RECORD_MMAP] = {MMAP_RECORD_PCM_DEVICE,
- MMAP_RECORD_PCM_DEVICE},
- [USECASE_VOICE2_CALL] = {VOICE2_CALL_PCM_DEVICE, VOICE2_CALL_PCM_DEVICE},
- [USECASE_VOLTE_CALL] = {VOLTE_CALL_PCM_DEVICE, VOLTE_CALL_PCM_DEVICE},
- [USECASE_QCHAT_CALL] = {QCHAT_CALL_PCM_DEVICE, QCHAT_CALL_PCM_DEVICE},
- [USECASE_VOWLAN_CALL] = {VOWLAN_CALL_PCM_DEVICE, VOWLAN_CALL_PCM_DEVICE},
+ MMAP_RECORD_PCM_DEVICE, -1, -1},
+ [USECASE_VOICE2_CALL] = {VOICE2_CALL_PCM_DEVICE, VOICE2_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_VOLTE_CALL] = {VOLTE_CALL_PCM_DEVICE, VOLTE_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_QCHAT_CALL] = {QCHAT_CALL_PCM_DEVICE, QCHAT_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_VOWLAN_CALL] = {VOWLAN_CALL_PCM_DEVICE, VOWLAN_CALL_PCM_DEVICE, -1, -1},
[USECASE_VOICEMMODE1_CALL] = {VOICEMMODE1_CALL_PCM_DEVICE,
- VOICEMMODE1_CALL_PCM_DEVICE},
+ VOICEMMODE1_CALL_PCM_DEVICE, -1, -1},
[USECASE_VOICEMMODE2_CALL] = {VOICEMMODE2_CALL_PCM_DEVICE,
- VOICEMMODE2_CALL_PCM_DEVICE},
- [USECASE_COMPRESS_VOIP_CALL] = {COMPRESS_VOIP_CALL_PCM_DEVICE, COMPRESS_VOIP_CALL_PCM_DEVICE},
- [USECASE_INCALL_REC_UPLINK] = {AUDIO_RECORD_PCM_DEVICE,
- AUDIO_RECORD_PCM_DEVICE},
- [USECASE_INCALL_REC_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE,
- AUDIO_RECORD_PCM_DEVICE},
- [USECASE_INCALL_REC_UPLINK_AND_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE,
- AUDIO_RECORD_PCM_DEVICE},
+ VOICEMMODE2_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_COMPRESS_VOIP_CALL] = {COMPRESS_VOIP_CALL_PCM_DEVICE, COMPRESS_VOIP_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_INCALL_REC_UPLINK] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_INCALL_REC_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_INCALL_REC_UPLINK_AND_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
[USECASE_INCALL_REC_UPLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
- COMPRESS_CAPTURE_DEVICE},
+ COMPRESS_CAPTURE_DEVICE, -1, -1},
[USECASE_INCALL_REC_DOWNLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
- COMPRESS_CAPTURE_DEVICE},
+ COMPRESS_CAPTURE_DEVICE, -1, -1},
[USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
- COMPRESS_CAPTURE_DEVICE},
+ COMPRESS_CAPTURE_DEVICE, -1, -1},
[USECASE_INCALL_MUSIC_UPLINK] = {INCALL_MUSIC_UPLINK_PCM_DEVICE,
- INCALL_MUSIC_UPLINK_PCM_DEVICE},
+ INCALL_MUSIC_UPLINK_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_INCALL_MUSIC_UPLINK2] = {INCALL_MUSIC_UPLINK2_PCM_DEVICE,
- INCALL_MUSIC_UPLINK2_PCM_DEVICE},
- [USECASE_AUDIO_SPKR_CALIB_RX] = {SPKR_PROT_CALIB_RX_PCM_DEVICE, -1},
- [USECASE_AUDIO_SPKR_CALIB_TX] = {-1, SPKR_PROT_CALIB_TX_PCM_DEVICE},
+ INCALL_MUSIC_UPLINK2_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_SPKR_CALIB_RX] = {SPKR_PROT_CALIB_RX_PCM_DEVICE, -1, -1, -1},
+ [USECASE_AUDIO_SPKR_CALIB_TX] = {-1, SPKR_PROT_CALIB_TX_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_PLAYBACK_AFE_PROXY] = {AFE_PROXY_PLAYBACK_PCM_DEVICE,
- AFE_PROXY_RECORD_PCM_DEVICE},
+ AFE_PROXY_RECORD_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_RECORD_AFE_PROXY] = {AFE_PROXY_PLAYBACK_PCM_DEVICE,
- AFE_PROXY_RECORD_PCM_DEVICE},
+ AFE_PROXY_RECORD_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_RECORD_AFE_PROXY2] = {AFE_PROXY_RECORD2_PCM_DEVICE,
- AFE_PROXY_RECORD2_PCM_DEVICE},
- [USECASE_AUDIO_DSM_FEEDBACK] = {QUAT_MI2S_PCM_DEVICE, QUAT_MI2S_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_SILENCE] = {MULTIMEDIA9_PCM_DEVICE, -1},
- [USECASE_AUDIO_TRANSCODE_LOOPBACK_RX] = {TRANSCODE_LOOPBACK_RX_DEV_ID, -1},
- [USECASE_AUDIO_TRANSCODE_LOOPBACK_TX] = {-1, TRANSCODE_LOOPBACK_TX_DEV_ID},
+ AFE_PROXY_RECORD2_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_DSM_FEEDBACK] = {QUAT_MI2S_PCM_DEVICE, QUAT_MI2S_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_PLAYBACK_SILENCE] = {MULTIMEDIA9_PCM_DEVICE, -1, -1, -1},
+ [USECASE_AUDIO_TRANSCODE_LOOPBACK_RX] = {TRANSCODE_LOOPBACK_RX_DEV_ID, -1, -1, -1},
+ [USECASE_AUDIO_TRANSCODE_LOOPBACK_TX] = {-1, TRANSCODE_LOOPBACK_TX_DEV_ID, -1, -1},
- [USECASE_AUDIO_PLAYBACK_VOIP] = {AUDIO_PLAYBACK_VOIP_PCM_DEVICE, AUDIO_PLAYBACK_VOIP_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_VOIP] = {AUDIO_RECORD_VOIP_PCM_DEVICE, AUDIO_RECORD_VOIP_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, LOWLATENCY_PCM_DEVICE},
+ [USECASE_AUDIO_PLAYBACK_VOIP] = {AUDIO_PLAYBACK_VOIP_PCM_DEVICE, AUDIO_PLAYBACK_VOIP_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_RECORD_VOIP] = {AUDIO_RECORD_VOIP_PCM_DEVICE, AUDIO_RECORD_VOIP_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, LOWLATENCY_PCM_DEVICE,
+ MSM_FRONTEND_DAI_VOICEMMODE2,
+ MSM_FRONTEND_DAI_VOICEMMODE2},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM1] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE1, PLAYBACK_INTERACTIVE_STRM_DEVICE1},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE1, PLAYBACK_INTERACTIVE_STRM_DEVICE1,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM2] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE2, PLAYBACK_INTERACTIVE_STRM_DEVICE2},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE2, PLAYBACK_INTERACTIVE_STRM_DEVICE2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM3] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE3, PLAYBACK_INTERACTIVE_STRM_DEVICE3},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE3, PLAYBACK_INTERACTIVE_STRM_DEVICE3, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM4] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE4, PLAYBACK_INTERACTIVE_STRM_DEVICE4},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE4, PLAYBACK_INTERACTIVE_STRM_DEVICE4, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM5] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE5, PLAYBACK_INTERACTIVE_STRM_DEVICE5},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE5, PLAYBACK_INTERACTIVE_STRM_DEVICE5, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM6] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE6, PLAYBACK_INTERACTIVE_STRM_DEVICE6},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE6, PLAYBACK_INTERACTIVE_STRM_DEVICE6, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM7] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE7, PLAYBACK_INTERACTIVE_STRM_DEVICE7},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE7, PLAYBACK_INTERACTIVE_STRM_DEVICE7, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM8] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE8, PLAYBACK_INTERACTIVE_STRM_DEVICE8},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE8, PLAYBACK_INTERACTIVE_STRM_DEVICE8, -1, -1},
[USECASE_AUDIO_EC_REF_LOOPBACK] = {-1, -1}, /* pcm id updated from platform info file */
- [USECASE_AUDIO_PLAYBACK_MEDIA] = {MEDIA_PCM_DEVICE,
- MEDIA_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION] = {SYS_NOTIFICATION_PCM_DEVICE,
- SYS_NOTIFICATION_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE] = {NAV_GUIDANCE_PCM_DEVICE,
- NAV_GUIDANCE_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_PHONE] = {PHONE_PCM_DEVICE,
- PHONE_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_ALERTS] = {ALERTS_PCM_DEVICE,
- ALERTS_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE,
- FRONT_PASSENGER_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE,
- REAR_SEAT_PCM_DEVICE},
- [USECASE_AUDIO_FM_TUNER_EXT] = {-1, -1},
- [USECASE_ICC_CALL] = {ICC_PCM_DEVICE, ICC_PCM_DEVICE},
+ [USECASE_AUDIO_PLAYBACK_MEDIA] = {MEDIA_PCM_DEVICE, MEDIA_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION] = {SYS_NOTIFICATION_PCM_DEVICE, SYS_NOTIFICATION_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA5, MSM_FRONTEND_DAI_MULTIMEDIA5},
+ [USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE] = {NAV_GUIDANCE_PCM_DEVICE, NAV_GUIDANCE_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
+ [USECASE_AUDIO_PLAYBACK_PHONE] = {PHONE_PCM_DEVICE, PHONE_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA10, MSM_FRONTEND_DAI_MULTIMEDIA10},
+ [USECASE_AUDIO_PLAYBACK_ALERTS] = {ALERTS_PCM_DEVICE, ALERTS_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA31, MSM_FRONTEND_DAI_MULTIMEDIA31},
+ [USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE, FRONT_PASSENGER_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA23, MSM_FRONTEND_DAI_MULTIMEDIA23},
+ [USECASE_AUDIO_PLAYBACK_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE, REAR_SEAT_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA22, MSM_FRONTEND_DAI_MULTIMEDIA22},
+ [USECASE_AUDIO_FM_TUNER_EXT] = {-1, -1, -1, -1},
+ [USECASE_ICC_CALL] = {ICC_PCM_DEVICE, ICC_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA9, MSM_FRONTEND_DAI_MULTIMEDIA9},
- [USECASE_AUDIO_RECORD_BUS] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE, FRONT_PASSENGER_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_BUS_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE, REAR_SEAT_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_SYNTHESIZER] = {-1, -1},
- [USECASE_AUDIO_RECORD_ECHO_REF_EXT] = {MULTIMEDIA2_PCM_DEVICE, MULTIMEDIA2_PCM_DEVICE},
+ [USECASE_AUDIO_RECORD_BUS] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE, FRONT_PASSENGER_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA23, MSM_FRONTEND_DAI_MULTIMEDIA23},
+ [USECASE_AUDIO_RECORD_BUS_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE, REAR_SEAT_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA22, MSM_FRONTEND_DAI_MULTIMEDIA22},
+ [USECASE_AUDIO_PLAYBACK_SYNTHESIZER] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_ECHO_REF_EXT] = {MULTIMEDIA2_PCM_DEVICE, MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
};
/* Array to store sound devices */
@@ -3726,6 +3768,12 @@
ALOGE("%s: Could not find the symbol acdb_send_audio_cal_v4 from %s",
__func__, LIB_ACDB_LOADER);
+ my_data->acdb_send_audio_cal_v6 = (acdb_send_audio_cal_v6_t)dlsym(my_data->acdb_handle,
+ "acdb_loader_send_audio_cal_v6");
+ if (!my_data->acdb_send_audio_cal_v6)
+ ALOGE("%s: Could not find the symbol acdb_send_audio_cal_v6 from %s",
+ __func__, LIB_ACDB_LOADER);
+
my_data->acdb_set_audio_cal = (acdb_set_audio_cal_t)dlsym(my_data->acdb_handle,
"acdb_loader_set_audio_cal_v2");
if (!my_data->acdb_set_audio_cal)
@@ -4746,6 +4794,20 @@
return device_id;
}
+int platform_get_fe_id(audio_usecase_t usecase, int device_type)
+{
+ int fe_id = -1;
+
+ if ((usecase >= AUDIO_USECASE_MAX) || (usecase <= USECASE_INVALID)) {
+ ALOGE("%s: invalid usecase case idx %d", __func__, usecase);
+ return fe_id;
+ }
+
+ fe_id = pcm_device_table[usecase][device_type+FE_ID_TABLE_INDEX];
+
+ return fe_id;
+}
+
uint64_t getQtime()
{
uint64_t qTimerCount = 0;
@@ -5583,10 +5645,10 @@
int app_type)
{
struct platform_data *my_data = (struct platform_data *)platform;
- int acdb_dev_id, acdb_dev_type;
+ int acdb_dev_id, acdb_dev_type, path;
int snd_device = SND_DEVICE_OUT_SPEAKER;
int new_snd_device[SND_DEVICE_OUT_END] = {0};
- int i, num_devices = 1;
+ int i, num_devices = 1, fe_id = -1;
bool is_incall_rec_usecase = false;
snd_device_t incall_rec_device;
int sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
@@ -5699,9 +5761,16 @@
else
acdb_dev_type = ACDB_DEV_TYPE_IN;
- if (my_data->acdb_send_audio_cal_v4) {
+ path = acdb_dev_type-1;
+ fe_id = platform_get_fe_id(usecase->id, path);
+
+ if (my_data->acdb_send_audio_cal_v6 && (fe_id != -1) ) {
+ my_data->acdb_send_audio_cal_v6(acdb_dev_id, acdb_dev_type,
+ app_type, sample_rate, fe_id,
+ backend_cfg.sample_rate, CAL_MODE_SEND, CAL_OFFSET_ASM_TOP);
+ } else if (my_data->acdb_send_audio_cal_v4) {
my_data->acdb_send_audio_cal_v4(acdb_dev_id, acdb_dev_type,
- app_type, sample_rate, i,
+ app_type, sample_rate, path,
backend_cfg.sample_rate);
} else if (my_data->acdb_send_audio_cal_v3) {
my_data->acdb_send_audio_cal_v3(acdb_dev_id, acdb_dev_type,
@@ -10916,7 +10985,7 @@
return be_dai_id;
}
-int platform_set_usecase_pcm_id(audio_usecase_t usecase, int32_t type, int32_t pcm_id)
+int platform_set_usecase_pcm_id(audio_usecase_t usecase, int32_t type, int32_t pcm_id, int32_t fe_id)
{
int ret = 0;
if ((usecase <= USECASE_INVALID) || (usecase >= AUDIO_USECASE_MAX)) {
@@ -10931,6 +11000,10 @@
}
ALOGV("%s: pcm_device_table[%d][%d] = %d", __func__, usecase, type, pcm_id);
pcm_device_table[usecase][type] = pcm_id;
+
+ ALOGV("%s: pcm_device_table[%d][%d] = %d", __func__, usecase, type+2, fe_id);
+ pcm_device_table[usecase][type+FE_ID_TABLE_INDEX] = fe_id;
+
done:
return ret;
}
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 089e437..2b4191f 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -864,4 +864,60 @@
char interface_name[100];
};
+enum {
+ MSM_FRONTEND_DAI_MULTIMEDIA1 = 0,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA3,
+ MSM_FRONTEND_DAI_MULTIMEDIA4,
+ MSM_FRONTEND_DAI_MULTIMEDIA5,
+ MSM_FRONTEND_DAI_MULTIMEDIA6,
+ MSM_FRONTEND_DAI_MULTIMEDIA7,
+ MSM_FRONTEND_DAI_MULTIMEDIA8,
+ MSM_FRONTEND_DAI_MULTIMEDIA9,
+ MSM_FRONTEND_DAI_MULTIMEDIA10,
+ MSM_FRONTEND_DAI_MULTIMEDIA11,
+ MSM_FRONTEND_DAI_MULTIMEDIA12,
+ MSM_FRONTEND_DAI_MULTIMEDIA13,
+ MSM_FRONTEND_DAI_MULTIMEDIA14,
+ MSM_FRONTEND_DAI_MULTIMEDIA15,
+ MSM_FRONTEND_DAI_MULTIMEDIA16,
+ MSM_FRONTEND_DAI_MULTIMEDIA17,
+ MSM_FRONTEND_DAI_MULTIMEDIA18,
+ MSM_FRONTEND_DAI_MULTIMEDIA19,
+ MSM_FRONTEND_DAI_MULTIMEDIA20,
+ MSM_FRONTEND_DAI_MULTIMEDIA21,
+ MSM_FRONTEND_DAI_MULTIMEDIA22,
+ MSM_FRONTEND_DAI_MULTIMEDIA23,
+ MSM_FRONTEND_DAI_MULTIMEDIA24,
+ MSM_FRONTEND_DAI_MULTIMEDIA25,
+ MSM_FRONTEND_DAI_MULTIMEDIA26,
+ MSM_FRONTEND_DAI_MULTIMEDIA27,
+ MSM_FRONTEND_DAI_MULTIMEDIA28,
+ MSM_FRONTEND_DAI_MULTIMEDIA29,
+ MSM_FRONTEND_DAI_MULTIMEDIA30,
+ MSM_FRONTEND_DAI_MULTIMEDIA31,
+ MSM_FRONTEND_DAI_MULTIMEDIA32,
+ MSM_FRONTEND_DAI_MULTIMEDIA33,
+ MSM_FRONTEND_DAI_MULTIMEDIA34,
+ MSM_FRONTEND_DAI_VOIP,
+ MSM_FRONTEND_DAI_AFE_RX,
+ MSM_FRONTEND_DAI_AFE_TX,
+ MSM_FRONTEND_DAI_VOICE_STUB,
+ MSM_FRONTEND_DAI_DTMF_RX,
+ MSM_FRONTEND_DAI_QCHAT,
+ MSM_FRONTEND_DAI_VOLTE_STUB,
+ MSM_FRONTEND_DAI_LSM1,
+ MSM_FRONTEND_DAI_LSM2,
+ MSM_FRONTEND_DAI_LSM3,
+ MSM_FRONTEND_DAI_LSM4,
+ MSM_FRONTEND_DAI_LSM5,
+ MSM_FRONTEND_DAI_LSM6,
+ MSM_FRONTEND_DAI_LSM7,
+ MSM_FRONTEND_DAI_LSM8,
+ MSM_FRONTEND_DAI_VOICE2_STUB,
+ MSM_FRONTEND_DAI_VOICEMMODE1,
+ MSM_FRONTEND_DAI_VOICEMMODE2,
+ MSM_FRONTEND_DAI_MAX,
+};
+
#endif // QCOM_AUDIO_PLATFORM_H
diff --git a/hal/platform_api.h b/hal/platform_api.h
old mode 100755
new mode 100644
index 1d40a86..d789494
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -307,7 +307,7 @@
bool platform_check_and_set_capture_codec_backend_cfg(struct audio_device* adev,
struct audio_usecase *usecase, snd_device_t snd_device);
int platform_get_usecase_index(const char * usecase);
-int platform_set_usecase_pcm_id(audio_usecase_t usecase, int32_t type, int32_t pcm_id);
+int platform_set_usecase_pcm_id(audio_usecase_t usecase, int32_t type, int32_t pcm_id, int32_t fe_id);
void platform_set_echo_reference(struct audio_device *adev, bool enable,
struct listnode *out_devices);
int platform_check_and_set_swap_lr_channels(struct audio_device *adev, bool swap_channels);
diff --git a/hal/platform_info.c b/hal/platform_info.c
index de7f187..d9aabbf 100644
--- a/hal/platform_info.c
+++ b/hal/platform_info.c
@@ -389,11 +389,18 @@
goto done;
}
- int id = atoi((char *)attr[5]);
+ int pcm_id = atoi((char *)attr[5]);
- if (platform_set_usecase_pcm_id(index, type, id) < 0) {
- ALOGE("%s: usecase %s type %d id %d was not set!",
- __func__, attr[1], type, id);
+ if (strcmp(attr[6], "fe") != 0) {
+ ALOGE("%s: fe id not mentioned", __func__);
+ goto done;
+ }
+
+ int fe_id = atoi((char *)attr[7]);
+
+ if (platform_set_usecase_pcm_id(index, type, pcm_id, fe_id) < 0) {
+ ALOGE("%s: usecase %s type %d pcm_id %d fe_id %d was not set!",
+ __func__, attr[1], type, pcm_id, fe_id);
goto done;
}