diff --git a/configs/msm8996/msm8996.mk b/configs/msm8996/msm8996.mk
index a71ed38..28a91bc 100644
--- a/configs/msm8996/msm8996.mk
+++ b/configs/msm8996/msm8996.mk
@@ -45,6 +45,7 @@
 TARGET_USES_QCOM_MM_AUDIO := true
 AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
 
+DOLBY_DDP := true
 AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
 AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
 ##AUDIO_FEATURE_FLAGS
diff --git a/hal/audio_extn/passthru.c b/hal/audio_extn/passthru.c
index 005b74c..d87303b 100644
--- a/hal/audio_extn/passthru.c
+++ b/hal/audio_extn/passthru.c
@@ -140,7 +140,6 @@
 /* called with adev lock held */
 void audio_extn_passthru_on_stop(struct stream_out * out)
 {
-    struct audio_device * adev = out->dev;
     if (android_atomic_acquire_load(&compress_passthru_active) > 0) {
         /*
          * its possible the count is already zero if pause was called before
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index c582bd2..aa1bc05 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1833,7 +1833,6 @@
 int start_output_stream(struct stream_out *out)
 {
     int ret = 0;
-    char prop_value[PROPERTY_VALUE_MAX] = {0};
     struct audio_usecase *uc_info;
     struct audio_device *adev = out->dev;
     int snd_card_status = get_snd_card_state(adev);
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 5e38197..3fa2dac 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -4450,8 +4450,8 @@
         format = LPCM;
         break;
     default:
-        ALOGE("%s:invalid format:%d", __func__,format);
         format =  -1;
+        ALOGE("%s:invalid format:%d", __func__,format);
         break;
     }
     return format;
@@ -4514,10 +4514,8 @@
 bool platform_is_edid_supported_sample_rate(void *platform, int sample_rate)
 {
     struct platform_data *my_data = (struct platform_data *)platform;
-    struct audio_device *adev = my_data->adev;
     edid_audio_info *info = NULL;
-    int num_audio_blocks;
-    int i, ret, count;
+    int i, ret;
 
     ret = platform_get_edid_info(platform);
     info = (edid_audio_info *)my_data->edid_info;
@@ -4610,6 +4608,22 @@
     return mixer_ctl_set_enum_by_string(ctl, mixer_val);
 }
 
+static int set_mixer_control(struct mixer *mixer,
+                             const char * mixer_ctl_name,
+                             const char *mixer_val)
+{
+    struct mixer_ctl *ctl;
+    ALOGD("setting mixer ctl %s with value %s", mixer_ctl_name, mixer_val);
+    ctl = mixer_get_ctl_by_name(mixer, mixer_ctl_name);
+    if (!ctl) {
+        ALOGE("%s: could not get ctl for mixer cmd - %s",
+              __func__, mixer_ctl_name);
+        return -EINVAL;
+    }
+
+    return mixer_ctl_set_enum_by_string(ctl, mixer_val);
+}
+
 int platform_set_hdmi_config(void *platform, uint32_t channel_count,
                              uint32_t sample_rate, bool enable_passthrough)
 {
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 32eab45..bd48c4c 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -4393,8 +4393,8 @@
         format = LPCM;
         break;
     default:
-        ALOGE("%s:invalid format:%d", __func__,format);
         format =  -1;
+        ALOGE("%s:invalid format:%d", __func__,format);
         break;
     }
     return format;
@@ -4457,10 +4457,8 @@
 bool platform_is_edid_supported_sample_rate(void *platform, int sample_rate)
 {
     struct platform_data *my_data = (struct platform_data *)platform;
-    struct audio_device *adev = my_data->adev;
     edid_audio_info *info = NULL;
-    int num_audio_blocks;
-    int i, ret, count;
+    int i, ret;
 
     ret = platform_get_edid_info(platform);
     info = (edid_audio_info *)my_data->edid_info;
