diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index dd25b1d..b9dc5a8 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -236,6 +236,8 @@
    private static final int FW_TIMEOUT = 200;
    private static final int DISABLE_SLIMBUS_DATA_PORT = 0;
    private static final int ENABLE_SLIMBUS_DATA_PORT = 1;
+   private static final int DISABLE_SOFT_MUTE = 0;
+   private static final int ENABLE_SOFT_MUTE = 1;
 
    private static Object mNotchFilterLock = new Object();
 
@@ -3850,6 +3852,16 @@
              }
          }
       }
+	  public void FmRxEvEnableSoftMute(int status)
+      {
+         Log.e(LOGTAG, "FmRxEvEnableSoftMute status = " + status);
+         if (mReceiver != null && mReceiver.isCherokeeChip()) {
+             synchronized(mEventWaitLock) {
+                 mEventReceived = true;
+                 mEventWaitLock.notify();
+             }
+         }
+      }
    };
 
 
diff --git a/fmapp2/src/com/caf/fmradio/FMTransmitterService.java b/fmapp2/src/com/caf/fmradio/FMTransmitterService.java
index 1d964c4..5e11943 100644
--- a/fmapp2/src/com/caf/fmradio/FMTransmitterService.java
+++ b/fmapp2/src/com/caf/fmradio/FMTransmitterService.java
@@ -1023,6 +1023,10 @@
       {
          Log.d(LOGTAG, "FmRxEvEnableReceiver status = " + status);
       }
+	  public void FmRxEvEnableSoftMute(int status)
+      {
+         Log.d(LOGTAG, "FmRxEvEnableReceiver status = " + status);
+      }
    };
 
 
diff --git a/helium/radio-helium.h b/helium/radio-helium.h
index 067a40b..7c7221b 100644
--- a/helium/radio-helium.h
+++ b/helium/radio-helium.h
@@ -178,6 +178,7 @@
 typedef void (*fm_get_stn_prm_cb) (int val, int status);
 typedef void (*fm_get_stn_dbg_prm_cb) (int val, int status);
 typedef void (*fm_enable_slimbus_cb) (int status);
+typedef void (*fm_enable_softmute_cb) (int status);
 
 typedef struct {
     size_t  size;
@@ -214,6 +215,7 @@
     fm_get_stn_prm_cb fm_get_station_param_cb;
     fm_get_stn_dbg_prm_cb fm_get_station_debug_param_cb;
     fm_enable_slimbus_cb enable_slimbus_cb;
+    fm_enable_softmute_cb enable_softmute_cb;
 } fm_hal_callbacks_t;
 
 /* Opcode OCF */
@@ -1244,6 +1246,7 @@
 int hci_fm_get_station_dbg_param_req();
 int hci_fm_get_station_cmd_param_req();
 int hci_fm_enable_slimbus(uint8_t enable);
+int hci_fm_enable_softmute(uint8_t enable);
 
 struct fm_hal_t {
     struct radio_helium_device *radio;
diff --git a/helium/radio_helium_hal.c b/helium/radio_helium_hal.c
index 48ba0cb..b7951f3 100644
--- a/helium/radio_helium_hal.c
+++ b/helium/radio_helium_hal.c
@@ -448,6 +448,12 @@
     hal->jni_cb->enable_slimbus_cb(ev_buff[0]);
 }
 
+static void hci_cc_enable_softmute_rsp(char *ev_buff)
+{
+    ALOGD("%s status %d", __func__, ev_buff[0]);
+    hal->jni_cb->enable_softmute_cb(ev_buff[0]);
+}
+
 static inline void hci_cmd_complete_event(char *buff)
 {
     uint16_t opcode;
@@ -476,6 +482,8 @@
 
     case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_SET_RECV_CONF_REQ):
     case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_SET_MUTE_MODE_REQ):
