diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index 50c6490..561ed19 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -25,6 +25,7 @@
 #include <audio_hw.h>
 #include <platform_api.h>
 #include "platform.h"
+#include "audio_extn.h"
 
 #define LIB_ACDB_LOADER "libacdbloader.so"
 #define LIB_CSD_CLIENT "libcsd-client.so"
@@ -104,7 +105,7 @@
 static const int pcm_device_table[AUDIO_USECASE_MAX][2] = {
     [USECASE_AUDIO_PLAYBACK_DEEP_BUFFER] = {0, 0},
     [USECASE_AUDIO_PLAYBACK_LOW_LATENCY] = {14, 14},
-    [USECASE_AUDIO_PLAYBACK_MULTI_CH] = {1, 1},
+    [USECASE_AUDIO_PLAYBACK_HIFI] = {1, 1},
     [USECASE_AUDIO_RECORD] = {0, 0},
     [USECASE_AUDIO_RECORD_LOW_LATENCY] = {14, 14},
     [USECASE_VOICE_CALL] = {12, 12},
@@ -430,7 +431,7 @@
     return -ENODEV;
 }
 
-int platform_get_default_app_type_v2(void *platform, usecase_type_t type __unused,
+int platform_get_default_app_type_v2(void *platform __unused, usecase_type_t type __unused,
                                      int *app_type __unused)
 {
     ALOGE("%s: Not implemented", __func__);
@@ -1121,7 +1122,7 @@
 }
 
 bool platform_check_and_set_capture_backend_cfg(struct audio_device* adev __unused,
-                                              struct audio_usecase *usecase __unused)
+    struct audio_usecase *usecase __unused, snd_device_t snd_device __unused)
 {
     return false;
 }
@@ -1143,19 +1144,19 @@
     return -1;
 }
 
-int platform_get_snd_device_backend_index(snd_device_t snd_device)
+int platform_get_snd_device_backend_index(snd_device_t snd_device __unused)
 {
     return -ENOSYS;
 }
 
-void platform_check_and_update_copp_sample_rate(void* platform, snd_device_t snd_device,
-                                                unsigned int stream_sr, int* sample_rate)
+void platform_check_and_update_copp_sample_rate(void* platform __unused, snd_device_t snd_device __unused,
+                                                unsigned int stream_sr __unused, int* sample_rate __unused)
 {
 
 }
 
-int platform_send_audio_calibration_v2(void *platform, struct audio_usecase *usecase,
-                                       int app_type, int sample_rate)
+int platform_send_audio_calibration_v2(void *platform __unused, struct audio_usecase *usecase __unused,
+                                       int app_type __unused, int sample_rate __unused)
 {
     return -ENOSYS;
 }
@@ -1175,10 +1176,6 @@
     return -ENOSYS;
 }
 
-int platform_get_snd_device_backend_index(snd_device_t snd_device) {
-    return -ENOSYS;
-}
-
 int platform_set_sidetone(struct audio_device *adev,
                           snd_device_t out_snd_device,
                           bool enable, char *str)
diff --git a/hal/msm8960/platform.h b/hal/msm8960/platform.h
index 6fe8cb5..afbc7b3 100644
--- a/hal/msm8960/platform.h
+++ b/hal/msm8960/platform.h
@@ -77,6 +77,7 @@
     SND_DEVICE_IN_BT_SCO_MIC,
     SND_DEVICE_IN_BT_SCO_MIC_WB,
     SND_DEVICE_IN_CAMCORDER_MIC,
+    SND_DEVICE_IN_CAPTURE_VI_FEEDBACK,
     SND_DEVICE_IN_VOICE_DMIC_EF,
     SND_DEVICE_IN_VOICE_DMIC_BS,
     SND_DEVICE_IN_VOICE_DMIC_EF_TMUS,
@@ -136,5 +137,12 @@
 #define AFE_PROXY_PLAYBACK_PCM_DEVICE 7
 #define AFE_PROXY_RECORD_PCM_DEVICE 8
 
+#define HFP_ASM_RX_TX 18
+
+#define PLATFORM_INFO_XML_PATH          "audio_platform_info.xml"
+#define PLATFORM_INFO_XML_BASE_STRING   "audio_platform_info"
+
+#define DEVICE_NAME_MAX_SIZE 128
+
 
 #endif // QCOM_AUDIO_PLATFORM_H
