diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 527e9c5..2a95ab8 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -446,7 +446,7 @@
 
     strcpy(mixer_path, use_case_table[usecase->id]);
     platform_add_backend_name(adev->platform, mixer_path, snd_device);
-    ALOGD("%s: usecase(%d) apply and update mixer path: %s", __func__,  usecase->id, mixer_path);
+    ALOGV("%s: apply and update mixer path: %s", __func__, mixer_path);
     audio_route_apply_and_update_path(adev->audio_route, mixer_path);
 
     ALOGV("%s: exit", __func__);
@@ -469,7 +469,7 @@
         snd_device = usecase->out_snd_device;
     strcpy(mixer_path, use_case_table[usecase->id]);
     platform_add_backend_name(adev->platform, mixer_path, snd_device);
-    ALOGD("%s: usecase(%d) reset and update mixer path: %s", __func__, usecase->id, mixer_path);
+    ALOGV("%s: reset and update mixer path: %s", __func__, mixer_path);
     audio_route_reset_and_update_path(adev->audio_route, mixer_path);
 
     ALOGV("%s: exit", __func__);
@@ -528,7 +528,7 @@
             goto on_error;
         }
 
-        ALOGD("%s: snd_device(%d: %s)", __func__, snd_device, device_name);
+        ALOGV("%s: snd_device(%d: %s)", __func__, snd_device, device_name);
         audio_route_apply_and_update_path(adev->audio_route, device_name);
     }
 on_success:
@@ -572,7 +572,7 @@
                 return -EINVAL;
             }
 
-            ALOGD("%s: snd_device(%d: %s)", __func__, snd_device, device_name);
+            ALOGV("%s: snd_device(%d: %s)", __func__, snd_device, device_name);
             audio_route_reset_and_update_path(adev->audio_route, device_name);
         }
         audio_extn_sound_trigger_update_device_status(snd_device,
@@ -1671,7 +1671,7 @@
     bool select_new_device = false;
     int status = 0;
 
-    ALOGD("%s: enter: usecase(%d: %s) kvpairs: %s",
+    ALOGV("%s: enter: usecase(%d: %s) kvpairs: %s",
           __func__, out->usecase, use_case_table[out->usecase], kvpairs);
     parms = str_parms_create_str(kvpairs);
     ret = str_parms_get_str(parms, AUDIO_PARAMETER_STREAM_ROUTING, value, sizeof(value));
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index a6d9789..11521e8 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -70,9 +70,6 @@
 
 #define QMIC_FLAG 0x00000004
 
-#define TOSTRING_(x) #x
-#define TOSTRING(x) TOSTRING_(x)
-
 char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = {
         [WCD9XXX_MBHC_CAL] = "mbhc_cal",
 };
@@ -136,8 +133,6 @@
     void *hw_info;
     char ec_ref_mixer_path[64];
     bool speaker_lr_swap;
-
-    int max_vol_index;
 };
 
 int pcm_device_table[AUDIO_USECASE_MAX][2] = {
@@ -881,10 +876,6 @@
         return NULL;
     }
 
-    //set max volume step for voice call
-    property_get("ro.config.vc_call_vol_steps", value, TOSTRING(MAX_VOL_INDEX));
-    my_data->max_vol_index = atoi(value);
-
     my_data->adev = adev;
     my_data->fluence_in_spkr_mode = false;
     my_data->fluence_in_voice_call = false;
@@ -1345,7 +1336,7 @@
     // Voice volume levels are mapped to adsp volume levels as follows.
     // 100 -> 5, 80 -> 4, 60 -> 3, 40 -> 2, 20 -> 1  0 -> 0
     // But this values don't changed in kernel. So, below change is need.
-    vol_index = (int)percent_to_index(volume, MIN_VOL_INDEX, my_data->max_vol_index);
+    vol_index = (int)percent_to_index(volume, MIN_VOL_INDEX, MAX_VOL_INDEX);
     set_values[0] = vol_index;
 
     ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