+            hci_cc_enable_softmute_rsp(pbuf);
+            break; 
     case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_SET_STEREO_MODE_REQ):
     case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_SET_ANTENNA):
     case hci_recv_ctrl_cmd_op_pack(HCI_OCF_FM_SET_SIGNAL_THRESHOLD):
diff --git a/jni/android_hardware_fm.cpp b/jni/android_hardware_fm.cpp
index e71e535..e60fe3d 100644
--- a/jni/android_hardware_fm.cpp
+++ b/jni/android_hardware_fm.cpp
@@ -122,6 +122,7 @@
 typedef void (*fm_get_stn_prm_cb) (int val, int status);
 typedef void (*fm_get_stn_dbg_prm_cb) (int val, int status);
 typedef void (*fm_enable_sb_cb) (int status);
+typedef void (*fm_enable_sm_cb) (int status);
 
 static JNIEnv *mCallbackEnv = NULL;
 static jobject mCallbacksObj = NULL;
@@ -154,6 +155,7 @@
 jmethodID method_getStnParamCallback;
 jmethodID method_getStnDbgParamCallback;
 jmethodID method_enableSlimbusCallback;
+jmethodID method_enableSoftMuteCallback;
 
 static bool checkCallbackThread() {
    JNIEnv* env = AndroidRuntime::getJNIEnv();
@@ -554,6 +556,18 @@
     ALOGD("--fm_enable_slimbus_cb");
 }
 
+static void fm_enable_softmute_cb(int status)
+{
+    ALOGD("++fm_enable_softmute_cb");
+
+    if (!checkCallbackThread())
+        return;
+
+    mCallbackEnv->CallVoidMethod(mCallbacksObj, method_enableSoftMuteCallback, status);
+    ALOGD("--fm_enable_softmute_cb");
+}
+
+
 typedef struct {
    size_t  size;
 
@@ -589,6 +603,7 @@
    fm_get_stn_prm_cb fm_get_station_param_cb;
    fm_get_stn_dbg_prm_cb fm_get_station_debug_param_cb;
    fm_enable_sb_cb fm_enable_slimbus_cb;
+   fm_enable_sm_cb fm_enable_softmute_cb;
 } fm_vendor_callbacks_t;
 
 typedef struct {
@@ -631,7 +646,8 @@
     fm_set_blend_cb,
     fm_get_station_param_cb,
     fm_get_station_debug_param_cb,
-    fm_enable_slimbus_cb
+    fm_enable_slimbus_cb,
+    fm_enable_softmute_cb
 };
 #endif
 /* native interface */
@@ -1583,6 +1599,17 @@
     return err;
 }
 
+static jint android_hardware_fmradio_FmReceiverJNI_enableSoftMuteNative
+ (JNIEnv * env, jobject thiz, jint fd, jint val)
+{
+    ALOGD("%s: val = %d\n", __func__, val);
+    int err = JNI_ERR;
+#ifdef FM_SOC_TYPE_CHEROKEE
+    err = vendor_interface->set_fm_ctrl(V4L2_CID_PRV_SOFT_MUTE, val);
+#endif
+    return err;
+}
+
 static void classInitNative(JNIEnv* env, jclass clazz) {
 
     ALOGI("ClassInit native called \n");
@@ -1627,6 +1654,7 @@
     method_getStnParamCallback = env->GetMethodID(javaClassRef, "getStnParamCallback", "(II)V");
     method_getStnDbgParamCallback = env->GetMethodID(javaClassRef, "getStnDbgParamCallback", "(II)V");
     method_enableSlimbusCallback = env->GetMethodID(javaClassRef, "enableSlimbusCallback", "(I)V");
+    method_enableSoftMuteCallback = env->GetMethodID(javaClassRef, "enableSoftMuteCallback", "(I)V");
 
     return;
 error:
@@ -1733,6 +1761,8 @@
              (void*)android_hardware_fmradio_FmReceiverJNI_configurePerformanceParams},
         { "enableSlimbus", "(II)I",
              (void*)android_hardware_fmradio_FmReceiverJNI_enableSlimbusNative},
+        { "enableSoftMute", "(II)I",
+             (void*)android_hardware_fmradio_FmReceiverJNI_enableSoftMuteNative},
 };
 
 int register_android_hardware_fm_fmradio(JNIEnv* env)
diff --git a/qcom/fmradio/FmReceiver.java b/qcom/fmradio/FmReceiver.java
index b15d512..4957fef 100644
--- a/qcom/fmradio/FmReceiver.java
+++ b/qcom/fmradio/FmReceiver.java
@@ -3083,4 +3083,8 @@
        Log.d(TAG, "EnableSlimbus :enable =" + enable);
        mControl.enableSlimbus(sFd, enable);
    }
+   public void EnableSoftMute(int enable) {
+       Log.d(TAG, "enableSoftMute :enable =" + enable);
+       mControl.enableSoftMute(sFd, enable);
+   }
 }
diff --git a/qcom/fmradio/FmReceiverJNI.java b/qcom/fmradio/FmReceiverJNI.java
index 1487b7c..3e39e9a 100644
--- a/qcom/fmradio/FmReceiverJNI.java
+++ b/qcom/fmradio/FmReceiverJNI.java
@@ -134,6 +134,13 @@
         Log.d(TAG, "--enableSlimbusCallback" );
     }
 
+	public void enableSoftMuteCallback(int status)
+    {
+        Log.d(TAG, "++enableSoftMuteCallback" );
+        FmReceiver.mCallback.FmRxEvEnableSoftMute(status);
+        Log.d(TAG, "--enableSoftMuteCallback" );
+    }
+
     public void RtPlusCallback(byte[] rtplus) {
         Log.d(TAG, "RtPlusCallback enter " );
         if (rtplus == null) {
@@ -555,4 +562,5 @@
     static native int setSpurDataNative(int fd, short  buff[], int len);
     static native void configurePerformanceParams(int fd);
     static native int enableSlimbus(int fd, int val);
+    static native int enableSoftMute(int fd, int val);
 }
diff --git a/qcom/fmradio/FmRxControls.java b/qcom/fmradio/FmRxControls.java
index a3eba2a..47c384c 100644
--- a/qcom/fmradio/FmRxControls.java
+++ b/qcom/fmradio/FmRxControls.java
@@ -795,4 +795,13 @@
        else
            return false;
    }
+   public boolean enableSoftMute(int fd, int enable) {
+       int ret;
+       Log.d(TAG, "enableSoftMute : enable = " + enable);
+       ret = FmReceiverJNI.enableSoftMute(fd, enable);
+       if (ret == 0)
+           return true;
+       else
+           return false;
+   }
 }
diff --git a/qcom/fmradio/FmRxEvCallbacks.java b/qcom/fmradio/FmRxEvCallbacks.java
index 31a8312..668ad25 100644
--- a/qcom/fmradio/FmRxEvCallbacks.java
+++ b/qcom/fmradio/FmRxEvCallbacks.java
@@ -48,4 +48,5 @@
     public void FmRxEvERTInfo();
     public void FmRxEvECCInfo();
     public void FmRxEvEnableSlimbus(int status);
+	public void FmRxEvEnableSoftMute(int status);
 }
diff --git a/qcom/fmradio/FmRxEvCallbacksAdaptor.java b/qcom/fmradio/FmRxEvCallbacksAdaptor.java
index 213cf43..94e4c34 100644
--- a/qcom/fmradio/FmRxEvCallbacksAdaptor.java
+++ b/qcom/fmradio/FmRxEvCallbacksAdaptor.java
@@ -62,4 +62,5 @@
     public void FmRxGetStationParam(int val, int status) {};
     public void FmRxGetStationDbgParam(int val, int status) {};
     public void FmRxEvEnableSlimbus(int status) {};
+	public void FmRxEvEnableSoftMute(int status) {};
 }
